| [ Index ] |
|
Code source de e107 0.7.8 |
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(""", '"', $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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sun Apr 1 01:23:32 2007 | par Balluche grâce à PHPXref 0.7 |