Seite 1 von 2

[ALPHA] User Mass E-Mail Control

Verfasst: 18.10.2004 22:41
von kratzer54847
Hoi,

für den Eigenbedarf habe ich einen Mod geschrieben,bei dem die User wählen können,ob sie Massenemails erhalten wollen oder nicht.

Just wanna share my code... :D

Code: Alles auswählen

############################################################## 
## 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.0.2 alpha
## 
## 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: 
##
## 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 AFTER `user_allow_viewonline` ;


# 
#-----[ 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 ]------------------------------------------ 
#

$viewemail = ( isset($HTTP_POST_VARS['viewemail']) ) ? ( ($HTTP_POST_VARS['viewemail']) ? TRUE : 0 ) : 0;

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

$adminmail = ( isset($HTTP_POST_VARS['adminmail']) ) ? ( ($HTTP_POST_VARS['adminmail']) ? TRUE : 0 ) : 0;

# 
#-----[ FIND ]------------------------------------------ 
#

$sql = "UPDATE " . USERS_TABLE . "

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
#

user_notify_pm,

# 
#-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
#

user_mass_email,

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
#

$notifyreply,

# 
#-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
#

$adminmail,  

# 
#-----[ FIND ]------------------------------------------ 
#

$sql = "INSERT INTO " . USERS_TABLE . "

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
#

user_notify_pm, 

# 
#-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
#

user_mass_email,

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
#

$notifypm,

# 
#-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
#

 '1',

# 
#-----[ FIND ]------------------------------------------ 
#

$allowviewonline = $userdata['user_allow_viewonline'];

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

$adminmail = $userdata['user_mass_email'];

# 
#-----[ FIND ]------------------------------------------ 
#

'NOTIFY_REPLY_NO' => ( !$notifyreply ) ? 'checked="checked"' : '',

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

'ADMINMAIL_YES' => ( $adminmail ) ? 'checked="checked"' : '',
'ADMINMAIL_NO' => ( !$adminmail ) ? 'checked="checked"' : '',

# 
#-----[ FIND ]------------------------------------------ 
#

'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'],

# 
#-----[ 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>&nbsp;&nbsp; 
	<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"><b>{L_ADMINMAIL}</b></span></td>
<td class="row2"> 
		<input type="radio" name="adminmail" value="1" {ADMINMAIL_YES} />
		<span class="gensmall">{L_YES}</span>&nbsp; 
		<input type="radio" name="adminmail" value="0" {ADMINMAIL_NO} />
		<span class="gensmall">{L_NO}</span>
</td>
</tr>

# 
#-----[ OPEN ]------------------------------------------ 
#

admin/admin_users.php

# 
#-----[ FIND ]------------------------------------------ 
#

$user_avatar_size = ( !empty($HTTP_POST_FILES['avatar']['size']) ) ? $HTTP_POST_FILES['avatar']['size'] : 0;

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

$adminmail = ( isset($HTTP_POST_VARS['adminmail']) ) ? ( ($HTTP_POST_VARS['adminmail']) ? TRUE : 0 ) : 0;

# 
#-----[ FIND ]------------------------------------------ 
#

$sql = "UPDATE " . USERS_TABLE . "

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
#
user_notify = $notifyreply,

# 
#-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
#

user_mass_email = '$adminmail',

# 
#-----[ FIND ]------------------------------------------ 
#

'POPUP_PM_NO' => (!$popuppm) ? 'checked="checked"' : '',

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

'ADMINMAIL_YES' => ( $adminmail ) ? 'checked="checked"' : '',
'ADMINMAIL_NO' => ( !$adminmail ) ? 'checked="checked"' : '',

# 
#-----[ FIND ]------------------------------------------ 
#

'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'],

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

'L_ADMINMAIL' => $lang['adminmail'],

# 
#-----[ FIND ]------------------------------------------ 
#
	$notifyreply = $this_userdata['user_notify'];

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
	$adminmail = $this_userdata['user_mass_email'];

# 
#-----[ FIND ]------------------------------------------ 
#
	$s_hidden_fields .= '<input type="hidden" name="notifyreply" value="' . $notifyreply . '" />';	

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

	$s_hidden_fields .= '<input type="hidden" name="adminmail" value="' . $adminmail . '" />';

