[ Index ]

PHP Cross Reference of phpwcms V1.4.3 _r380 (23.11.09)

title

Body

[close]

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

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


Generated: Wed Dec 30 05:55:15 2009 Cross-referenced by PHPXref 0.7