Страница 1 из 9
Email on birthday - Рассылка поздравлений
Добавлено: 07.01.2016 13:20
mokvo4
На сайте
https://github.com/ForumHulp/emailonbirthday нашел для Phpbb 3.1. расширение отправить каждому пользователю email на его / ее день рождения
Расширение исправленное
На данный момент
март 2017г все работает отлично письма с открытками отправляются по хрону, не зависимо от зарегистрированных посетителей зашедших на форум
forumhulp_emailonbirthday_3_1_4.zip
Устанавливаем расширение forumhulp/emailonbirthday Phpbb 3.1. расширение отправить каждому пользователю email на его / ее день рождения
Чтобы в письмах отправлять открытки надо в файле
includes/functions_messenger.php
примерно в строке 440
найти
Код: Выделить всё
$headers[] = 'Content-Type: text/plain; charset=UTF-8'; // format=flowed
заменить на
Код: Выделить всё
$headers[] = 'Content-Type: text/html; charset=UTF-8';
e-mail письмо отредактируйте в
HTML на свой вкус
\forumhulp\emailonbirthday\language\ru\email\emailonbirthday.txt
После включения расширений настроить:
в
админпанели - Функции конференции
выбрать "
да" - Е-mail на день рождения: Отправить каждому пользователю email на его / ее день рождения
Все
руссифицыровано
Re: Email on birthday - Рассылка поздравлений
Добавлено: 08.01.2016 17:03
Siava
Ага, пару недель назад
помучился с этим расширением.. но теперь оно нормально работает с системным cron.
Мне это показалось очень подозрительным расширением и я просто закомментировал участки кода в emailonbirthday, чтобы обойтись без установки "помощника".
ext.php
Код: Выделить всё
// public function is_enableable()
// {
// if (!class_exists('forumhulp\helper\helper'))
// {
// $this->container->get('user')->add_lang_ext('forumhulp/emailonbirthday', 'info_acp_emailonbirthday');
// trigger_error($this->container->get('user')->lang['FH_HELPER_NOTICE'], E_USER_WARNING);
// }
// if (!$this->container->get('ext.manager')->is_enabled('forumhulp/helper'))
// {
// $this->container->get('ext.manager')->enable('forumhulp/helper');
// }
// return class_exists('forumhulp\helper\helper');
// }
event/listener.php
Код: Выделить всё
class listener implements EventSubscriberInterface
{
/* @var \phpbb\controller\helper */
// protected $helper;
/**
* Constructor
*
* @param \phpbb\controller\helper $helper Controller helper object
*/
// public function __construct(\phpbb\controller\helper $helper)
// {
// $this->helper = $helper;
// }
config/services.yml привести к виду:
Код: Выделить всё
services:
forumhulp.emailonbirthday.lang_manager:
class: forumhulp\emailonbirthday\lang_manager\manager
arguments:
- %core.root_path%
forumhulp.emailonbirthday.listener:
class: forumhulp\emailonbirthday\event\listener
tags:
- { name: event.listener }
forumhulp.cron.emailonbirthday:
class: forumhulp\emailonbirthday\cron\task\core\birthday
arguments:
- %core.root_path%
- %core.php_ext%
- @config
- @user
- @dbal.conn
- @log
- @forumhulp.emailonbirthday.lang_manager
- @service_container
calls:
- [set_name, [forumhulp.cron.emailonbirthday]]
tags:
- { name: cron.task }
Re: Email on birthday - Рассылка поздравлений
Добавлено: 08.01.2016 18:09
LavIgor
Siava писал(а): Мне это показалось очень подозрительным расширением
Джон, видимо, создаёт дополнительные расширения, которые продаёт на своём сайте.
Вот это порадовало:
@license Proprietary
.
Он даже выпустил отдельную версию Cron Status, которая правит файлы движка...
Siava писал(а): config/services.yml привести к виду
В нём тоже возможны комментарии с помощью символа
#
. =)
Re: Email on birthday - Рассылка поздравлений
Добавлено: 09.01.2016 19:32
mokvo4
Siava, а какие правки надо сделать с forumhulp/htmlemail, чтобы обойтись без установки "помощника"
Re: Email on birthday - Рассылка поздравлений
Добавлено: 09.01.2016 19:54
LavIgor
mokvo4, расширение forumhulp/htmlemail
основано на правках ядра phpBB, поэтому его установка не рекомендуется в принципе.
Re: Email on birthday - Рассылка поздравлений
Добавлено: 09.01.2016 20:02
mokvo4
LavIgor, так как тогда отправлять письма с картинками т.е в html
Re: Email on birthday - Рассылка поздравлений
Добавлено: 11.01.2016 12:17
Resistant
Siava,
Siava писал(а): чтобы обойтись без установки "помощника".
так надо те правки что вы выложили добавить в файлы?
Re: Email on birthday - Рассылка поздравлений
Добавлено: 11.01.2016 15:49
Siava
Resistant, ну да, выложил то что сделал у себя для примера. А надо или нет решать вам.
Re: Email on birthday - Рассылка поздравлений
Добавлено: 11.01.2016 19:52
mokvo4
Siava писал(а): ну да, выложил то что сделал у себя для примера. А надо или нет решать вам.
Так, так, так, email отправляется по системному хрону? А что в хроне на хостинге надо прописать?
Код: Выделить всё
* 01 * * * /usr/local/bin/php -q /home/имя сайта/www/site1/public_html/forum/ext/forumhulp/emailonbirthday/cron/task/core/birthday.php
или что то другое?
Re: Email on birthday - Рассылка поздравлений
Добавлено: 11.01.2016 21:02
Siava
mokvo4, так.. вы сначала поймите нужен ли вам системный cron.
В общем случае, в движке есть стандартный планировщик, который срабатывает от действий посетителей и возможность подключить системный cron. В настройках сервера можно выбрать какой планировщик использовать.
Команда запуска системного cron для вашего случая (например, каждые 5 минут):
Код: Выделить всё
*/5 * * * * /usr/local/bin/php -q /home/имя сайта/www/site1/public_html/forum/bin/phpbbcli.php cron:run
[/off]
Но
мною недавно обнаружено, что с некоторые расширения, где используется планировщик
и запись событий в форумный лог некорректно работают с системным cron. Это расширение тоже.
Для исправления работы необходимо внести правки в ext/forumhulp/emailonbirthday/cron/task/core/birthday.php
найти
Код: Выделить всё
$this->log->add('admin', $this->user->data['user_id'], $this->user->data['session_ip'], 'BIRTHDAYSEND', false, array(implode(', ', $userlist)));
заменить на
Код: Выделить всё
$user_id = (empty($this->user->data)) ? ANONYMOUS : $this->user->data['user_id'];
$user_ip = (empty($this->user->ip)) ? '' : $this->user->ip;
$this->log->add('admin', $user_id, $user_ip, 'BIRTHDAYSEND', false, array(implode(', ', $userlist)));
Вот и вопрос. А нужен ли вам системный cron?
С использованием стандартного планировщика таких проблем не будет. Да и в большинстве случаев он лучше системного. Я просто экспериментирую и включаю всякие штуки нестандартные.
Отправлено спустя 7 минут 35 секунд:
Прилагаю свой исправленный вариант.
forumhulp.zip
Локализации в нём нет, её можно взять из первого сообщения. Лишь только поздравительное письмо под свой форум делал (там стишок). Поэтому исправляйте под себя кто захочет.
Re: Email on birthday - Рассылка поздравлений
Добавлено: 11.01.2016 21:14
mokvo4
Siava писал(а): Вот и вопрос. А нужен ли вам системный cron?
Дело в том, что согласно Вашего поста выше я сделал правки
в
ext.php.
event/listener.php
привел к виду
config/services.yml
в итоге проверяю статус хрон- срабатывает но письма не приходят
а если применить выполнить то приходят
что почему не понятно, а оказывается хрон править надо
Re: Email on birthday - Рассылка поздравлений
Добавлено: 11.01.2016 21:26
Siava
mokvo4, вот честно не знаю будет ли с моими правками работать с обычным планировщиком, так как я использую только системный
но по идее всё должно работать.
Поздравительные письма рассылаются по-умолчанию раз в 12 часов. Может быть стоит подождать?..
Или можно изменить значение последнего события отправки поздравлений, подправив в базе в phpbb_config значение emailonbirthday_last_gc, выставив его меньшим на 86400 секунд, например.
Отправлено спустя 1 минуту 3 секунды:
И
Cron Status в помощь.
Re: Email on birthday - Рассылка поздравлений
Добавлено: 12.01.2016 10:02
Resistant
Siava, спасибо все работает отлично ,поздравительное письмо пришло в 9:00 утра
Re: Email on birthday - Рассылка поздравлений
Добавлено: 12.01.2016 17:41
mokvo4
Siava писал(а):
Локализации в нём нет, её можно взять из первого сообщения.
Siava, что значит Локализации, ну не совсем силен я в терминологии
Re: Email on birthday - Рассылка поздравлений
Добавлено: 12.01.2016 17:48
Anvar
mokvo4, Файлы с переведённым текстом на русский язык.