[ Index ]

PHP Cross Reference of phpwcms V1.4.7 _r403 (01.11.10)

title

Body

[close]

/include/inc_front/content/ -> cnt12.article.inc.php (source)

   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>&nbsp;</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:")."&nbsp;</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:")."&nbsp;</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&nbsp;to:' : $content["newsletter"]["label_subscriptions"];
 278              $CNT_TMP .= '&nbsp;</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>&nbsp;</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  ?>


Generated: Tue Nov 16 22:51:00 2010 Cross-referenced by PHPXref 0.7