[ Index ] |
PHP Cross Reference of phpwcms V1.4.3 _r380 (23.11.09) |
[Summary view] [Print] [Text view]
1 <?php 2 /************************************************************************************* 3 Copyright notice 4 5 (c) 2002-2009 Oliver Georgi (oliver@phpwcms.de) // All rights reserved. 6 7 This script is part of PHPWCMS. The PHPWCMS web content management system is 8 free software; you can redistribute it and/or modify it under the terms of 9 the GNU General Public License as published by the Free Software Foundation; 10 either version 2 of the License, or (at your option) any later version. 11 12 The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html 13 A copy is found in the textfile GPL.txt and important notices to the license 14 from the author is found in LICENSE.txt distributed with these scripts. 15 16 This script is distributed in the hope that it will be useful, but WITHOUT ANY 17 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 18 PARTICULAR PURPOSE. See the GNU General Public License for more details. 19 20 This copyright notice MUST APPEAR in all copies of the script! 21 *************************************************************************************/ 22 23 // ---------------------------------------------------------------- 24 // obligate check for phpwcms constants 25 if (!defined('PHPWCMS_ROOT')) { 26 die("You Cannot Access This Script Directly, Have a Nice Day."); 27 } 28 // ---------------------------------------------------------------- 29 30 31 //newsletter subscription 32 33 $CNT_TMP .= headline($crow["acontent_title"], $crow["acontent_subtitle"], $template_default["article"]); 34 35 $content["newsletter"] = unserialize($crow["acontent_newsletter"]); 36 $content["newsletter"]["email_address_error"] = 0; 37 $content["newsletter"]["success"] = 0; 38 $content["newsletter"]["email_subscription"] = array(); 39 if(empty($content["newsletter"]["email_address"])) { 40 $content["newsletter"]["email_address"] = ''; 41 } 42 if(empty($content["newsletter"]["email_name"])) { 43 $content["newsletter"]["email_name"] = ''; 44 } 45 46 if(!$content["newsletter"]["change_text"] || !$content["newsletter"]["reg_text"]) { 47 $temp_mailtext = 'Hi {NEWSLETTER_NAME},'."\n\n"; 48 $temp_mailtext .= 'You have subscribed to the newsletter at'." \n"; 49 $temp_mailtext .= $phpwcms["site"]." \n\n"; 50 $temp_mailtext .= 'Before you will receive any newsletter '."\n"; 51 $temp_mailtext .= 'you have to verify the email address '."\n\n"; 52 $temp_mailtext .= ' {NEWSLETTER_EMAIL} '."\n\n\n"; 53 $temp_mailtext .= 'To verify click the link '."\n"; 54 $temp_mailtext .= '{NEWSLETTER_VERIFY} '."\n\n"; 55 $temp_mailtext .= 'To delete your entry from our database '."\n"; 56 $temp_mailtext .= '{NEWSLETTER_DELETE}'."\n\n\n"; 57 $temp_mailtext .= 'Best Regards'."\n"; 58 $temp_mailtext .= $phpwcms['SMTP_FROM_NAME']."\n"; 59 $temp_mailtext .= $phpwcms["admin_email"]."\n\n"; 60 $temp_mailtext .= "--\nIP: {IP}, Date: {DATE:d-m-Y, H:i:s}\n"; 61 62 if(!$content["newsletter"]["change_text"]) { 63 $content["newsletter"]["change_text"] = $temp_mailtext; 64 } 65 if(!$content["newsletter"]["reg_text"]) { 66 $content["newsletter"]["reg_text"] = $temp_mailtext; 67 } 68 } 69 70 if(isset($_POST["newsletter_send"]) && intval($_POST["newsletter_send"])) { 71 unset($content["newsletter"]["email_subscription"]); 72 73 $content["newsletter"]["email_address"] = clean_slweg(remove_unsecure_rptags($_POST["newsletter_email"]), 250); 74 $content["newsletter"]["email_name"] = clean_slweg(remove_unsecure_rptags($_POST["newsletter_name"]), 250); 75 $content["newsletter"]["email_subscription"] = isset($_POST["email_subscription"]) && is_array($_POST["email_subscription"]) ? $_POST["email_subscription"] : array(0 => 0); 76 77 if(empty($content["newsletter"]["url1"])) $content["newsletter"]["url1"] = ''; 78 if(empty($content["newsletter"]["url2"])) $content["newsletter"]["url2"] = ''; 79 80 if(is_valid_email($content["newsletter"]["email_address"])) { 81 //Success 82 $content["newsletter"]["success"] = 1; 83 $content["newsletter"]["reffering_key"] = ""; 84 $check_sql = "SELECT * FROM ".DB_PREPEND."phpwcms_address WHERE address_email='". 85 aporeplace($content["newsletter"]["email_address"])."' LIMIT 1"; 86 if($check_result = mysql_query($check_sql, $db)) { 87 if($check_row = mysql_fetch_array($check_result, MYSQL_ASSOC)) { 88 $content["newsletter"]["reffering_key"] = $check_row["address_key"]; 89 $content["newsletter"]["reffering_id"] = $check_row["address_id"]; 90 } 91 mysql_free_result($check_result); 92 } 93 if($content["newsletter"]["reffering_key"]) { 94 //if email exists in newsletter address list update entry 95 $e_sql = "UPDATE ".DB_PREPEND."phpwcms_address SET ". 96 "address_name='".aporeplace($content["newsletter"]["email_name"])."', ". 97 "address_verified=0, ". 98 "address_subscription='".aporeplace(serialize($content["newsletter"]["email_subscription"]))."', ". 99 "address_url1='".aporeplace($content["newsletter"]["url1"])."', ". 100 "address_url2='".aporeplace($content["newsletter"]["url2"])."' ". 101 "WHERE address_id=".aporeplace($content["newsletter"]["reffering_id"]).";"; 102 $content["newsletter"]["updated"] = 1; 103 } else { 104 $content["newsletter"]["reffering_key"] = shortHash($content["newsletter"]["email_address"].time()); 105 //if email not exists in newsletter address list insert entry 106 $e_sql = "INSERT INTO ".DB_PREPEND."phpwcms_address (". 107 "address_email, address_name, address_key, address_subscription, address_url1, address_url2) VALUES ('". 108 aporeplace($content["newsletter"]["email_address"])."', '". 109 aporeplace($content["newsletter"]["email_name"])."', '". 110 $content["newsletter"]["reffering_key"]."', '". 111 aporeplace(serialize($content["newsletter"]["email_subscription"]))."', '". 112 aporeplace($content["newsletter"]["url1"]). 113 "', '". 114 aporeplace($content["newsletter"]["url2"]). 115 "');"; 116 $content["newsletter"]["updated"] = 0; 117 } 118 mysql_query($e_sql, $db); 119 $content["newsletter"]["verify_link"] = PHPWCMS_URL."verify.php?s=".rawurlencode($content["newsletter"]["reffering_key"]); 120 $content["newsletter"]["delete_link"] = PHPWCMS_URL."verify.php?u=".rawurlencode($content["newsletter"]["reffering_key"]); 121 $content["newsletter"]["mailtext"] = ($content["newsletter"]["updated"]) ? $content["newsletter"]["change_text"] : $content["newsletter"]["reg_text"]; 122 $content["newsletter"]["mailtext"] = str_replace("{NEWSLETTER_NAME}", $content["newsletter"]["email_name"], $content["newsletter"]["mailtext"]); 123 $content["newsletter"]["mailtext"] = str_replace("{NEWSLETTER_EMAIL}", $content["newsletter"]["email_address"], $content["newsletter"]["mailtext"]); 124 $content["newsletter"]["mailtext"] = str_replace("{NEWSLETTER_VERIFY}", $content["newsletter"]["verify_link"], $content["newsletter"]["mailtext"]); 125 $content["newsletter"]["mailtext"] = str_replace("{NEWSLETTER_DELETE}", $content["newsletter"]["delete_link"], $content["newsletter"]["mailtext"]); 126 $content["newsletter"]["mailtext"] = replaceGlobalRT($content["newsletter"]["mailtext"]); 127 128 $content['newsletter']['subject'] = returnTagContent($content["newsletter"]["mailtext"], 'SUBJECT'); 129 if(empty($content['newsletter']['subject']['tag'])) { 130 if(isset($content['newsletter']['subject']['new'])) { 131 $content["newsletter"]["mailtext"] = $content['newsletter']['subject']['new']; 132 } 133 $content['newsletter']['subject'] = 'Newsletter verification for '.$phpwcms["site"]; 134 } else { 135 $content["newsletter"]["mailtext"] = $content['newsletter']['subject']['new']; 136 $content['newsletter']['subject'] = $content['newsletter']['subject']['tag']; 137 } 138 139 require_once ("include/inc_ext/phpmailer/class.phpmailer.php"); 140 141 // phpMailer Class 142 $mail = new PHPMailer(); 143 $mail->Mailer = $phpwcms['SMTP_MAILER']; 144 $mail->Host = $phpwcms['SMTP_HOST']; 145 $mail->Port = $phpwcms['SMTP_PORT']; 146 if($phpwcms['SMTP_AUTH']) { 147 $mail->SMTPAuth = 1; 148 $mail->Username = $phpwcms['SMTP_USER']; 149 $mail->Password = $phpwcms['SMTP_PASS']; 150 } 151 $mail->SMTPKeepAlive = false; 152 $mail->CharSet = $phpwcms["charset"]; 153 $mail->IsHTML(0); 154 $mail->Subject = $content['newsletter']['subject']; 155 $mail->Body = $content["newsletter"]["mailtext"]; 156 157 if(!$mail->SetLanguage($phpwcms['default_lang'])) { 158 $mail->SetLanguage('en'); 159 } 160 161 $mail->From = $phpwcms['SMTP_FROM_EMAIL']; 162 $mail->FromName = $phpwcms['SMTP_FROM_NAME']; 163 $mail->Sender = $phpwcms["admin_email"]; 164 165 $mail->ClearAddresses(); 166 $mail->AddAddress($content["newsletter"]["email_address"]); 167 168 if(!$mail->Send()) { 169 $template_default["article"]["newsletter_error"] = html_specialchars($mail->ErrorInfo); 170 $content["newsletter"]["success"] = 0; 171 $content["newsletter"]["email_address_error"] = 1; 172 } 173 174 $mail->SmtpClose(); 175 176 } else { 177 //Error 178 $content["newsletter"]["email_address_error"] = 1; 179 } 180 181 $content["newsletter"]["email_address"] = html_specialchars($content["newsletter"]["email_address"]); 182 $content["newsletter"]["email_name"] = html_specialchars($content["newsletter"]["email_name"]); 183 } 184 185 if($content["newsletter"]["success"]) { 186 $content["newsletter"]["success_text"] = str_replace("{NEWSLETTER_EMAIL}", "<strong>".$content["newsletter"]["email_address"]."</strong>", $content["newsletter"]["success_text"]); 187 $CNT_TMP .= div_class( ( 188 ($content["newsletter"]["success_text"]) ? nl2br($content["newsletter"]["success_text"]) : "Email: ".$content["newsletter"]["email_address"]. 189 " successfully registred. You will receive a verification email within seconds.") 190 , $template_default["article"]["text_class"]); 191 192 } else { 193 $CNT_TMP .= ($content["newsletter"]["text"]) ? "<br />".nl2br(div_class($content["newsletter"]["text"],$template_default["article"]["text_class"])) : ""; 194 $CNT_TMP .= '<form action="'.FE_CURRENT_URL.'" method="post" id="newsletterSubscribeForm">'.LF; 195 $CNT_TMP .= '<table border="0" cellpadding="0" cellspacing="0"'; 196 switch($content["newsletter"]["pos"]) { 197 case 1: $CNT_TMP .= ' align="left"'; break; 198 case 2: $CNT_TMP .= ' align="center"'; break; 199 case 3: $CNT_TMP .= ' align="right"'; break; 200 } 201 $CNT_TMP .= ' summary="">'.LF; 202 if($content["newsletter"]["email_address_error"]) { 203 $CNT_TMP .= "<tr>\n<td> "; 204 $CNT_TMP .= "</td>\n<td class=\"formError\">".$template_default["article"]["newsletter_error"]."</td>\n</tr>\n"; 205 } 206 $CNT_TMP .= "<tr>\n<td class=\"formLabel\">"; 207 $CNT_TMP .= (($content["newsletter"]["label_email"]) ? $content["newsletter"]["label_email"] : "email:")." "; 208 $CNT_TMP .= "</td>\n<td><input name=\"newsletter_email\" type=\"text\" class=\"inputNewsletter\" size=\"30\" maxlength=\"250\" "; 209 $CNT_TMP .= "value=\"".$content["newsletter"]["email_address"]."\" /></td>\n</tr>\n"; 210 $CNT_TMP .= "<tr>\n<td class=\"formLabel\">"; 211 $CNT_TMP .= (($content["newsletter"]["label_name"]) ? $content["newsletter"]["label_name"] : "name:")." "; 212 $CNT_TMP .= "</td>\n<td><input name=\"newsletter_name\" type=\"text\" class=\"inputNewsletter\" size=\"30\" maxlength=\"250\" "; 213 $CNT_TMP .= "value=\"".$content["newsletter"]["email_name"]."\" /></td>\n</tr>\n"; 214 215 if(is_array($content["newsletter"]["subscription"]) && count($content["newsletter"]["subscription"])) { 216 217 $CNT_TMP .= "<tr><td colspan=\"2\">".spacer(1,3)."</td></tr>\n"; 218 219 // retrieve all active newsletters 220 $content["newsletter"]['temp'] = _dbQuery("SELECT * FROM ".DB_PREPEND."phpwcms_subscription WHERE subscription_active=1 ORDER BY subscription_name"); 221 foreach($content["newsletter"]['temp'] as $nlvalue) { 222 223 if(isset($content["newsletter"]["subscription"][ $nlvalue['subscription_id'] ])) { 224 $content["newsletter"]["subscription"][ $nlvalue['subscription_id'] ] = $nlvalue['subscription_name']; 225 } 226 227 } 228 // check for "all" subscriptions setting 229 if(isset($content["newsletter"]["subscription"][0])) { 230 $content["newsletter"]["subscription"][0] = empty($content["newsletter"]["all_subscriptions"]) ? 'all subscriptions' : $content["newsletter"]["all_subscriptions"]; 231 } 232 233 $content["newsletter"]['c'] = 0; 234 $content["newsletter"]['t'] = ''; 235 foreach($content["newsletter"]["subscription"] as $nlkey => $nlvalue) { 236 237 if(is_numeric($nlvalue)) continue; 238 239 $content["newsletter"]['t'] .= '<tr>'.LF.'<td><input name="email_subscription['.$nlkey.']" type="checkbox" value="'.$nlkey.'"'; 240 if(isset($content["newsletter"]["email_subscription"][$nlkey])) $content["newsletter"]['t'] .= ' checked="checked"'; 241 $content["newsletter"]['t'] .= ' id="email_subscription_'.$nlkey.'"/></td>'.LF; 242 $content["newsletter"]['t'] .= '<td><label for="email_subscription_'.$nlkey.'">'; 243 $content["newsletter"]['t'] .= html_specialchars($nlvalue); 244 $content["newsletter"]['t'] .= '</label></td>'.LF.'</tr>'.LF; 245 246 $content["newsletter"]['c']++; 247 248 } 249 250 if($content["newsletter"]['c']) { 251 252 $CNT_TMP .= "<tr>\n<td valign=\"top\" class=\"formLabel subscriptions\">"; 253 $CNT_TMP .= empty($content["newsletter"]["label_subscriptions"]) ? 'subscribe to:' : $content["newsletter"]["label_subscriptions"]; 254 $CNT_TMP .= " </td>\n<td valign=\"top\">"; 255 $CNT_TMP .= '<table border="0" cellpadding="0" cellspacing="0" class="subscriptions">'.LF; 256 $CNT_TMP .= $content["newsletter"]['t']; 257 $CNT_TMP .= "</table></td>\n</tr>\n"; 258 } 259 260 } 261 262 263 $CNT_TMP .= "<tr><td colspan=\"2\">".spacer(1,3)."</td></tr>\n"; 264 $CNT_TMP .= "<tr>\n<td> </td>\n<td><input name=\"submit\" type=\"submit\" class=\"formButton\" value=\""; 265 $CNT_TMP .= (($content["newsletter"]["button_text"]) ? $content["newsletter"]["button_text"] : "send")."\" />"; 266 $CNT_TMP .= '<input name="newsletter_send" type="hidden" value="1" />'; 267 $CNT_TMP .= "</td>\n</tr>\n</table></form>"; 268 } 269 270 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Dec 30 05:55:15 2009 | Cross-referenced by PHPXref 0.7 |