[ Index ]
 

Code source de e107 0.7.8

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/e107_plugins/newsletter/ -> admin_config.php (source)

   1  <?php
   2  /*
   3  + ----------------------------------------------------------------------------+
   4  |     e107 website system
   5  |
   6  |     ©Steve Dunstan 2001-2002
   7  |     http://e107.org
   8  |     jalist@e107.org
   9  |
  10  |     Released under the terms and conditions of the
  11  |     GNU General Public License (http://gnu.org).
  12  |
  13  |     $Source: /cvsroot/e107/e107_0.7/e107_plugins/newsletter/admin_config.php,v $
  14  |     $Revision: 1.11 $
  15  |     $Date: 2007/01/27 17:47:06 $
  16  |     $Author: e107steved $
  17  +----------------------------------------------------------------------------+
  18  */
  19  require_once ("../../class2.php");
  20  if (!getperms("P")) {
  21      header("location:".e_BASE."index.php");
  22       exit;
  23  }
  24  $e_sub_cat = 'newsletter';
  25  require_once(e_ADMIN."auth.php");
  26  
  27  if (e_QUERY) {
  28      list($action, $id) = explode(".", e_QUERY);
  29  }
  30  else
  31  {
  32      $action = FALSE;
  33      $id = FALSE;
  34  }
  35  
  36  $nl = new newsletter;
  37  
  38  
  39  if(!e_QUERY)
  40  {
  41      $nl -> showExistingNewsletters();
  42  }
  43  else
  44  {
  45      $function = $action."Newsletter";
  46      $nl -> $function();
  47  }
  48  
  49  class newsletter
  50  {
  51  
  52      var $message;
  53  
  54  
  55  	function newsletter()
  56      {
  57          global $ns;
  58  
  59          foreach($_POST as $key => $value)
  60          {
  61              if(strstr($key, "nlmailnow"))
  62              {
  63                  $this -> releaseIssue($key);
  64                  break;
  65              }
  66          }
  67  
  68          if(isset($_POST['delete']))
  69          {
  70              $this -> deleteNewsletter();
  71          }
  72  
  73          if(isset($_POST['createNewsletter']))
  74          {
  75              $this -> createNewsletter();
  76          }
  77  
  78          if(isset($_POST['createIssue']))
  79          {
  80              $this -> createIssue();
  81          }
  82  
  83          if($this -> message)
  84          {
  85              $ns->tablerender("", "<div style='text-align:center'><b>".$this -> message."</b></div>");
  86          }
  87      }
  88  
  89  
  90  	function showExistingNewsletters()
  91      {
  92          global $sql, $ns, $tp;
  93  
  94          if(!$sql -> db_Select("newsletter", "*", "newsletter_parent='0'  ORDER BY newsletter_id DESC"))
  95          {
  96              $text = NLLAN_05;
  97          }
  98          else
  99          {
 100              $text = "<form action='".e_SELF."' id='newsletterform' method='post'>
 101              <table style='".ADMIN_WIDTH."' class='fborder'>
 102              <tr>
 103              <td style='width:5%; text-align: center;' class='forumheader'>ID</td>
 104              <td style='width:65%' class='forumheader'>".NLLAN_06."</td>
 105              <td style='width:20%; text-align: center;' class='forumheader'>".NLLAN_07."</td>
 106              <td style='width:10%; text-align: center;' class='forumheader'>".NLLAN_08."</td>
 107              </tr>
 108              ";
 109  
 110              $nlArray = $sql -> db_getList();
 111              foreach($nlArray as $data)
 112              {
 113                  $text .= "<tr>
 114                  <td style='width:5%; text-align: center;' class='forumheader3'>".$data['newsletter_id']."</td>
 115                  <td style='width:65%' class='forumheader3'>".$data['newsletter_title']."</td>
 116                  <td style='width:20%; text-align: center;' class='forumheader'>".substr_count($data['newsletter_subscribers'], chr(1))."</td>
 117                  <td style='width:10%; text-align: center;' class='forumheader3'>
 118                  <a href='".e_SELF."?edit.".$data['newsletter_id']."'>".ADMIN_EDIT_ICON."</a>
 119                  <input type='image' title='".LAN_DELETE."' name='delete[newsletter_".$data['newsletter_id']."]' src='".ADMIN_DELETE_ICON_PATH."' onclick=\"return jsconfirm('".$tp->toJS(NLLAN_09." [ID: ".$data['newsletter_id']." ]")."') \"/>
 120                  
 121                  </td>
 122                  </tr>
 123                  ";
 124              }
 125  
 126              $text .= "</table>
 127              </form>
 128              </div>
 129              ";
 130          }
 131          $ns -> tablerender(NLLAN_10, $text);
 132  
 133  
 134          if(!$sql -> db_Select("newsletter", "*", "newsletter_parent!='0' ORDER BY newsletter_id DESC"))
 135          {
 136              $text = NLLAN_11;
 137          }
 138          else
 139          {
 140  
 141              $text = "<form action='".e_SELF."' id='newsletterform2' method='post'>
 142              <table style='".ADMIN_WIDTH."' class='fborder'>
 143              <tr>
 144              <td style='width:5%; text-align: center;' class='forumheader'>ID</td>
 145              <td style='width:10%; text-align: center;' class='forumheader'>".NLLAN_12."</td>
 146              <td style='width:65%' class='forumheader'>".NLLAN_13."</td>
 147              <td style='width:10%; text-align: center;' class='forumheader'>".NLLAN_14."</td>
 148              <td style='width:10%; text-align: center;' class='forumheader'>".NLLAN_15."</td>
 149              </tr>
 150              ";
 151  
 152              $nlArray = $sql -> db_getList();
 153  
 154              foreach($nlArray as $data)
 155              {
 156  
 157                  $text .= "<tr>
 158                  <td style='width:5%; text-align: center;' class='forumheader3'>".$data['newsletter_id']."</td>
 159                  <td style='width:10%; text-align: center;' class='forumheader3'>".$data['newsletter_issue']."</td>
 160                  <td style='width:65%' class='forumheader3'>[ ".$data['newsletter_parent']." ] ".$data['newsletter_title']."</td>
 161                  <td style='width:10%; text-align: center;' class='forumheader3'>".($data['newsletter_flag'] ? NLLAN_16 : "<input class='button' type='submit' name='nlmailnow_".$data['newsletter_id']."' value='".NLLAN_17."' onclick=\"return jsconfirm('".$tp->toJS(NLLAN_18)."') \" />")."</td>
 162                  <td style='width:10%; text-align: center;' class='forumheader3'>
 163                  <a href='".e_SELF."?edit.".$data['newsletter_id']."'>".ADMIN_EDIT_ICON."</a>
 164                  <input type='image' title='".LAN_DELETE."' name='delete[issue_".$data['newsletter_id']."]' src='".ADMIN_DELETE_ICON_PATH."' onclick=\"return jsconfirm('".$tp->toJS(NLLAN_19." [ID: ".$data['newsletter_id']." ]")."') \"/>
 165                  
 166                  </td>
 167                  </tr>
 168                  ";
 169              }
 170  
 171              $text .= "</table>
 172              </form>
 173              </div>
 174              ";
 175  
 176          }
 177          $ns -> tablerender(NLLAN_20, $text);
 178  
 179      }
 180  
 181  
 182  	function defineNewsletter($edit=FALSE)
 183      {
 184  
 185          global $ns, $tp;
 186  
 187          if($edit)
 188          {
 189              extract($edit);
 190              $newsletter_title = $tp -> toFORM($newsletter_title);
 191              $newsletter_text = $tp -> toFORM($newsletter_text);
 192              $newsletter_footer = $tp -> toFORM($newsletter_footer);
 193          }
 194  
 195          $text .= "<div style='text-align:center; margin-left:auto; margin-right: auto;'>
 196          <form action='".e_SELF."' id='newsletterform' method='post'>
 197          <table style='".ADMIN_WIDTH."' class='fborder'>
 198          <tr>
 199          <td style='width:30%;' class='forumheader3'>".NLLAN_21."</td>
 200          <td style='width:70%' class='forumheader3'><input class='tbox' type='text' name='newsletter_title' size='60' value='$newsletter_title' maxlength='200' /></td>
 201          </tr>
 202          <tr>
 203          <td style='width:30%;' class='forumheader3'>".NLLAN_22."</td>
 204          <td style='width:70%' class='forumheader3'><textarea class='tbox' id='data' name='newsletter_text' cols='80' rows='10' style='width:95%'>$newsletter_text</textarea></td>
 205          </tr>
 206          <tr>
 207          <td style='width:30%;' class='forumheader3'>".NLLAN_23."</td>
 208          <td style='width:70%' class='forumheader3'><textarea class='tbox' id='data' name='newsletter_header' cols='80' rows='5' style='width:95%'>$newsletter_header</textarea></td>
 209          </tr>
 210          <tr>
 211          <td style='width:30%;' class='forumheader3'>".NLLAN_24."</td>
 212          <td style='width:70%' class='forumheader3'><textarea class='tbox' id='data' name='newsletter_footer' cols='80' rows='5' style='width:95%'>$newsletter_footer</textarea></td>
 213          </tr>
 214          <tr>
 215          <td colspan='2' style='text-align:center' class='forumheader'>
 216          ".
 217          ($edit ? "<input class='button' type='submit' name='createNewsletter' value='".NLLAN_25."' />\n<input type='hidden' name='editid' value='$newsletter_id' />" : "<input class='button' type='submit' name='createNewsletter' value='".NLLAN_26."' />")."
 218          </td>
 219          </tr>
 220  
 221          </table>
 222          </form>
 223          </div>
 224          ";
 225  
 226          $caption = ($edit ? NLLAN_25 : NLLAN_26);
 227  
 228          $ns -> tablerender($caption, $text);
 229  
 230  
 231      }
 232  
 233  
 234  	function createNewsletter()
 235      {
 236          global $sql, $tp;
 237  
 238          $newsletter_title = $tp -> toDB($_POST['newsletter_title']);
 239          $newsletter_text = $tp -> toDB($_POST['newsletter_text']);
 240          $newsletter_header = $tp -> toDB($_POST['newsletter_header']);
 241          $newsletter_footer = $tp -> toDB($_POST['newsletter_footer']);
 242  
 243          if(isset($_POST['editid']))
 244          {
 245              $sql -> db_Update("newsletter", "newsletter_title='$newsletter_title', newsletter_text='$newsletter_text', newsletter_header='$newsletter_header', newsletter_footer='$newsletter_footer' WHERE newsletter_id='".$_POST['editid']."' ");
 246              $this -> message = NLLAN_27;
 247          }
 248          else
 249          {
 250              $sql -> db_Insert("newsletter", "0, '".time()."', '$newsletter_title', '$newsletter_text', '$newsletter_header', '$newsletter_footer', '', '0', '0', '0' ");
 251              $this -> message = NLLAN_28;
 252          }
 253      }
 254  
 255  
 256  	function makeNewsletter($edit=FALSE)
 257      {
 258  
 259          global $sql, $ns, $tp;
 260  
 261          if($edit)
 262          {
 263              extract($edit);
 264              $newsletter_title = $tp -> toFORM($newsletter_title);
 265              $newsletter_text = $tp -> toFORM($newsletter_text);
 266          }
 267  
 268          if(!$sql -> db_Select("newsletter", "*", "newsletter_parent='0' "))
 269          {
 270              $this -> message = NLLAN_29;
 271              return;
 272          }
 273  
 274          $nlArray = $sql -> db_getList();
 275  
 276          $text .= "<div style='text-align:center; margin-left:auto; margin-right: auto;'>
 277          <form action='".e_SELF."' id='newsletterform' method='post'>
 278          <table style='".ADMIN_WIDTH."' class='fborder'>
 279  
 280          <tr>
 281          <td style='width:30%;' class='forumheader3'>".NLLAN_30."</td>
 282          <td style='width:70%' class='forumheader3'>
 283  
 284          <select name='newsletter_parent' class='tbox'>
 285          ";
 286  
 287          foreach($nlArray as $nl)
 288          {
 289              $text .= "<option value='".$nl['newsletter_id']."'>".$nl['newsletter_title']."</option>\n";
 290          }
 291  
 292          $text .= "</select>
 293  
 294          <tr>
 295          <td style='width:30%;' class='forumheader3'>".NLLAN_31."</td>
 296          <td style='width:70%' class='forumheader3'><input class='tbox' type='text' name='newsletter_title' size='60' value='$newsletter_title' maxlength='200' /></td>
 297          </tr>
 298          <tr>
 299          <td style='width:30%;' class='forumheader3'>".NLLAN_32."</td>
 300          <td style='width:70%' class='forumheader3'><input class='tbox' type='text' name='newsletter_issue' size='10' value='$newsletter_issue' maxlength='200' /></td>
 301          </tr>
 302          <tr>
 303          <td style='width:30%;' class='forumheader3'>".NLLAN_33."</td>
 304          <td style='width:70%' class='forumheader3'><textarea class='tbox' id='data' name='newsletter_text' cols='80' rows='10' style='width:95%'>$newsletter_text</textarea></td>
 305          </tr>
 306          <tr>
 307          <td colspan='2' style='text-align:center' class='forumheader'>
 308          ".
 309          ($edit ? "<input class='button' type='submit' name='createIssue' value='".NLLAN_34."' />\n<input type='hidden' name='editid' value='$newsletter_id' />" : "<input class='button' type='submit' name='createIssue' value='".NLLAN_35."' />")."
 310          </td>
 311          </tr>
 312          </table>
 313          </form>
 314          </div>
 315          ";
 316  
 317          $caption = ($edit ? NLLAN_36 : NLLAN_37);
 318  
 319          $ns -> tablerender($caption, $text);
 320      }
 321  
 322  
 323  	function createIssue()
 324      {
 325          global $sql, $tp;
 326          $newsletter_title = $tp -> toDB($_POST['newsletter_title']);
 327          $newsletter_text = $tp -> toDB($_POST['newsletter_text']);
 328  
 329          if(isset($_POST['editid']))
 330          {
 331              $sql -> db_Update("newsletter", "newsletter_title='$newsletter_title', newsletter_text='$newsletter_text', newsletter_parent='".$_POST['newsletter_parent']."', newsletter_issue='".$_POST['newsletter_issue']."' WHERE newsletter_id='".$_POST['editid']."' ");
 332              $this -> message = NLLAN_38;
 333          }
 334          else
 335          {
 336              $sql -> db_Insert("newsletter", "0, '".time()."', '$newsletter_title', '$newsletter_text', '', '', '', '".$_POST['newsletter_parent']."', '0', '".$_POST['newsletter_issue']."' ");
 337              $this -> message = NLLAN_39;
 338          }
 339      }
 340  
 341  
 342  	function releaseIssue($issue)
 343      {
 344  
 345          global $pref, $sql, $ns, $tp, $THEMES_DIRECTORY;
 346  
 347          $issue = str_replace("nlmailnow_", "", $issue);
 348  
 349          if(!$sql -> db_Select("newsletter", "*", "newsletter_id='$issue' "))
 350          {
 351              return FALSE;
 352          }
 353          $newsletterInfo = $sql -> db_Fetch();
 354  
 355          if(!$sql -> db_Select("newsletter", "*", "newsletter_id='".$newsletterInfo['newsletter_parent']."' "))
 356          {
 357              return FALSE;
 358          }
 359          $newsletterParentInfo = $sql -> db_Fetch();
 360          $memberArray = explode(chr(1), $newsletterParentInfo['newsletter_subscribers']);
 361  
 362          require(e_HANDLER."phpmailer/class.phpmailer.php");
 363  
 364          $mail = new PHPMailer();
 365  
 366          $mail->From = $pref['siteadminemail'];
 367          $mail->FromName = $pref['siteadmin'];
 368          if ($pref['mailer'] == "smtp")
 369          {
 370              $mail->Mailer = "smtp";
 371              $mail->SMTPKeepAlive = (isset($pref['smtp_keepalive']) && $pref['smtp_keepalive']==1) ? TRUE : FALSE;
 372              $mail->SMTPAuth = TRUE;
 373              $mail->Username = $pref['smtp_username'];
 374              $mail->Password = $pref['smtp_password'];
 375              $mail->Host = $pref['smtp_server'];
 376          }
 377          else
 378          {
 379              $mail->Mailer = "mail";
 380          }
 381  
 382          $mail->WordWrap = 50;
 383          $mail->CharSet = CHARSET;
 384          $mail->Subject = $newsletterParentInfo['newsletter_title'] . ": ".$newsletterInfo['newsletter_title'];
 385          $mail->IsHTML(true);
 386  
 387          // ============================  Render Results and Mailit =========
 388  
 389          $message_subject = stripslashes($tp -> toHTML($mail->Subject));
 390          $message_body = stripslashes($tp -> toHTML($mail->Subject, TRUE));
 391          $message_body = str_replace("&quot;", '"', $tp -> toHTML($newsletterInfo['newsletter_text'], TRUE));
 392          $message_body = str_replace('src="', 'src="'.SITEURL, $message_body);
 393  
 394          $newsletter_header = $tp -> toHTML($newsletterParentInfo['newsletter_header'], TRUE);
 395          $newsletter_footer = $tp -> toHTML($newsletterParentInfo['newsletter_footer'], TRUE);
 396  
 397  
 398          $theme = $THEMES_DIRECTORY.$pref['sitetheme']."/";
 399          $mail_style = "<link rel=\"stylesheet\" href=\"".SITEURL.$theme."style.css\" type=\"text/css\" />";
 400          $mail_style .= "<div style='width:100%'>";
 401          $mail_style .= "<div style='width:90%; padding-top:10px'>";
 402          $mail_style .= "<div class='fcaption'><b>$message_subject<br />[ ".NLLAN_12." ".$newsletterInfo['newsletter_issue']." ]</b></div><br /><br />";
 403          $mail_style .= "<div class='forumheader3'>";
 404          $message_body = $mail_style.$newsletter_header."<hr />".$message_body."<br /><br /><hr />".$newsletter_footer."<br /></div></div>";
 405  
 406          $message_body = str_replace("\n", "<br />", $message_body);
 407  
 408          $mail->Body = $tp->toHTML($message_body, TRUE,'no_replace, emotes_off');
 409          $mail->AltBody = strip_tags(str_replace("<br />", "\n", $message_body));
 410  
 411          $sent_counter = 0;
 412  
 413          foreach($memberArray as $memberID)
 414          {
 415              if($memberID)
 416              {
 417                  if($sql -> db_Select("user", "user_name, user_email", "user_id='$memberID' "))
 418                  {
 419                      $row = $sql -> db_Fetch();
 420                      $mname = $row['user_name'];
 421                      $memail = $row['user_email'];
 422                  }
 423  
 424                  $mail->AddAddress($memail, $mname);
 425  
 426                  echo "<b>".NLLAN_54."</b> ".$mname." ( ".$memail." ) <br />";
 427  
 428                  $mail->Send();
 429                  $sent_counter ++;
 430  
 431                  $mail->ClearAddresses();
 432                  if ($pref['mailer'] == "smtp") {
 433                      $mail->SmtpClose();
 434                  }
 435              }
 436          }
 437          $sql -> db_Update("newsletter", "newsletter_flag='1' WHERE newsletter_id='$issue' ");
 438          $this -> message = NLLAN_40.$sent_counter.NLLAN_41;
 439      }
 440  
 441  
 442  
 443  	function editNewsletter()
 444      {
 445          global $id, $sql;
 446  
 447          if($sql -> db_Select("newsletter", "*", "newsletter_id='$id' "))
 448          {
 449              $foo = $sql -> db_Fetch();
 450              if(!$foo['newsletter_parent'])
 451              {
 452                  $this -> defineNewsletter($foo);
 453              }
 454              else
 455              {
 456                  $this -> makeNewsletter($foo);
 457              }
 458          }
 459      }
 460  
 461  
 462  	function deleteNewsletter()
 463      {
 464          global $sql;
 465          $tmp = each($_POST['delete']);
 466          if(strstr($tmp['key'], "newsletter"))
 467          {
 468              $id = str_replace("newsletter_", "", $tmp['key']);
 469              $sql -> db_Delete("newsletter", "newsletter_id='$id' ");
 470              $this -> message = NLLAN_42;
 471          }
 472          else
 473          {
 474              $id = str_replace("issue_", "", $tmp['key']);
 475              $sql -> db_Delete("newsletter", "newsletter_id='$id' ");
 476              $this -> message = NLLAN_43;
 477          }
 478      }
 479  
 480  
 481  
 482  	function show_options($action)
 483      {
 484          global $sql;
 485          if ($action == "")
 486          {
 487              $action = "main";
 488          }
 489          // ##### Display options ---------------------------------------------------------------------------------------------------------
 490  
 491          $var['main']['text'] = NLLAN_44;
 492          $var['main']['link'] = e_SELF;
 493  
 494          $var['define']['text'] = NLLAN_45;
 495          $var['define']['link'] = e_SELF."?define";
 496  
 497          $var['make']['text'] = NLLAN_46;
 498          $var['make']['link'] = e_SELF."?make";
 499      
 500          show_admin_menu(NLLAN_47, $action, $var);
 501      }
 502  
 503  }
 504  
 505  
 506  
 507  require_once(e_ADMIN."footer.php");
 508  
 509  
 510  function admin_config_adminmenu()
 511  {
 512      global $nl;
 513      global $action;
 514      $nl->show_options($action);
 515  }
 516  
 517  
 518  ?>


Généré le : Sun Apr 1 01:23:32 2007 par Balluche grâce à PHPXref 0.7