Вниманию представляется комплект из задачи CRON и плагина «Уведомление друзей имениника» для версии Инстанта 1.10.6. Этот плагин может работать в паре с плагином «С днем рождения», который опубликован чуть ранее.
Постановка задачи
Читатели моего блога дружелюбно встретили разработку Комплект задачи cron и плагина «С днем рождения», который помещал открытку на стену именинника.
Однако многим захотелось, чтобы плагин так же уведомлял друзей именинника о знаменательном событии по почте. Мне почти удалось отвертеться от написания этого функционала, поскольку мой друг Pasha выложил аналогичный плагин.
Тем не менее, мне продолжали писать с требованием продолжить работу.
Пришлось мне впрячься в нелегкую работу программиста...
Я не стал модифицировать уже имеющийся и хорошо работающий плагин, а решил написать еще один. Оба плагина могут работать от одного системного события, но на работу друг друга никак не влияют. Если выключить один, второй продолжит работать как ни в чем ни бывало.
Если у вас на сайте уже установлен, настроен и работает один из моих плагинов (либо «С днем рождения!», либо «Уведомление о дне рождения», второй заработает сразу, как только вы его зальете на сайт, установите из админки и включите.
Как работает плагин
Все начинается от задачи cron, которая инициализирует системное событие HAPPY_BIRTHDAY. Это событие вызывает данный плагин (кстати, от этого события так же срабатывает ранее написанный мной плагин Комплект задачи cron и плагина «С днем рождения»). Данный плагин просматривает базу данных, и если находит в ней человека, у которого сегодня день рождения, получает из базы массив друзей именинника. Этим друзьям на e-mail (который они указали при регистрации) отправляется письмо с напоминанием, что у их друга сегодня день рождения. Поскольку Планировщик заданий на сервере может быть настроен на срабатывание несколько раз в сутки, плагин сам следит за тем, чтобы письма были разосланы только один раз. Если Вы настроите Планировщик, чтобы он срабатывал реже, чем раз в сутки (например, раз в месяц), корректную работу плагина я не гарантирую.
Установка плагина
1. Распакуйте архив в любое место и залейте его содержимое в корень сайта.
2. Установите плагин через админку (Админка->Дополнения->Установить плагины). Найдите мой плагин в списке плагинов, готовых к установке и установите его, щелкнув по названию.
3. Включите плагин. (Админка->Дополнения->Плагины). Нажать на красный крестик, чтобы появилась зеленая галка (плагин включен).
4. Если необходимо, настройте плагин:
4.1. Укажите примерное время дня, когда разослать уведомления. По умолчанию указано 8:00. Время указывается в формате час: минуты (и никак иначе). Имейте ввиду — это время сервера. Если сервер, где у вас хостинг, находится в часовом поясе Сан-Франциско, вы можете получить интересный эффект, когда друзья именинника получат уведомления, когда пора ложиться спать.
4.2. Укажите, следует ли уведомлять друзей, если именинник в своем профиле запретил показывать свой день рождения Если Вы в этой настройке укажете «Да», или «Yes» или 1, плагин разошлет письма друзьям все равно. Если Вы укажете «нет», «NO» или поставите любую цифру, кроме единицы, или оставите поле пустым, плагин будет проверять, разрешил ли пользователь показывать в свой день рождения в профиле. Если разрешил — плагин уведомления разошлет. Если нет — письма разосланы не будут.
5. Если Вы ставите плагин впервые, вам потребуется настроить Планировщик заданий на хостинге и задачу cron на Инстанте. Как это сделать — подробно (с картинками) расписано в записи, посвященной плагину «С днем рождения!»
6. Каждый друг именинника получит письмо примерно такого содержания:
Открыв файл languages/ru/letters/your_friend_birthday.txt, вы можете отредактировать тект письма.
Если Ваш сайт с английской (или другой) локализацией, Вам, естественно, придется озаботиться тем, чтобы в папке en (или в нужной Вам локализации) лежали аналогичные файлы (сейчас их нет).
Как скачать.
Скачать можно бесплатно, то есть даром, из моего профиля тут.
Куда говорить спасибо
Плюсиком в карму :)
Удачи в программировании.
Реклама #
Странник 9 лет назад #
Спасибо.
Странник 9 лет назад #
Странник 9 лет назад #
Завтра посморю, что происходит, когда плагин учитывает желание юбиляра скрывать днюху.
Владимир Савенко ✝️ 9 лет назад #
Спасибо за проделанную работу.
Владимир Савенко ✝️ 9 лет назад #
Странник 9 лет назад #
Владимир Савенко ✝️ 9 лет назад #
Странник 9 лет назад #
У юзеров, которые скрыли свою днюху в профиле, друзья соответственно письма НЕ получили.
Таким образом, плагин работает на всех режимах, как и задумывалось изначально. Спасибо всем, кто поверил в меня и скачал его, не дожидаясь окончания тестирования)). Теперь я со спокойной совестью могу рекомендовать пользоваться плагином тем, кому он нужен.
Удачи в сайтостроении.
Александр 9 лет назад #
Александр 9 лет назад #
Странник 9 лет назад #
Я сделал хранение инфы в логе, чтобы не курочить БД. Можно было бы хранить этот флаг в дополнительно введенной колонке, например, в таблице cms_user_profile. У этого решения есть свои плюсы и свои минусы. По моим соображениям ради плагина, который по каждому юзеру отрабатывает раз в год, делать такое не стоило.
Я не стал в документации указывать, какие права выставлять на лог, поскольку на том хостинге, где я отлаживал плагин, по умолчанию права при создании выставились на папку timer - 0755, на файл timer.log - 0644, и сразу все заработало.
Александр 9 лет назад #
1212 натя
1212 настя
1212 вася
а потом запускает когда повторно то сразу куча строк пустых появляется, вот и заинтересовался.
1212 натя
1212 настя
1212 вася
и там далее еще пустых снизу.
То, что в лог идея отличная, а вот вопрос у меня который не как не могу понять, если поставил 6 утра, то когда он его запустит после шести или строго до шести? просто например крон ладно я поставил запускаться вроде каждые 7 или 6 часов, а если у вас крон сработал в 5 утра и в 7, он когда запустит задачу в или в 7? при условии, что в плагине стоит предпочтение отправки в 6 утра в которое не было запущено.
PS у меня просто не хостинг и вот права походу иначе, заливал через фазиллу sftp он там сам ставит права по умолчанию вроде такие же как у вас. 644 и 755.
Странник 9 лет назад #
Понятно, что если вы настроите cron один раз в сутки, на 0 часов, а плагин выставили на 8:00, то он может не сработать вообще (или сработать в 0:00 следующих суток). Поэтому, если cron выполняется раз в сутки, в 0:00, то ставте плагин на 0:00.
olegan 6 лет назад #