Господа, нужен мод.
Пользователь определяет хочет он получать рассылку новостей с форума, или нет. И в профиле указывает это. Соответственно админ сассылает сообщения и они рассылаются только тем, кто подписался на них.Поиском не нашел: http://www.phpbbguru.net/community/sear ... b9cc15bdf5
В Модах видел мод Disable Email, но похоже это не то, что надо.
Подскажите плиз, как реализовать?
Новосная рассылка
-
- phpBB 1.4.1
- Сообщения: 47
- Стаж: 19 лет 10 месяцев
Хм... неужели нет такого мода? Судя по паре неотвеченных постов (хотя и не совсем на эту тему).... а с чем это связано? Неужели никто из юзеров не катил на админа бочку (собственно из за этого и нужен мод), что он не хочет получать рассулку новостей и квалифицирует такую рассылку как спам. И в принципе он прав 

-
- Former team member
- Сообщения: 955
- Стаж: 20 лет 3 месяца
- Откуда: Москва
User Mass Email Control. Бета, вроде подходит под ваше описание 
P.S. Мод был найден по ключевому слову email в поиске модов на phpbb.com. Поищите может там ещё что-нибудь интересное найдёте

P.S. Мод был найден по ключевому слову email в поиске модов на phpbb.com. Поищите может там ещё что-нибудь интересное найдёте
-
- phpBB 1.4.1
- Сообщения: 47
- Стаж: 19 лет 10 месяцев
Coagulant
Спасибо, установил (там в конце очепятка небольшая: написано
надо:
)
Теперь буду тестить
Добавлено спустя 1 час 34 минуты 17 секунд:
Ну вот, не работает. При попытке отослать сообщение "Всем пользователям" выдается сообщение "Извините, но такого пользователя не существует".
В моде указано что он работает на 2.0.17, я ставлю на 2.0.21, есть ли сильное различие в БД, из за чего и мог такой баг произойти?
Добавлено спустя 37 минут 26 секунд:
PS устанавливал естественно бету (альфу):
Спасибо, установил (там в конце очепятка небольшая: написано
Код: Выделить всё
<span class="gen>{L_NO}</span></td>
Код: Выделить всё
<span class="gen">{L_NO}</span></td>
Теперь буду тестить

Добавлено спустя 1 час 34 минуты 17 секунд:
Ну вот, не работает. При попытке отослать сообщение "Всем пользователям" выдается сообщение "Извините, но такого пользователя не существует".
В моде указано что он работает на 2.0.17, я ставлю на 2.0.21, есть ли сильное различие в БД, из за чего и мог такой баг произойти?
Добавлено спустя 37 минут 26 секунд:
PS устанавливал естественно бету (альфу):
Код: Выделить всё
##############################################################
## MOD Title: User Mass E-Mail Control
## MOD Author: kratzer54847 < alternativ3322@web.de > (Johny Jesewski) http://www.plauderclub.de/
## MOD Description: User can specify in their profiles of they want to recieve mass emails or not
## MOD Version: 0.1.2 beta (edited by baerenwurm)
##
## Installation Level: Easy
## Installation Time: 5 Minutes
## Files To Edit: includes/usercp_register.php, admin/admin_mass_email.php, language/lang_xxx/lang_main.php, templates/subSilver/profile_add_body.tpl, templates/subSilver/admin/user_edit_body.tpl
## Included Files: n/a
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes:
##
## This Mod adds an option to the user profile where the useres can specify if they want to recieve mass emails or not.
##############################################################
## MOD History:
##
## 2005-10-06 - Version 0.1.2 beta
## - Changed "Administrators can email me information" to be activated by default
## - Fixed language error
## - Added some missing modifications
## - Corrected the order of the modifications
## - Minor changes of the code structure for a better overview
## - Minor style corrections in profile_add_body.tpl and user_edit_body.tpl
##
## 2004-10-19 - Version 0.0.2 alpha
## - Minor db structure change used TINYINT instead of VARCHAR
##
## 2004-10-18 - Version 0.0.1 alpha
## - Initial Release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ SQL ]------------------------------------------
#
ALTER TABLE `phpbb_users` ADD `user_mass_email` TINYINT( 1 ) NOT NULL ;
UPDATE `phpbb_users` SET `user_mass_email` = 1 ;
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_mass_email.php
#
#-----[ FIND ]------------------------------------------
#
$sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE;
#
#-----[ REPLACE WITH ]------------------------------------------
#
//
// Get users who want a Mass Email
//
$sql = "SELECT u.user_email
FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
WHERE $group_id != '-1'
AND ug.group_id = $group_id
AND u.user_mass_email = '1'
AND ug.user_pending <> " . TRUE . "
AND u.user_id = ug.user_id";
#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]------------------------------------------
#
$allowviewonline = ( isset($HTTP_POST_VARS['hideonline']) ) ? ( ($HTTP_POST_VARS['hideonline']) ? 0 : TRUE ) : TRUE;
#
#-----[ AFTER, ADD ]------------------------------------------
#
$adminmail = ( isset($HTTP_POST_VARS['adminmail']) ) ? ( ($HTTP_POST_VARS['adminmail']) ? TRUE : 0 ) : TRUE;
#
#-----[ FIND ]------------------------------------------
#
$sql = "UPDATE " . USERS_TABLE . "
#
#-----[ IN-LINE FIND ]------------------------------------------
#
user_allow_viewonline = $allowviewonline,
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
user_mass_email = $adminmail,
#
#-----[ FIND ]------------------------------------------
#
$sql = "INSERT INTO " . USERS_TABLE . "
#
#-----[ IN-LINE FIND ]------------------------------------------
#
user_allow_viewonline,
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
user_mass_email,
#
#-----[ IN-LINE FIND ]------------------------------------------
#
$allowviewonline,
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
'1',
#
#-----[ FIND ]------------------------------------------
#
$allowviewonline = $userdata['user_allow_viewonline'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
$adminmail = $userdata['user_mass_email'];
#
#-----[ FIND ]------------------------------------------
#
display_avatar_gallery(
#
#-----[ IN-LINE FIND ]------------------------------------------
#
$allowviewonline,
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
$adminmail,
#
#-----[ FIND ]------------------------------------------
#
'HIDE_USER_NO' => ( $allowviewonline ) ? 'checked="checked"' : '',
#
#-----[ AFTER, ADD ]------------------------------------------
#
'ADMINMAIL_YES' => ( $adminmail ) ? 'checked="checked"' : '',
'ADMINMAIL_NO' => ( !$adminmail ) ? 'checked="checked"' : '',
#
#-----[ FIND ]------------------------------------------
#
'L_HIDE_USER' => $lang['Hide_user'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
'L_ADMINMAIL' => $lang['Adminmail'],
#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php
#
#-----[ FIND ]------------------------------------------
#
$lang['Always_notify_explain'] = 'Sends an e-mail when someone replies to a topic you have posted in. This can be changed whenever you post.';
#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['Adminmail'] = 'Administrators can email me information';
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/profile_add_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<tr>
<td class="row1"><span class="gen">{L_HIDE_USER}:</span></td>
<td class="row2">
<input type="radio" name="hideonline" value="1" {HIDE_USER_YES} />
<span class="gen">{L_YES}</span>
<input type="radio" name="hideonline" value="0" {HIDE_USER_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<tr>
<td class="row1"><span class="gen">{L_ADMINMAIL}</span></td>
<td class="row2">
<input type="radio" name="adminmail" value="1" {ADMINMAIL_YES} />
<span class="gen">{L_YES}</span>
<input type="radio" name="adminmail" value="0" {ADMINMAIL_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_users.php
#
#-----[ FIND ]------------------------------------------
#
$allowviewonline = ( isset( $HTTP_POST_VARS['hideonline']) ) ? ( ( $HTTP_POST_VARS['hideonline'] ) ? 0 : TRUE ) : TRUE;
#
#-----[ AFTER, ADD ]------------------------------------------
#
$adminmail = ( isset($HTTP_POST_VARS['adminmail']) ) ? ( ($HTTP_POST_VARS['adminmail']) ? TRUE : 0 ) : TRUE;
#
#-----[ FIND ]------------------------------------------
#
$sql = "UPDATE " . USERS_TABLE . "
#
#-----[ IN-LINE FIND ]------------------------------------------
#
user_allow_viewonline = $allowviewonline,
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
user_mass_email = '$adminmail',
#
#-----[ FIND ]------------------------------------------
#
$allowviewonline = $this_userdata['user_allow_viewonline'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
$adminmail = $this_userdata['user_mass_email'];
#
#-----[ FIND ]------------------------------------------
#
'HIDE_USER_NO' => ($allowviewonline) ? 'checked="checked"' : '',
#
#-----[ AFTER, ADD ]------------------------------------------
#
'ADMINMAIL_YES' => ( $adminmail ) ? 'checked="checked"' : '',
'ADMINMAIL_NO' => ( !$adminmail ) ? 'checked="checked"' : '',
#
#-----[ FIND ]------------------------------------------
#
'L_HIDE_USER' => $lang['Hide_user'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
'L_ADMINMAIL' => $lang['Adminmail'],
#
#-----[ FIND ]------------------------------------------
#
$s_hidden_fields .= '<input type="hidden" name="hideonline" value="' . !$allowviewonline . '" />';
#
#-----[ AFTER, ADD ]------------------------------------------
#
$s_hidden_fields .= '<input type="hidden" name="adminmail" value="' . $adminmail . '" />';
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/user_edit_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<tr>
<td class="row1"><span class="gen">{L_HIDE_USER}</span></td>
<td class="row2">
<input type="radio" name="hideonline" value="1" {HIDE_USER_YES} />
<span class="gen">{L_YES}</span>
<input type="radio" name="hideonline" value="0" {HIDE_USER_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<tr>
<td class="row1"><span class="gen">{L_ADMINMAIL}</span></td>
<td class="row2">
<input type="radio" name="adminmail" value="1" {ADMINMAIL_YES} />
<span class="gen">{L_YES}</span>
<input type="radio" name="adminmail" value="0" {ADMINMAIL_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
-
- phpBB 1.4.1
- Сообщения: 47
- Стаж: 19 лет 10 месяцев
Господа, насколько я понимаю, как то не так формируется запрос выборки юзеров. Может кто нибудь, знающий SQL разжевать запрос:
Оригинальный запрос выглядел так:
Код: Выделить всё
$sql = "SELECT u.user_email
FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
WHERE $group_id != '-1'
AND ug.group_id = $group_id
AND u.user_mass_email = '1'
AND ug.user_pending <> " . TRUE . "
AND u.user_id = ug.user_id";
Код: Выделить всё
$sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE;