[ Index ] |
PHP Cross Reference of phpwcms V1.4.7 _r403 (01.11.10) |
[Summary view] [Print] [Text view]
1 <?php 2 /************************************************************************************* 3 Copyright notice 4 5 (c) 2002-2010 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 if(!isset($content["newsletter"]["label_pos"])) { 46 $content["newsletter"]["label_pos"] = 0; 47 } 48 49 if(!$content["newsletter"]["change_text"] || !$content["newsletter"]["reg_text"]) { 50 $temp_mailtext = 'Hi {NEWSLETTER_NAME},'."\n\n"; 51 $temp_mailtext .= 'You have subscribed to the newsletter at'." \n"; 52 $temp_mailtext .= $phpwcms["site"]." \n\n"; 53 $temp_mailtext .= 'Before you will receive any newsletter '."\n"; 54 $temp_mailtext .= 'you have to verify the email address '."\n\n"; 55 $temp_mailtext .= ' {NEWSLETTER_EMAIL} '."\n\n\n"; 56 $temp_mailtext .= 'To verify click the link '."\n"; 57 $temp_mailtext .= '{NEWSLETTER_VERIFY} '."\n\n"; 58 $temp_mailtext .= 'To delete your entry from our database '."\n"; 59 $temp_mailtext .= '{NEWSLETTER_DELETE}'."\n\n\n"; 60 $temp_mailtext .= 'Best Regards'."\n"; 61 $temp_mailtext .= $phpwcms['SMTP_FROM_NAME']."\n"; 62 $temp_mailtext .= $phpwcms["admin_email"]."\n\n"; 63 $temp_mailtext .= "--\nIP: {IP}, Date: {DATE:d-m-Y, H:i:s}\n"; 64 65 if(!$content["newsletter"]["change_text"]) { 66 $content["newsletter"]["change_text"] = $temp_mailtext; 67 } 68 if(!$content["newsletter"]["reg_text"]) { 69 $content["newsletter"]["reg_text"] = $temp_mailtext; 70 } 71 } 72 73 if(isset($_POST["newsletter_send"]) && intval($_POST["newsletter_send"])) { 74 unset($content["newsletter"]["email_subscription"]); 75 76 $content["newsletter"]["email_address"] = clean_slweg(remove_unsecure_rptags($_POST["newsletter_email"]), 250); 77 $content["newsletter"]["email_name"] = clean_slweg(remove_unsecure_rptags($_POST["newsletter_name"]), 250); 78 $content["newsletter"]["email_subscription"] = isset($_POST["email_subscription"]) && is_array($_POST["email_subscription"]) ? $_POST["email_subscription"] : array(0 => 0); 79 80 if(empty($content["newsletter"]["url1"])) $content["newsletter"]["url1"] = ''; 81 if(empty($content["newsletter"]["url2"])) $content["newsletter"]["url2"] = ''; 82 83 if(is_valid_email($content["newsletter"]["email_address"])) { 84 //Success 85 $content["newsletter"]["success"] = 1; 86 $content["newsletter"]["reffering_key"] = ""; 87 $check_sql = "SELECT * FROM ".DB_PREPEND."phpwcms_address WHERE address_email='". 88 aporeplace($content["newsletter"]["email_address"])."' LIMIT 1"; 89 if($check_result = mysql_query($check_sql, $db)) { 90 if($check_row = mysql_fetch_array($check_result, MYSQL_ASSOC)) { 91 $content["newsletter"]["reffering_key"] = $check_row["address_key"]; 92 $content["newsletter"]["reffering_id"] = $check_row["address_id"]; 93 } 94 mysql_free_result($check_result); 95 } 96 if($content["newsletter"]["reffering_key"]) { 97 //if email exists in newsletter address list update entry 98 $e_sql = "UPDATE ".DB_PREPEND."phpwcms_address SET ". 99 "address_name='".aporeplace($content["newsletter"]["email_name"])."', ". 100 "address_verified=0, ". 101 "address_subscription='".aporeplace(serialize($content["newsletter"]["email_subscription"]))."', ". 102 "address_url1='".aporeplace($content["newsletter"]["url1"])."', ". 103 "address_url2='".aporeplace($content["newsletter"]["url2"])."' ". 104 "WHERE address_id=".aporeplace($content["newsletter"]["reffering_id"]).";"; 105 $content["newsletter"]["updated"] = 1; 106 } else { 107 $content["newsletter"]["reffering_key"] = preg_replace('/[^a-z0-9]/i', '', shortHash($content["newsletter"]["email_address"].time()) ); 108 //if email not exists in newsletter address list insert entry 109 $e_sql = "INSERT INTO ".DB_PREPEND."phpwcms_address (". 110 "address_email, address_name, address_key, address_subscription, address_url1, address_url2) VALUES ('". 111 aporeplace($content["newsletter"]["email_address"])."', '". 112 aporeplace($content["newsletter"]["email_name"])."', '". 113 aporeplace($content["newsletter"]["reffering_key"])."', '". 114 aporeplace(serialize($content["newsletter"]["email_subscription"]))."', '". 115 aporeplace($content["newsletter"]["url1"]). 116 "', '". 117 aporeplace($content["newsletter"]["url2"]). 118 "');"; 119 $content["newsletter"]["updated"] = 0; 120 } 121 mysql_query($e_sql, $db); 122 $content["newsletter"]["verify_link"] = PHPWCMS_URL."verify.php?s=".rawurlencode($content["newsletter"]["reffering_key"]); 123 $content["newsletter"]["delete_link"] = PHPWCMS_URL."verify.php?u=".rawurlencode($content["newsletter"]["reffering_key"]); 124 $content["newsletter"]["mailtext"] = ($content["newsletter"]["updated"]) ? $content["newsletter"]["change_text"] : $content["newsletter"]["reg_text"]; 125 $content["newsletter"]["mailtext"] = str_replace("{NEWSLETTER_NAME}", $content["newsletter"]["email_name"], $content["newsletter"]["mailtext"]); 126 $content["newsletter"]["mailtext"] = str_replace("{NEWSLETTER_EMAIL}", $content["newsletter"]["email_address"], $content["newsletter"]["mailtext"]); 127 $content["newsletter"]["mailtext"] = str_replace("{NEWSLETTER_VERIFY}", $content["newsletter"]["verify_link"], $content["newsletter"]["mailtext"]); 128 $content["newsletter"]["mailtext"] = str_replace("{NEWSLETTER_DELETE}", $content["newsletter"]["delete_link"], $content["newsletter"]["mailtext"]); 129 $content["newsletter"]["mailtext"] = replaceGlobalRT($content["newsletter"]["mailtext"]); 130 131 $content['newsletter']['subject'] = returnTagContent($content["newsletter"]["mailtext"], 'SUBJECT'); 132 if(empty($content['newsletter']['subject']['tag'])) { 133 if(isset($content['newsletter']['subject']['new'])) { 134 $content["newsletter"]["mailtext"] = $content['newsletter']['subject']['new']; 135 } 136 $content['newsletter']['subject'] = 'Newsletter verification for '.$phpwcms["site"]; 137 } else { 138 $content["newsletter"]["mailtext"] = $content['newsletter']['subject']['new']; 139 $content['newsletter']['subject'] = $content['newsletter']['subject']['tag']; 140 } 141 142 require_once ("include/inc_ext/phpmailer/class.phpmailer.php"); 143 144 // phpMailer Class 145 $mail = new PHPMailer(); 146 $mail->Mailer = $phpwcms['SMTP_MAILER']; 147 $mail->Host = $phpwcms['SMTP_HOST']; 148 $mail->Port = $phpwcms['SMTP_PORT']; 149 if($phpwcms['SMTP_AUTH']) { 150 $mail->SMTPAuth = 1; 151 $mail->Username = $phpwcms['SMTP_USER']; 152 $mail->Password = $phpwcms['SMTP_PASS']; 153 } 154 $mail->SMTPKeepAlive = false; 155 $mail->CharSet = $phpwcms["charset"]; 156 $mail->IsHTML(0); 157 $mail->Subject = $content['newsletter']['subject']; 158 $mail->Body = $content["newsletter"]["mailtext"]; 159 160 if(!$mail->SetLanguage($phpwcms['default_lang'])) { 161 $mail->SetLanguage('en'); 162 } 163 164 $mail->From = $phpwcms['SMTP_FROM_EMAIL']; 165 $mail->FromName = $phpwcms['SMTP_FROM_NAME']; 166 $mail->Sender = $phpwcms["admin_email"]; 167 168 $mail->ClearAddresses(); 169 $mail->AddAddress($content["newsletter"]["email_address"]); 170 171 if(!$mail->Send()) { 172 $template_default["article"]["newsletter_error"] = html_specialchars($mail->ErrorInfo); 173 $content["newsletter"]["success"] = 0; 174 $content["newsletter"]["email_address_error"] = 1; 175 } 176 177 $mail->SmtpClose(); 178 179 } else { 180 //Error 181 $content["newsletter"]["email_address_error"] = 1; 182 } 183 184 $content["newsletter"]["email_address"] = html_specialchars($content["newsletter"]["email_address"]); 185 $content["newsletter"]["email_name"] = html_specialchars($content["newsletter"]["email_name"]); 186 } 187 188 if($content["newsletter"]["success"]) { 189 $content["newsletter"]["success_text"] = str_replace("{NEWSLETTER_EMAIL}", "<strong>".$content["newsletter"]["email_address"]."</strong>", $content["newsletter"]["success_text"]); 190 $CNT_TMP .= div_class( ( 191 ($content["newsletter"]["success_text"]) ? nl2br($content["newsletter"]["success_text"]) : "Email: ".$content["newsletter"]["email_address"]. 192 " successfully registred. You will receive a verification email within seconds.") 193 , $template_default["article"]["text_class"]); 194 195 } else { 196 197 if(empty($content["newsletter"]["label_pos"])) { 198 199 $label_pos = false; 200 $label_pos_tr = LF; 201 $label_pos_colspan = ' colspan="2"'; 202 203 } else { 204 205 $label_pos = true; 206 $label_pos_tr = '</tr>'.LF.'<tr>'; 207 $label_pos_colspan = ''; 208 209 } 210 211 212 $CNT_TMP .= ($content["newsletter"]["text"]) ? "<br />".nl2br(div_class($content["newsletter"]["text"],$template_default["article"]["text_class"])) : ""; 213 $CNT_TMP .= '<form action="'.FE_CURRENT_URL.'" method="post" id="newsletterSubscribeForm">'.LF; 214 $CNT_TMP .= '<table border="0" cellpadding="0" cellspacing="0"'; 215 switch($content["newsletter"]["pos"]) { 216 case 1: $CNT_TMP .= ' align="left"'; break; 217 case 2: $CNT_TMP .= ' align="center"'; break; 218 case 3: $CNT_TMP .= ' align="right"'; break; 219 } 220 $CNT_TMP .= ' summary="">'.LF; 221 if($content["newsletter"]["email_address_error"]) { 222 $CNT_TMP .= "<tr>"; 223 if(!$label_pos) { 224 $CNT_TMP .= "\n<td> </td>"; 225 } 226 $CNT_TMP .= "<td class=\"formError\">".$template_default["article"]["newsletter_error"]."</td>\n</tr>\n"; 227 } 228 $CNT_TMP .= "<tr>\n<td class=\"formLabel\">"; 229 $CNT_TMP .= (($content["newsletter"]["label_email"]) ? $content["newsletter"]["label_email"] : "email:")." </td>"; 230 $CNT_TMP .= $label_pos_tr; 231 $CNT_TMP .= "<td><input name=\"newsletter_email\" type=\"text\" class=\"inputNewsletter\" size=\"30\" maxlength=\"250\" "; 232 $CNT_TMP .= "value=\"".$content["newsletter"]["email_address"]."\" /></td>\n</tr>\n"; 233 $CNT_TMP .= "<tr>\n<td class=\"formLabel\">"; 234 $CNT_TMP .= (($content["newsletter"]["label_name"]) ? $content["newsletter"]["label_name"] : "name:")." </td>"; 235 $CNT_TMP .= $label_pos_tr; 236 $CNT_TMP .= "<td><input name=\"newsletter_name\" type=\"text\" class=\"inputNewsletter\" size=\"30\" maxlength=\"250\" "; 237 $CNT_TMP .= "value=\"".$content["newsletter"]["email_name"]."\" /></td>\n</tr>\n"; 238 239 if(is_array($content["newsletter"]["subscription"]) && count($content["newsletter"]["subscription"])) { 240 241 $CNT_TMP .= '<tr><td'.$label_pos_colspan.'>'.spacer(1,3)."</td></tr>\n"; 242 243 // retrieve all active newsletters 244 $content["newsletter"]['temp'] = _dbQuery("SELECT * FROM ".DB_PREPEND."phpwcms_subscription WHERE subscription_active=1 ORDER BY subscription_name"); 245 foreach($content["newsletter"]['temp'] as $nlvalue) { 246 247 if(isset($content["newsletter"]["subscription"][ $nlvalue['subscription_id'] ])) { 248 $content["newsletter"]["subscription"][ $nlvalue['subscription_id'] ] = $nlvalue['subscription_name']; 249 } 250 251 } 252 // check for "all" subscriptions setting 253 if(isset($content["newsletter"]["subscription"][0])) { 254 $content["newsletter"]["subscription"][0] = empty($content["newsletter"]["all_subscriptions"]) ? 'all subscriptions' : $content["newsletter"]["all_subscriptions"]; 255 } 256 257 $content["newsletter"]['c'] = 0; 258 $content["newsletter"]['t'] = ''; 259 foreach($content["newsletter"]["subscription"] as $nlkey => $nlvalue) { 260 261 if(is_numeric($nlvalue)) continue; 262 263 $content["newsletter"]['t'] .= '<tr>'.LF.'<td><input name="email_subscription['.$nlkey.']" type="checkbox" value="'.$nlkey.'"'; 264 if(isset($content["newsletter"]["email_subscription"][$nlkey])) $content["newsletter"]['t'] .= ' checked="checked"'; 265 $content["newsletter"]['t'] .= ' id="email_subscription_'.$nlkey.'"/></td>'.LF; 266 $content["newsletter"]['t'] .= '<td><label for="email_subscription_'.$nlkey.'">'; 267 $content["newsletter"]['t'] .= html_specialchars($nlvalue); 268 $content["newsletter"]['t'] .= '</label></td>'.LF.'</tr>'.LF; 269 270 $content["newsletter"]['c']++; 271 272 } 273 274 if($content["newsletter"]['c']) { 275 276 $CNT_TMP .= "<tr>\n<td valign=\"top\" class=\"formLabel subscriptions\">"; 277 $CNT_TMP .= empty($content["newsletter"]["label_subscriptions"]) ? 'subscribe to:' : $content["newsletter"]["label_subscriptions"]; 278 $CNT_TMP .= ' </td>'.$label_pos_tr.'<td valign="top">'; 279 $CNT_TMP .= '<table border="0" cellpadding="0" cellspacing="0" class="subscriptions">'.LF; 280 $CNT_TMP .= $content["newsletter"]['t']; 281 $CNT_TMP .= "</table></td>\n</tr>\n"; 282 } 283 284 } 285 286 287 $CNT_TMP .= '<tr><td'.$label_pos_colspan.'>'.spacer(1,3)."</td></tr>\n<tr>"; 288 if(!$label_pos) { 289 $CNT_TMP .= "\n<td> </td>"; 290 } 291 $CNT_TMP .= "<td><input name=\"submit\" type=\"submit\" class=\"formButton\" value=\""; 292 $CNT_TMP .= (($content["newsletter"]["button_text"]) ? $content["newsletter"]["button_text"] : "send")."\" />"; 293 $CNT_TMP .= '<input name="newsletter_send" type="hidden" value="1" />'; 294 $CNT_TMP .= "</td>\n</tr>\n</table></form>"; 295 } 296 297 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Nov 16 22:51:00 2010 | Cross-referenced by PHPXref 0.7 |