Господа, нужен мод.
Пользователь определяет хочет он получать рассылку новостей с форума, или нет. И в профиле указывает это. Соответственно админ сассылает сообщения и они рассылаются только тем, кто подписался на них.Поиском не нашел: http://www.phpbbguru.net/community/sear ... b9cc15bdf5
В Модах видел мод Disable Email, но похоже это не то, что надо.
Подскажите плиз, как реализовать?
			
			
									
						Новосная рассылка
- 
				CCA
- phpBB 1.4.1
- Сообщения: 47
- Стаж: 20 лет 4 месяца
Хм... неужели нет такого мода? Судя по паре неотвеченных постов (хотя и не совсем на эту тему).... а с чем это связано? Неужели никто из юзеров не катил на админа бочку (собственно из за этого и нужен мод), что он не хочет получать рассулку новостей и квалифицирует такую рассылку как спам. И в принципе он прав  
			
			
									
						
- 
				Coagulant  
- Former team member
- Сообщения: 955
- Стаж: 20 лет 9 месяцев
- Откуда: Москва
User Mass Email Control. Бета, вроде подходит под ваше описание  
P.S. Мод был найден по ключевому слову email в поиске модов на phpbb.com. Поищите может там ещё что-нибудь интересное найдёте
			
			
									
						
P.S. Мод был найден по ключевому слову email в поиске модов на phpbb.com. Поищите может там ещё что-нибудь интересное найдёте
- 
				CCA
- phpBB 1.4.1
- Сообщения: 47
- Стаж: 20 лет 4 месяца
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- 
				CCA
- phpBB 1.4.1
- Сообщения: 47
- Стаж: 20 лет 4 месяца
Господа, насколько я понимаю, как то не так формируется запрос выборки юзеров. Может кто нибудь, знающий 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; 
