Хак "Случайный аватар"

+44
2.23K
Доброго времени суток, друзья!

Наконец то выкроил время и в продолжение темы Плагин "Случайный аватар", представляю хак компонента users. Навеяно обсуждениями в комментах к плагину.
Прошу прощения, что затянул с доработкой. Лето… Совершенно нет времени.

Итак, ближе к делу smile
Хак представляет метод модели компонента users с возможностью выполнения по CRON.
устанавливает случайный аватар из своей библиотеки для пользователей, которые не установили его. Принцип работы схож с плагином "Случайный аватар", но хак работает отдельно от плагина. Можно установить и совместно с плагином. Хак использует те же папки и библиотеки аватаров, что и плагин.

Чтобы облегчить обновление движка до последующих версий, изменен всего один файл /components/users/model.php. Сам файл с изменениями находится в архиве. Версия файла соответсвует версии диструбитива ИнстантКМС с офф. сайта на дату 25.06.12.Если у вас этот файл уже изменен, то сравните содержимое. Изменения касательно хака увидите в конце файла в одном месте. Добавлен метод selectRandAvatar(). Есть соответствующие комментарии.

Чтобы не затрагивать другие файлы, настройки включены в коде в виде констант. Найдете по соотвествующим комментариям. Есть 3 настройки — скольким пользователям установить аватар за одно выполнение задачи, уведомлять ли пользователя, через сколько днейпосле регистрации можно установить аватар пользователю.
Внимательно прочтите комментарии и если нужно, измените константы под себя.

В архиве найдете и библиотеку аватаров, который соответствует с библиотекой плагина. Это для тех, кто не устанавливал плагин.

Установка

Установка:
— скачиваем архив;
— сравниваем и если нужно изменяем файл /components/users/model.php в архиве;
— заливаем на хост;
— далее настраиваем cron. В админке заходим Настройки->Задачи CRON. Нажимаем кнопку с плюсиком "Создать задачу".
В поле "Компонент:" прописываем users, а в поле "Метод модели:" прописываем selectRandAvatar. Остальные поля заполните на ваше усмотрение. Не забудьте включить задачу и настроить CRON сайта.
Или можете создать задачу CRON следующим запросом в БД:
  1. INSERT INTO `cms_cron_jobs` (`job_name`, `job_interval`, `component`, `model_method`, `custom_file`, `is_enabled`, `is_new`, `comment`, `class_name`, `class_method`) VALUES ('selectRandAvatar', 1, 'users', 'selectRandAvatar', '', 1, 0, 'Устанавливает случайный аватар пользователю без аватара', '', '')

Важно

Хак предназначен для версии InstantCMS 1.9 в кодировке сp1251(это я к тому, что некоторые уже пишут под версию утф). Тестировалось только на локалхосте. Перед применением не забудьте сделать резервные копии.

Ну и, скачать архив

UPDATE 05.08.2012

Архив перезалит. Исправлена ошибка в результате которой не выполнялась задача по CRON. Изменения коснулись файла /components/users/model.php. Строки 906-907
  1.  
  2. $inConf = cmsConfig::getInstance();
  3. $inUser = cmsUser::getInstance();
  4.  
следует заменить на
  1.  
  2. $inCore->loadclass('config');
  3. $inConf = cmsConfig::getInstance();
  4. $inCore->loadclass('user');
  5. $inUser = cmsUser::getInstance();
  6.  
Или просто перезалейте указанный файл с архива, предварительно смержив ваши изменения.


Приятного пользования!
0
Митяй Митяй 12 лет назад #
Отлично!
0
Алфей Алфей 12 лет назад #
Работает! Спасибо Марат! +++++
0
demous demous 12 лет назад #
Отлично работает, спасибо! )
0
murakami murakami 12 лет назад #
А как узнать что работает??? Я установил и хрон настроил как надо но пока не вижу результатов.
0
Дмитрий Дмитрий 12 лет назад #
Тоже без изменений(
0
Nerix Nerix 12 лет назад #
Когда все настроите (соответственно указав в самом файле, model, сколько аватаров обработать за раз), нажмите в действиях, выполнить сейчас. И все будет.
0
Дмитрий Дмитрий 12 лет назад #
Всё сделано согласно инструкции! Непомогает( А влияет то что домен РФ?
+1
Марат Марат 12 лет назад #
murakami, Дмитрий , давайте разбираться, почему не работает.
Домен не должен влиять.
Для начала, правильно ли у вас настроен CRON? Выполняются ли другие задачи? Если с этим всё нормально, то в админке смотрим, добавилась ли задача и пробуем запустить его. По умолчанию, должны добавиться аватары у 3 пользователей, которые зарегистрировались ранее, чем два дня назад. Причем, сортировка идет по id пользователя, по убыванию. То есть сначала поменяется у тех, кто позже зареган. От текущего времени отнимаете 2 суток, и находите пользователей, которые зарегались чуть ранее этого времени и смотрите, поменялось ли. Если ничего не изменилось, то в админке включаем режим отладки и снова запускаем задачу. Смотрим, что выдаст.
Если лень разбираться самим, то дайте в личку фтп и админ доступ. Посмотрю сам.
0
Дмитрий Дмитрий 12 лет назад #
Сделал напрямую через базу заработало! Спасибо плюсую smile
0
murakami murakami 12 лет назад #
Да не, все работает. Просто не сразу понял почему всего 3 поменялось. Я же не знал что там можно изменять значения в модуле. Вот сейчас выставил 300 и в хроне выполнил задачу. Так что ок.
0
Марат Марат 12 лет назад #
300 ?!? Не отвалилось по таймауту? GD как ни как. Не хило )
0
murakami murakami 12 лет назад #
Секунд 15 подождать пришлось. А почему отвалиться то должно???
0
Марат Марат 12 лет назад #
max_execution_time. Ограничение времени выполнения скрипта.Не эксперементировал, но думаю на шаред хостингах такое не прокатит. У вас скорее всего vds.
0
Nerix Nerix 12 лет назад #
Спасибо Марат, отлично работает +
0
stasis stasis 12 лет назад #
Поставил на 1.9 полёт нормальный... ппппллллюююююсссууууююююю +++++++++
Спасибо!
0
st.Puh st.Puh 12 лет назад #
Все рботает супе,спасибо.Проверить можна зайдя в админку настройки задачи крон и на против пункта selectRandAvatar Устанавливает случайный аватар пользователю без аватара нажать синенький значок "выполнить сейчас"
0
Митяй Митяй 12 лет назад #
Пробовал "живые" GIFы - не раздаются..., кто нибудь тестил?
0
Sergey Platonov Sergey Platonov 12 лет назад #
скорей всего надо прописать условие, чтоб если гиф исходник, то фаил оставался гифом без работы gd библиотеки. но там вроде два файлика должно создаться - второй то точно jpg должен быть
0
Марат Марат 12 лет назад #
"Живые гифы" - это анимированные гифы. Их, как я понимаю, gd обрабатывать не будет. Такие гифы можно пропустить без ресайза, да и любой аватар с библиотеки. В библиотеке они идут 100Х100px. Но, в целом для хака это будет неправильно. Вдруг кто-то решит обновить библиотеку и закачает туда авы в тыс. пикселей. И получите вместо авы, полноценную картинку. Кроме того, устанавливается и копия авы в 64px, уменьшать всё равно нужно. Так что, халявные авы будут не "живые" )))
0
Sergey Platonov Sergey Platonov 12 лет назад #
написать проверку - если гифка и размер меньше указанного - то чтоб гд её не трогал. по такому примерно принципу работает добавление иконок к форуму - если иконка меньше указанного разрешения - закачивается оригинал, только переименованный.
0
Camfrog Camfrog 12 лет назад #
Нерабоает Хак "Случайный аватар" :(
0
universe universe 12 лет назад #
сегодня поставил все работает!
0
Марат Марат 12 лет назад #
Исправлена ошибка. Архив перезалит. Подробности см. в посте UPDATE 05.08.2012
Вчера заметил, что не выполняется задачи CRON. Пробовал запустить сегодня вручную с хостера и заметил ошибку. Исправлено.
0
boss boss 11 лет назад #
А как у нас дела с последней версией инстанта 1.10.2 ? на ней перестал работать плагин
0
lezginka.ru lezginka.ru 11 лет назад #
тут интересное решение
http://habrahabr.ru/post/195142/
можно прикрутить ?
-2
Константин Г. Константин Г. 11 лет назад #
сделайте пожалуйста переработку для более новых версий.небуду говорить для какой конкретно-так как сейчас у меня 1,10,1 а потом 1,10,3 выйдет и я обновлюсь и снова...

Еще от автора

Фильтр "Вставка модуля" v 1.0.0
Приветик! Давненько что-то я ничего не писал ) Не знаю было это или не было, вчера увидел темку, решил сделать немного по-другому. Вещь то нужная.
PHP классы для работы с VK API и с API Яндекс Метрики
Доброго времени суток, коллеги! Выкладываю два класса: -для работы с API Вконтакте; -для работы с API Яндекс Метрики.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.