#SQL ALTER TABLE '.PREFIX.'users ADD Newsletter TINYINT(1) UNSIGNED NOT NULL; #OPEN member.php #FIND function editsettings() #FIND EmailNotifyPrivMsg=\''.$Newprofile['EmailNotifyPrivMsg'].'\' #REPLACE EmailNotifyPrivMsg=\''.$Newprofile['EmailNotifyPrivMsg'].'\', Newsletter=\''.$Newprofile['Newsletter'].'\' #FIND $ent['EmailNotifyPrivMsg'] = MakeRadioBoxArray('profile[EmailNotifyPrivMsg]',array('1'=>$txt['yes'],'0'=>$txt['no']),$CurrentUser['EmailNotifyPrivMsg']); #ADDAFTER $ent['Newsletter'] = MakeRadioBoxArray('profile[Newsletter]',array('1'=>$txt['yes'],'0'=>$txt['no']),$CurrentUser['Newsletter']); #FIND function register() #FIND EmailSubbedTopics,ViewLastXDays,SaveCookie,TimeZone,Bio,Location,LastActive,RegDate,RegIP,TitleID,Birthday) #REPLACE EmailSubbedTopics,ViewLastXDays,SaveCookie,TimeZone,Bio,Location,LastActive,RegDate,RegIP,TitleID,Birthday, Newsletter) #FIND \''.$_POST['userinfo']['usertitle'].'\',\''.$_POST['userinfo']['Birthday'].'\')'; #REPLACE \''.$_POST['userinfo']['usertitle'].'\',\''.$_POST['userinfo']['Birthday'].'\', \''.$_POST['userinfo']['Newsletter'].'\')'; #FIND $ent['EmailNotifyPrivMsg'] = MakeRadioBoxArray('userinfo[EmailNotifyPrivMsg]',array(1=>'Yes',0=>'No'),0); #ADDAFTER $ent['Newsletter'] = MakeRadioBoxArray('userinfo[Newsletter]',array(1=>'Yes',0=>'No'),0); #FIND } switch ($action) #REPLACE } function Unsubscribe() { global $fSettings,$ent,$txt,$code,$username; $sql = new DB_SQL; $code = preg_replace("#[^a-z0-9]#is",'',$code); $query = 'SELECT UserName,Email,Password FROM '.PREFIX.'users WHERE UserName=\''.$username.'\''; $sql->query($query); if(!$sql->num_rows()) { UhOh($txt['errNewsletterInvalidConfirm']); } list($name,$email,$password) = $sql->get_numeric(); if ($code != md5($name.$password.$email)) { UhOh($txt['errNewsletterInvalidConfirm']); } $query = 'UPDATE '.PREFIX.'users SET Newsletter=0 WHERE UserName=\''.$username.'\''; $sql->query($query); SomeMessage($txt['Newsletter'],$txt['NewsletterUnsubscribed']); } switch ($action) #FIND case 'editavatar': @require('./includes/avatars.php'); editavatar(); break; #ADDAFTER case 'unsubscribe': Unsubscribe(); break; #OPEN templates/editsettings.html #FIND : #ADDAFTER : #OPEN admin/index.php #FIND   Mass Delete
#ADDAFTER   Send Mass Mail/PM
#OPEN admin/adminfunctions.php #FIND case 'mdelattach': @require('./attachments.php'); MDelAttach(); break; #ADDAFTER case 'massmail': @require('./massmail.php'); MassMail(); break; #CREATE admin/massmail.php query($query); echo 'Sending '.$input[type].' to '.$sql->num_rows().' users:
'; while (list($UserID,$name,$email,$password) = $sql->get_numeric()) { echo '
'.$name; if ($input[type] == "pm") { if ($UserID != $CurrentUser['UserID']) { $query = 'INSERT INTO '.PREFIX.'privmsgs (FromUserID,ToUserID,Subject,Message,DateSent,PosticonID,pmMask,FromUserIP) VALUES (\''.$CurrentUser['UserID'].'\',\''.$UserID.'\',\''.addslashes($Subject).'\', \''.addslashes($input['message']).'\',\''.time().'\',\'1\', \''.$pmMask.'\',\''.$_SERVER['REMOTE_ADDR'].'\')'; $sql2->query($query); $pmID = $sql2->insert_id(); $query = 'UPDATE '.PREFIX.'privmsgs SET pmRootID=\''.$pmID.'\' WHERE pmID=\''.$pmID.'\''; $sql2->query($query); } else { echo '... skipped: Can\'t PM yourself!'; } } elseif ($input[type] == "mail") { $mail->send($name,$email,stripslashes($Subject),$headers,$message); } elseif ($input[type] == "newsletter") { $ent['code'] = md5($name.$password.$email); $ent['name'] = $name; $message = ParseTemp($template,$ent); $mail->send($name,$email,stripslashes($Subject),$headers,$message); } } } else {?> tForum Administration Area
Message:
Type
From (only if
you chose Mail or Newsletter)
Subject
Message
Send to all users with: (Settings are connected with "AND"; Use "more" and "-1" for all users.)
Total Posts
Posts Per Day
Days Registered
Days Inactive
User Level
Remember that admin is the lowest user level (1) and banned user the highest (5). And if you defined your own levels they are perhaps even bigger.
 
#CREATE templates/mail/massmail.html /member.php?action=unsubscribe&username=&code= #OPEN language/text.php #ADD $txt['Newsletter'] = 'Newsletter'; $txt['errNewsletterInvalidConfirm'] = 'Invalid Username/Confirmation Code!'; $txt['NewsletterUnsubscribed'] = 'You have been unsubscribed from the Newsletter.'; $txt['NewsletterUnsubscribeLink1'] = 'To Unsubscribe from the'; $txt['NewsletterUnsubscribeLink2'] = 'Newsletter go to'; #END