Вы не зашли.
Плагин news_messaging
==============================================
С помощью данного плагина Вы можете осуществлять массовую рассылку новстей всем зарегистрированным пользователям по email.
Установка:
1. Открыть файл /engine/skins/default/tpl/news/add.tpl и вставить в нужном месте переменную {{ plugin.news_messaging }}
2. Включить и настроить плагин.
В поле "Тема рассылки" доступна переменная: {news_title} - заголовок новости.
В поле "Текст рассылки" доступны переменные: {news_title} - заголовок новости, {news_content} - содержимое новости, {link_to_news} - ссылка на новость.
[0.2][2013-07-20]
. Адаптировано под Next Generation CMS 0.9.4 RC[0.1][2013-05-27]
. Выпуск версии
Изменено infinity237 (2013-07-20 23:19:24)
Не в сети
infinity237, прописал в add.tpl {{ news_messaging }} - пусто, {{ plugin.news_messaging }} - чекбокс появился
добавил новость - MySQL ERROR [select]: SELECT mail, newsletter FROM `ng_users` WHERE newsletter = 1
как я понял, рассылка тем, кто поставил галочку "подписка на новости"?
тогда где ставить галочку?
Изменено Knopik (2013-06-09 22:43:02)
Не в сети
1. Создать поле newsletter в таблице ng_users
2. В шаблоне /templates/default/registration.tpl добавить:
<div class="check_me">
<input type="checkbox" name="check_newsletter" id="check_me" value="1" checked>
<label for="check_me">Я согласен получать новости по электронной почте</label>
</div>
В шаблоне /templates/default/plugins/uprofile/profile.tpl добавить:
<div class="check_me">
<input type="checkbox" name="check_newsletter" id="check_me" value="1" {check_newsletter}>
<label for="check_me">Я согласен получать новости по электронной почте</label>
</div>
3. В /engine/plugins/auth_basic/auth_basic.php поправить в нужном способе регистрации запрос, например:
$mysql->query("INSERT INTO ".uprefix."_users (name, pass, mail, status, reg, last, newsletter) VALUES (".db_squote($values['email']).", ".db_squote(EncodePassword($values['password'])).", ".db_squote($values['email']).", ".$regstatus.", '".$add_time."', '".$add_time."', '".intval($_POST['check_newsletter'])."')");
4. В /engine/plugins/uprofile/uprofile.php где-нибудь в function uprofile_editForm() добавить:
if($currentUser['newsletter'] == "1")
{
$tvars['vars']['check_newsletter'] = 'checked';
} else {
$tvars['vars']['check_newsletter'] = '';
}
В function uprofile_editApply() добавить в $sqlFields = array () строчку:
'newsletter' => $_REQUEST['check_newsletter']
Не в сети
infinity237, как вариант, можно создать xfield поле newsletter
а затем в плагине поправить запрос на 20й строке с
foreach ($mysql->select("SELECT mail, newsletter FROM `".uprefix."_users` WHERE newsletter = 1") as $row) {
на
foreach ($mysql->select("SELECT mail, xfields_newsletter FROM `".uprefix."_users` WHERE xfields_newsletter = 1") as $row) {
тогда не нужно будет править auth_basic и uprofile
Изменено Knopik (2013-06-10 13:14:46)
Не в сети
Это всё итак понятно, только:
1. Это не чекбокс. (2 клика вместо одного).
2. При регистрации xfields работать не будет.
Не в сети
infinity237, а всем старым пользователям которые уже зарегились будет отправлятся или нет?
Нет, там должны быть "1" в поле newsletter. Можно, конечно им проставить автоматически или вообще убрать выборку по этому параметру, только не думаю, что все будут довольны получать сообщения с неизвестных источников, на которые они не подписывались.
Не в сети
1. Создать поле newsletter в таблице ng_users
2. В шаблоне /templates/default/registration.tpl добавить:
Все это сделал, но письма почему-то не приходят.
А что должно приходить - новые новости?
Не в сети
1. Сообщения будут приходить только тем пользователям, кто в профиле поставил галочку напротив опции - "Я согласен получать новости по электронной почте".
2. Если всё сделали по инструкции как написано здесь: http://ngcms.ru/forum/viewtopic.php?pid=35394#p35394, то при добавлении новости должен появится чекбокс "Сделать рассылку новости?" - если его отметить, то при добавлении новости - эта новость должна отправиться (в соответствии с шаблоном, который был оформлен в настройках плагина) всем у кого стоит в профиле галочка "Я согласен получать новости по электронной почте".
3. Следует учитывать версию CMS и плагина, т.к. zzMail работает по-разному.
Изменено infinity237 (2014-01-19 13:41:00)
Не в сети
Версия 0.9.3 + SVN [SVN1226+] Работает в лучшем виде. Не работало т.к. я пропустил пункт " вставить в нужном месте переменную {{ plugin.news_messaging }}"
Почему-то присылает сразу 2 идентичных письма. Это можно подправить?
И если плагин будет усовершенствоваться, - неплохо бы предусмотреть возможность отказаться от рассылки путем снятия чекбокса в профиле. Не знаю, может это только у меня, но поле чекбокса - постоянно пустое.
Изменено vl (2014-01-19 20:32:19)
Не в сети
Версия 0.9.3 + SVN [SVN1226+] Работает в лучшем виде. Не работало т.к. я пропустил пункт " вставить в нужном месте переменную {{ plugin.news_messaging }}"
Почему-то присылает сразу 2 идентичных письма. Это можно подправить?
2 письма может прийти только если у 2 пользователей один и тотже email.
И если плагин будет усовершенствоваться, - неплохо бы предусмотреть возможность отказаться от рассылки путем снятия чекбокса в профиле. Не знаю, может это только у меня, но поле чекбокса - постоянно пустое.
В профиле галочка должна работать, если всё делать по инструкции.
Не в сети
2 письма может прийти только если у 2 пользователей один и тотже email.
Да, это точно.
В профиле галочка должна работать, если всё делать по инструкции.
Может зависит от правильности создания поля newsletter в таблице ng_users? Я в phpMyAdmin внизу структуры таблицы щелкнул "Добавить поле" и задал его тип INT
Не в сети
Для TWIG версии:
if($userROW['newsletter'] == "1")
{
$tVars['check_newsletter'] = 'checked';
} else {
$tVars['check_newsletter'] = '';
}
И вывод через {{ check_newsletter }}
Не в сети
Для TWIG версии:
И вывод через {{ check_newsletter }}
Я это сделал, но галочка "Я согласен получать рассылку" в профиле так и остается непроставленной. При том, что рассылка приходит
Не в сети
if($userROW['newsletter'] == "1")
{
$tVars['check_newsletter'] = 'checked';
} else {
$tVars['check_newsletter'] = '';
}
нужно после $tVars = array()
Не в сети
Постаил в uprofile.php после
$tVars = array(
'userRec' => $urow,
'user' => array(
'id' => $urow['id'],
'name' => $urow['name'],
'news' => $urow['news'],
'com' => $urow['com'],
'status' => $status,
'last' => ($urow['last'] > 0) ? LangDate("l, j Q Y - H:i", $urow['last']) : $lang['no_last'],
'reg' => langdate("j Q Y", $urow['reg']),
'email' => secure_html($urow['mail']),
'site' => secure_html($urow['site']),
'icq' => secure_html($urow['icq']),
'from' => secure_html($urow['where_from']),
'info' => secure_html($urow['info']),
'photo_thumb' => $userPhoto[1],
'photo' => $userPhoto[2],
'avatar' => $userAvatar[1],
'php_self' => $PHP_SELF,
'flags' => array(
'hasPhoto' => $config['use_photos'] && $userPhoto[0],
'hasAvatar' => $config['use_avatars'] && $userAvatar[0],
'hasIcq' => is_numeric($urow['icq'])?1:0,
),
),
'flags' => array(
'photoAllowed' => $config['use_photos']?1:0,
'avatarAllowed' => $config['use_avatars']?1:0,
),
'form_action' => generateLink('core', 'plugin', array('plugin' => 'uprofile', 'handler' => 'apply')),
'token' => genUToken('uprofile.update'),
'info_sizelimit_text' => str_replace('{limit}', intval($config['user_aboutsize']), $lang['uprofile']['about_sizelimit']),
'info_sizelimit' => intval($config['user_aboutsize']),
);
Результат: галочка в профиле устанавливается и снимается исправно. Но письма на почту отправляются в любом случае
Не в сети
В запросе для TWIG версии нужно добавить WHERE newsletter = 1 в запрос.
Изменено infinity237 (2014-01-20 12:56:55)
Не в сети
Как правильно вставить WHERE newsletter = 1 в
$mysql->query("INSERT INTO ".uprefix."_users (name, pass, mail, status, reg, last, newsletter) VALUES (".db_squote($values['email']).", ".db_squote(EncodePassword($values['password'])).", ".db_squote($values['email']).", ".$regstatus.", '".$add_time."', '".$add_time."', '".intval($_POST['check_newsletter'])."')");
?
у меня с нескольких попыток не получилось
Не в сети
Нет.
В news_messaging.php, найти:
foreach ($mysql->select("SELECT mail FROM `".uprefix."_users`") as $row) {
Заменить:
foreach ($mysql->select("SELECT mail FROM `".uprefix."_users` WHERE newsletter = 1") as $row) {
Не в сети
Поставил, настроил,и по ходу рассылка пошла всем,
Домен ngcmshak.ru превысил максимум писем в час (50/50 (100%))
и походу все мой пользователи в течении нескольких часов получат всякую хрень ,это совсем не то.Надо бы чтобы раз в неделю и последние новости за неделю.
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
чё? там рассылка письма при добавлении, только при проставлении галочки. логика такая какая есть.
Не в сети
Ну что было то и написал,может из за версии движка 0.9.3 + SVN [SVN1295+],но рассылка пошла всем и без галочки,ее я только у себя в профиле поставил
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети