From 772264c6dfd7e292b3657922b6a1bd5fa100a568 Mon Sep 17 00:00:00 2001 From: Tijn Kuyper Date: Fri, 7 Dec 2012 17:09:46 +0100 Subject: [PATCH] GUI fixes to the newsletter plugin - work in progress --- e107_plugins/newsletter/admin_config.php | 234 ++++++++++++----------- 1 file changed, 121 insertions(+), 113 deletions(-) diff --git a/e107_plugins/newsletter/admin_config.php b/e107_plugins/newsletter/admin_config.php index 128e0331f..aafb35d6b 100644 --- a/e107_plugins/newsletter/admin_config.php +++ b/e107_plugins/newsletter/admin_config.php @@ -76,11 +76,13 @@ class newsletter public function __construct() { - $this->e107 = e107::getInstance(); + $tp = e107::getParser(); + $ns = e107::getRender(); + $this->e107 = e107::getInstance(); // TODO remove? foreach($_POST as $key => $value) { - $key = $this->e107->tp->toDB($key); + $key = $tp->toDB($key); if(strpos($key, 'nlmailnow') === 0) { $this->releaseIssue($key); @@ -105,27 +107,29 @@ class newsletter if($this -> message) { - $this->e107->ns->tablerender('', "
".$this -> message.'
'); + $ns->tablerender('', "
".$this -> message.'
'); } } function showExistingNewsletters() { + $sql = e107::getDb(); + $ns = e107::getRender(); - if(!$this->e107->sql->db_Select('newsletter', '*', "newsletter_parent='0' ORDER BY newsletter_id DESC")) + if(!$sql->db_Select('newsletter', '*', "newsletter_parent='0' ORDER BY newsletter_id DESC")) { $text = NLLAN_05; } else { $text = "
- +
- - - - + + "; @@ -133,10 +137,10 @@ class newsletter foreach($nlArray as $data) { $text .= " - - - - + + +
".NLLAN_55."".NLLAN_06."".NLLAN_07."".NLLAN_08."".NLLAN_06."".NLLAN_08."
".$data['newsletter_id']."".$data['newsletter_title']."".((substr_count($data['newsletter_subscribers'], chr(1))!= 0)?"".substr_count($data['newsletter_subscribers'], chr(1))."":substr_count($data['newsletter_subscribers'], chr(1)))." + ".$data['newsletter_id']."".$data['newsletter_title']."".substr_count($data['newsletter_subscribers'], chr(1))."":substr_count($data['newsletter_subscribers'], chr(1)))." ".ADMIN_EDIT_ICON." e107->tp->toJS(NLLAN_09." [ID: ".$data['newsletter_id']." ]")."') \"/> @@ -147,38 +151,37 @@ class newsletter $text .= "
- "; } $this->e107->ns->tablerender(NLLAN_10, $text); - if(!$this->e107->sql->db_Select('newsletter', '*', "newsletter_parent!='0' ORDER BY newsletter_id DESC")) + if(!$sql->db_Select('newsletter', '*', "newsletter_parent!='0' ORDER BY newsletter_id DESC")) { $text = NLLAN_11; } else { $text = "
- +
- - - - - + + + "; - $nlArray = $this->e107->sql->db_getList(); + $nlArray = $sql->db_getList(); foreach($nlArray as $data) { $text .= " - - - - - + + + +
ID".NLLAN_12."".NLLAN_13."".NLLAN_14."".NLLAN_15."".NLLAN_12."".NLLAN_13."".NLLAN_15."
".$data['newsletter_id']."".$data['newsletter_issue']."[ ".$data['newsletter_parent']." ] ".$data['newsletter_title']."".($data['newsletter_flag'] ? NLLAN_16 : "e107->tp->toJS(NLLAN_18)."') \" />")." + ".$data['newsletter_id']."".$data['newsletter_issue']."[ ".$data['newsletter_parent']." ] ".$data['newsletter_title']."".($data['newsletter_flag'] ? NLLAN_16 : "e107->tp->toJS(NLLAN_18)."') \" />")." ".ADMIN_EDIT_ICON." e107->tp->toJS(NLLAN_19." [ID: ".$data['newsletter_id']." ]")."') \"/> @@ -189,59 +192,57 @@ class newsletter $text .= "
- "; } - $this->e107->ns->tablerender(NLLAN_20, $text); + $ns->tablerender(NLLAN_20, $text); } function defineNewsletter($edit=FALSE) { + $tp = e107::getParser(); + $ns = e107::getRender(); + $frm = e107::getForm(); + // We've been passed a value from DB, so should be reasonably sanitised. if($edit) { - $newsletter_title = $this->e107->tp->toFORM($edit['newsletter_title']); - $newsletter_text = $this->e107->tp->toFORM($edit['newsletter_text']); - $newsletter_footer = $this->e107->tp->toFORM($edit['newsletter_footer']); - $newsletter_header = $this->e107->tp->toFORM($edit['newsletter_header']); + $newsletter_title = $tp->toFORM($edit['newsletter_title']); + $newsletter_text = $tp->toFORM($edit['newsletter_text']); + $newsletter_footer = $tp->toFORM($edit['newsletter_footer']); + $newsletter_header = $tp->toFORM($edit['newsletter_header']); } - $text .= "
+ $text .= "
- +
- - + + - - + + - - + + - - - - - - - + + +
".NLLAN_21."".NLLAN_21."
".NLLAN_22."".NLLAN_22."
".NLLAN_23."".NLLAN_23."
".NLLAN_24."
- ". - ($edit ? "\n" : "")." -
".NLLAN_24."
-
+
+ ".($edit ? $frm->admin_button('createNewsletter', NLLAN_25, 'submit')."\n" : $frm->admin_button('createNewsletter', NLLAN_26, 'submit'))."
+ "; $caption = ($edit ? NLLAN_25 : NLLAN_26); - $this->e107->ns->tablerender($caption, $text); + $ns->tablerender($caption, $text); } @@ -255,51 +256,56 @@ class newsletter */ function createNewsletter() { - $letter['newsletter_title'] = $this->e107->tp->toDB($_POST['newsletter_title']); - $letter['newsletter_text'] = $this->e107->tp->toDB($_POST['newsletter_text']); - $letter['newsletter_header'] = $this->e107->tp->toDB($_POST['newsletter_header']); - $letter['newsletter_footer'] = $this->e107->tp->toDB($_POST['newsletter_footer']); + $tp = e107::getParser(); + $sql = e107::getDb(); + + $letter['newsletter_title'] = $tp->toDB($_POST['newsletter_title']); + $letter['newsletter_text'] = $tp->toDB($_POST['newsletter_text']); + $letter['newsletter_header'] = $tp->toDB($_POST['newsletter_header']); + $letter['newsletter_footer'] = $tp->toDB($_POST['newsletter_footer']); if(isset($_POST['editid'])) { - $this->e107->sql -> db_Update('newsletter', "newsletter_title='{$letter['newsletter_title']}', newsletter_text='{$letter['newsletter_text']}', newsletter_header='{$letter['newsletter_header']}', newsletter_footer='{$letter['newsletter_footer']}' WHERE newsletter_id=".intval($_POST['editid'])); + $sql -> db_Update('newsletter', "newsletter_title='{$letter['newsletter_title']}', newsletter_text='{$letter['newsletter_text']}', newsletter_header='{$letter['newsletter_header']}', newsletter_footer='{$letter['newsletter_footer']}' WHERE newsletter_id=".intval($_POST['editid'])); $this -> message = NLLAN_27; } else { $letter['newsletter_datestamp'] = time(); - $this->e107->sql->db_Insert('newsletter', $letter); + $sql->db_Insert('newsletter', $letter); $this -> message = NLLAN_28; } } - function makeNewsletter($edit=FALSE) { + $tp = e107::getParser(); + $ns = e107::getRender(); + $sql = e107::getDb(); + // Passed data is from DB if($edit) { - $newsletter_title = $this->e107->tp->toFORM($edit['newsletter_title']); - $newsletter_text = $this->e107->tp->toFORM($edit['newsletter_text']); - $newsletter_issue = $this->e107->tp->toFORM($edit['newsletter_issue']); + $newsletter_title = $tp->toFORM($edit['newsletter_title']); + $newsletter_text = $tp->toFORM($edit['newsletter_text']); + $newsletter_issue = $tp->toFORM($edit['newsletter_issue']); } - if(!$this->e107->sql->db_Select('newsletter', '*', "newsletter_parent='0' ")) + if(!$sql->db_Select('newsletter', '*', "newsletter_parent='0' ")) { $this -> message = NLLAN_05; return; } - $nlArray = $this->e107->sql -> db_getList(); + $nlArray = $sql -> db_getList(); - $text .= "
+ $text .= "
- - +
- - + - - + + - - + + - - - - - + +
".NLLAN_30." + ".NLLAN_30."
".NLLAN_31."".NLLAN_31."
".NLLAN_32."".NLLAN_32."
".NLLAN_33." -
".display_help('helpa')." -
- ". - ($edit ? "\n" : "")." - ".NLLAN_33." +
".display_help('helpa')."
+
+ ".($edit ? $frm->admin_button('createIssue', NLLAN_34, 'update')."\n" : $frm->admin_button('createIssue', NLLAN_35, 'submit'))." +
"; $caption = ($edit ? NLLAN_36 : NLLAN_37); - $this->e107->ns->tablerender($caption, $text); + $ns->tablerender($caption, $text); } - - function createIssue() { $letter['newsletter_title'] = $this->e107->tp->toDB($_POST['newsletter_title']); @@ -375,23 +375,24 @@ class newsletter */ function releaseIssue($issue) { - global $pref; + $pref = e107::getPref(); + $sql = e107::getDb(); $issue = intval(str_replace('nlmailnow_', '', $issue)); // Get details of current newsletter issue - if(!$this->e107->sql->db_Select('newsletter', '*', 'newsletter_id='.$issue)) + if(!$sql->db_Select('newsletter', '*', 'newsletter_id='.$issue)) { return FALSE; } - $newsletterInfo = $this->e107->sql->db_Fetch(MYSQL_ASSOC); + $newsletterInfo = $sql->db_Fetch(MYSQL_ASSOC); // Get parent details - has header/footer and subscriber list - if(!$this->e107->sql -> db_Select('newsletter', '*', "newsletter_id='".$newsletterInfo['newsletter_parent']."' ")) + if(!$sql -> db_Select('newsletter', '*', "newsletter_id='".$newsletterInfo['newsletter_parent']."' ")) { return FALSE; } - $newsletterParentInfo = $this->e107->sql->db_Fetch(MYSQL_ASSOC); + $newsletterParentInfo = $sql->db_Fetch(MYSQL_ASSOC); $memberArray = explode(chr(1), $newsletterParentInfo['newsletter_subscribers']); require(e_HANDLER.'mail_manager_class.php'); @@ -413,8 +414,8 @@ class newsletter // Assemble body - we can leave a lot to to core mail sending routines $mail_style = "
"; - $mail_style .= "
{$mailout['mail_subject']}
[ ".NLLAN_12." ".$newsletterInfo['newsletter_issue']." ]