# 
#-----[ OPEN ]------------------------------------------ 
#

templates/subSilver/user_edit_body.tpl

# 
#-----[ FIND ]------------------------------------------ 
#

	<tr> 
	  <td class="row1"><span class="gen">{L_NOTIFY_ON_REPLY}</span></td>
	  <td class="row2"> 
		<input type="radio" name="notifyreply" value="1" {NOTIFY_REPLY_YES} />
		<span class="gen">{L_YES}</span>&nbsp;&nbsp; 
		<input type="radio" name="notifyreply" value="0" {NOTIFY_REPLY_NO} />
		<span class="gen">{L_NO}</span></td>
	</tr>

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

<tr> 
<td class="row1"><span class="gen"><b>{L_ADMINMAIL}</b></span></td>
<td class="row2"> 
		<input type="radio" name="adminmail" value="1" {ADMINMAIL_YES} />
		<span class="gensmall">{L_YES}</span>&nbsp; 
		<input type="radio" name="adminmail" value="0" {ADMINMAIL_NO} />
		<span class="gensmall">{L_NO}</span>
</td>
</tr>

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM

Verfasst: 19.10.2004 17:14
von kratzer54847
Update Alpha 0.0.2

Bug: Fehler in der Datenbankstruktur
Fix: Folgenen Query ausführen(Präfix ggf. ändern):

Code: Alles auswählen

ALTER TABLE `phpbb_users` CHANGE `user_mass_email` `user_mass_email` TINYINT( 1 ) NOT NULL

Verfasst: 23.10.2004 14:31
von kratzer54847
für Version 0.1.0 ist bisher folgendes geplant:

Admins können bestimmte E-Mails trotzdem an alle Benutzer senden(durch aktivieren einer zusätzlichen Checkbox "An alle User senden")

Verfasst: 23.10.2004 17:12
von FSKiller / Phoenix
kratzer54847 hat geschrieben:für Version 0.1.0 ist bisher folgendes geplant:

Admins können bestimmte E-Mails trotzdem an alle Benutzer senden(durch aktivieren einer zusätzlichen Checkbox "An alle User senden")
und was soll der mod dann bringen wenn der Admin doch an alle schreiben kann wenn einer das nicht haben will?

Verfasst: 23.10.2004 17:14
von kratzer54847
Ich dachte da an Urgent Messages,also wichtige Nachrichten,die z.B. die Useraccounts betreffen etc.

Verfasst: 23.10.2004 17:19
von FSKiller / Phoenix
kratzer54847 hat geschrieben:Ich dachte da an Urgent Messages,also wichtige Nachrichten,die z.B. die Useraccounts betreffen etc.
?? what? kannste das mal für nicht so schlaue leute wie du erklären stehe auf dem schlauch aber an sich nett, aber wenn man nur darüber belastigt wird kann man ja auch in spamfilter packen :D

Verfasst: 23.10.2004 17:57
von kratzer54847
naja wenns nun um ganz wichtige Dinge geht,wie z.B. personelle Änderungen etc. dann sollte man das überschreiben können finde ich!

mfg Johny

Verfasst: 16.12.2004 12:01
von FSKiller / Phoenix
Servus,

auch wenn ich erst etwas gegen den MOD war aber mir ist da was eingefallen
schau mal hier da du ja der author des scriptes bist vielleicht wäre das eine gute erweiterung ...

Verfasst: 16.12.2004 14:53
von kratzer54847
hoi FSKiller,

ich arbeite derzeit noch an Version 1.1 mit den "Urgent Mails",die alle User bekommen.

Ich werde mir die Sache aber mal ansehen,wenn ich wieder Zeit dafür habe.

mfg Johny

Verfasst: 03.06.2005 20:39
von Helmut71
Hallo!!

@Johnny: finde deine Idee hervorragend!

Etwas solltest du noch hinzufügen: User sollten wählen können, ob ALLE User ihnen Emails schicken dürfen und ob NUR ADMINS ihnen Mails schicken oder gar keiner.

Diese Funktion suche ich schon ne zeitlang für phpbb

Ist in anderen Boards Standard.

Vielleicht schaffst du das??