Закрыть
Загрузка данных
Логин:   Пароль:      
Регистрация   Забыли пароль?

Важные объявления:

Призовой фонд bigstreet




Что такое призовой фонд скрипта социальных сетей bigstreet - это фонд который позволит спонсировать лучшие разработки на основе bigstreeta они могут быть как модули, дополнения, так и дизайн, шаблоны, моды и хаки. Чем больше соберем призового фонда - тем быстрее будет продвигатся разработка, так как желающие что-то сделать полезное всегда найдутся.

Фонд помощи разработчикам bigstreet

+ 500 рублей

15 горячих:


Сообщество

Opensource

Нестандартные модули, блоки, шаблоны и собственные сборки BigStreet.

Публикации   Пользователи   RSS
Закрыть
Загрузить:
Указать:
Выравнивание:    Копирайт:
Альт
Цвет шрифта Закрыть
Белый Розовый Серебряный Оливковый Красно-коричневый Лимонный Зеленый Темно-синий Желтый Красный Серый Фиолетовый Водный Зеленовато-голубой Голубой
Выделить маркером Закрыть
Розовый Серебряный Оливковый Красно-коричневый Лимонный Зеленый Темно-синий Желтый Красный Серый Фиолетовый Водный Зеленовато-голубой Голубой Черный
Смайлики ;) Закрыть
Улыбка Нахмуриться Подмигивание Язык Смех Смущение Нерешительность Сюрприз Поцелуй Вопль Класс Денежки Ошибся Невинность Плач Рот на замке

Рандомные аватарки всем пользователям.

Лично мне надоели проклятые no_avatar_24.gif
Половина пользователей не ставит себе аватарки, а хочется что-бы они были.
Предлагаю небольшую функцию, которая присвоит каждому человеку рандомную аватарку в зависимости от его ника.

1. Для начала идем в /vendors/Smarty-X.X.XX/plugins и создаем там файлик modifier.randomava.php со следующим содержанием:
  1. <?php
  2. /*
  3.  * Smarty plugin
  4.  * -------------------------------------------------------------
  5.  * Файл:     modifier.randomava.php
  6.  * Тип:     modifier
  7.  * Имя:     randomava
  8.  * Назначение:  Выдает числовой хешь от строки заданной длины
  9.  * -------------------------------------------------------------
  10.  */
  11. function ceiling($value, $precision = 0) {
  12.     return ceil($value * pow(10, $precision)) / pow(10, $precision);
  13. }
  14.  
  15. function smarty_modifier_randomava($string, $val)
  16. {
  17.     $num = crc32($string);
  18.     $num = substr(abs($num), 0, strlen($val));
  19.     if($num > $val)
  20.         {
  21.                 return intval(($num/ceiling($val, -strlen($val)))*$val);
  22.         }
  23.         else
  24.         {
  25.                 return $num;
  26.         }
  27. }
  28. ?>


2. Теперь вам понадобятся аватарки, нужно накачать кучу разных, привести их к именам типа 1.gif, 2.gif, 3.gif итд, затем отресайзить до размеров 100x100, 64x64, 32x32 и 24x24 и полученные отресайзенные копии назвать примерно так 64x_1.gif, 64x_2.gif главное что-бы имена файлов совпадали, тоесть 100x_1.gif=64x_1.gif=32x_1.gif=24x_1.gif=1.gif
Переименовывать и ресайзить удобно софтинкой IrfanView

3. Заливаем отресайзенные файлы в папку /themes/default/images/avatars, вместо default название вашей темы, у меня например она называется sporcaputtana

4. Идея проста: нужно поправить все *.tpl файлы, в которых есть проверка на наличие у пользователя аватарки.
Например в файле /modules/users/templates/index.tpl есть код
  1.  
  2. <img src="
  3. {if $aCollectionOnLine[oUser]->getAvatarExt()}
  4. {$oRouter->getPathWeb()}/uploads/users/{$aCollectionOnLine[oUser]->getId()}/avatar_small.{$aCollectionOnLine[oUser]->getAvatarExt()}
  5. {else}
  6. {$oRouter->getPathWeb()}/themes/{$oSettings->getSiteTheme()}/images/no_avatar_24.gif
  7. {/if}
  8. " width="24px" height="24px" border="0" alt="{$aCollectionOnLine[oUser]->getLogin()}">
  9.  

в нем строчку
{$oRouter->getPathWeb()}/themes/{$oSettings->getSiteTheme()}/images/no_avatar_24.gif нужно будет заменить на
{$oRouter->getPathWeb()}/themes/{$oSettings->getSiteTheme()}/images/avatars/24x_{$aCollectionRaiting[oUser]->getLogin()|randomava:XXX}.gif

Вместо XXX нужно подставить количество разных аватарок, лежащих в папке /themes/default/images/avatars

Модификатор randomava принимает 2 параметра — логин и максимальное выдаваемое значение и в зависимости от логина выдает число.
Метки: аватарки
cron 5 февраля 2009 12:34 комментариев: 8
:) 9,55 :(
просмотров: 2294

Комментарии:
Спасибо Cron пост архи полезный, подобную реализацию я уже видел и идею оценил, но сейчас мой проект еще на стадии привлечения пользователей, а на будущее очень даже пригодиться.
inetlover inetlover   5 февраля 2009 14:53
:) 1 :( #
Спасибо, интересная идея!
Pride Pride   6 февраля 2009 06:47
:) 1 :( #
Спасибо, очень благодарен.
mikhasya mikhasya   6 февраля 2009 14:05
:) 1 :( #
мега-вещь! правда еще не пробовал, но за идею саечка:)
web_etalon   23 января 2010 11:29
:) 0 :( #
Идейко хорошее.
Но, думаю, включать в дефолтную сборку BS этот хак не нужно.
Alphard   23 января 2010 14:30
:) 0 :( #
Может стоит включить в дефолтную сборку аватары от gravatar.com?
Всего то нужно добавить одну короткую функцию в users.essence. А можно и просто плагин готовый для smarty взять… Тогда и кучу аватарок таскать с дистрибутивом не придется (как в случае с modifier.randomava.php).
P.S. Справедливости ради скажу все же, что попробовал у себя рандомные авы — очень приятно смотрится, автору огромное спасибо!

tommyred tommyred   24 января 2010 10:46
:) 0 :( #
Хотелось бы что-то автомобильнойтематики
argo   2 июня 2010 08:42
:) 0 :( #
Написать комментарий
Только зарегистрированные пользователи могут оставлять комментарии.





Подписаться на рассылку
"Бесплатный движок bigstreet.ru"


 
© 2009. | О сайте | Инструкции | Обратная связь
© Powered by BigStreet RC1-maps SVN Сервис коротких адресов День святого Валентина
www.webmoney.ru Участник проекта CMS Magazine
рекламное агентство наружная реклама, аренда щитов, брендмауэры


Работа с БД:
 Время - 1.4554
 Запросов - 12
Работа с кэшем:
 Время - 0.0067
 Записей - 2
 Прочтений - 5
Общее время:
 1.9323