"; - $mail_style .= "
"; + $mail_style .= "
{$mailout['mail_subject']}
[ ".NLLAN_12." ".$newsletterInfo['newsletter_issue']." ]


"; + $mail_style .= "
"; $mailData['mail_body'] = $mail_style.$newsletterParentInfo['newsletter_header']."
".$newsletterInfo['newsletter_text']."


".$newsletterParentInfo['newsletter_footer']."
"; $result = $mailer->saveEmail($mailData, TRUE); @@ -436,9 +437,9 @@ class newsletter { if ($memberID = intval($memberID)) { - if($this->e107->sql->db_Select('user', 'user_name,user_email,user_loginname,user_lastvisit', 'user_id='.$memberID)) + if($sql->db_Select('user', 'user_name,user_email,user_loginname,user_lastvisit', 'user_id='.$memberID)) { - $row = $this->e107->sql->db_Fetch(MYSQL_ASSOC); + $row = $sql->db_Fetch(MYSQL_ASSOC); $uTarget = array('mail_recipient_id' => $memberID, 'mail_recipient_name' => $row['user_name'], // Should this use realname? 'mail_recipient_email' => $row['user_email'], @@ -466,7 +467,7 @@ class newsletter $mailer->activateEmail($mailMainID, FALSE); // Actually mark the email for sending $this->message = str_replace('--COUNT--', $counters['add'],NLLAN_40); } - $this->e107->sql->db_Update('newsletter', "newsletter_flag='1' WHERE newsletter_id=".$issue); + $sql->db_Update('newsletter', "newsletter_flag='1' WHERE newsletter_id=".$issue); } @@ -479,7 +480,9 @@ class newsletter */ function editNewsletter($id) { - if($this->e107->sql->db_Select("newsletter", "*", "newsletter_id='{$id}'")) + $sql = e107::getDb(); + + if($sql->db_Select("newsletter", "*", "newsletter_id='{$id}'")) { $foo = $this->e107->sql->db_Fetch(); if(!$foo['newsletter_parent']) @@ -501,17 +504,19 @@ class newsletter */ function deleteNewsletter() { + $sql = e107::getDb(); + $tmp = each($_POST['delete']); if(strpos($tmp['key'], 'newsletter') === 0) { $id = intval(str_replace('newsletter_', '', $tmp['key'])); - $this->e107->sql->db_Delete('newsletter', "newsletter_id='{$id}'"); + $sql->db_Delete('newsletter', "newsletter_id='{$id}'"); $this -> message = NLLAN_42; } else { $id = intval(str_replace('issue_', '', $tmp['key'])); - $this->e107->sql->db_Delete('newsletter', "newsletter_id='{$id}' "); + $sql->db_Delete('newsletter', "newsletter_id='{$id}' "); $this -> message = NLLAN_43; } } @@ -545,8 +550,10 @@ class newsletter function view_subscribers($p_id) { + $ns = e107::getRender(); $nl_sql = new db; $_nl_sanatized = ''; + if(!$nl_sql -> db_Select('newsletter', '*', 'newsletter_id='.$p_id)) { // Check if newsletter id is available $vs_text .= "

".NLLAN_56."

@@ -560,10 +567,10 @@ class newsletter
- - - - + + + - - - "; @@ -616,7 +623,7 @@ class newsletter $vs_text .= " - +
".NLLAN_55."".NLLAN_59."".NLLAN_60."".NLLAN_61."".NLLAN_59."".NLLAN_60."{$val} + {$val} ".$nl_row['user_name']." + ".$nl_row['user_name']." ".$nl_row['user_email']." + ".$nl_row['user_email']." ".ADMIN_DELETE_ICON." + ".ADMIN_DELETE_ICON." ".(($nl_row['user_ban'] > 0) ? NLLAN_62 : "")."
".NLLAN_63.": ".$subscribers_total_count."".NLLAN_63.": ".$subscribers_total_count."

@@ -625,20 +632,21 @@ class newsletter { $vs_text .= "
".NLLAN_66."
"; } - $this->e107->ns->tablerender(NLLAN_65.' '.$p_id, $vs_text); + $ns->tablerender(NLLAN_65.' '.$p_id, $vs_text); } function remove_subscribers($p_id, $p_key) { - $this->e107->sql -> db_Select('newsletter', '*', 'newsletter_id='.intval($p_id)); - if($nl_row = $this->e107->sql-> db_Fetch(MYSQL_ASSOC)) + $sql = e107::getDb(); + $sql -> db_Select('newsletter', '*', 'newsletter_id='.intval($p_id)); + if($nl_row = $sql-> db_Fetch(MYSQL_ASSOC)) { $subscribers_list = array_flip(explode(chr(1), $nl_row['newsletter_subscribers'])); unset($subscribers_list[$p_key]); $new_subscriber_list = implode(chr(1), array_keys($subscribers_list)); - $this->e107->sql->db_Update('newsletter', "newsletter_subscribers='{$new_subscriber_list}' WHERE newsletter_id='".$p_id."'"); + $sql->db_Update('newsletter', "newsletter_subscribers='{$new_subscriber_list}' WHERE newsletter_id='".$p_id."'"); } } }