diff --git a/e107_plugins/newsletter/admin_config.php b/e107_plugins/newsletter/admin_config.php index b880e3150..38569ae43 100644 --- a/e107_plugins/newsletter/admin_config.php +++ b/e107_plugins/newsletter/admin_config.php @@ -11,21 +11,25 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_plugins/newsletter/admin_config.php,v $ -| $Revision: 1.5 $ -| $Date: 2007-01-27 17:47:29 $ +| $Revision: 1.6 $ +| $Date: 2008-09-22 20:38:26 $ | $Author: e107steved $ +----------------------------------------------------------------------------+ */ require_once("../../class2.php"); -if (!getperms("P")) { +if (!getperms("P")) +{ header("location:".e_BASE."index.php"); - exit; + exit; } $e_sub_cat = 'newsletter'; require_once(e_ADMIN."auth.php"); -if (e_QUERY) { - list($action, $id) = explode(".", e_QUERY); +if (e_QUERY) +{ + list($action, $id, $key) = explode(".", e_QUERY); + $key = intval($key); + $id = intval($id); } else { @@ -42,13 +46,24 @@ if(!e_QUERY) } else { - $function = $action."Newsletter"; - $nl -> $function(); + if ($action == "vs") + { // View subscribers of a newsletter + $nl -> view_subscribers($id); + } + elseif ($action == "remove") + { // Remove subscriber + $nl -> remove_subscribers($id,$key); + } + else + { + $function = $action."Newsletter"; + $nl -> $function(); + } } + class newsletter { - var $message; @@ -100,7 +115,7 @@ class newsletter $text = "
- + @@ -113,7 +128,7 @@ class newsletter $text .= " - +
ID".NLLAN_55." ".NLLAN_06." ".NLLAN_07." ".NLLAN_08."
".$data['newsletter_id']." ".$data['newsletter_title']."".substr_count($data['newsletter_subscribers'], chr(1))."".((substr_count($data['newsletter_subscribers'], chr(1))!= 0)?"".substr_count($data['newsletter_subscribers'], chr(1))."":substr_count($data['newsletter_subscribers'], chr(1)))." ".ADMIN_EDIT_ICON." toJS(NLLAN_09." [ID: ".$data['newsletter_id']." ]")."') \"/> @@ -137,7 +152,6 @@ class newsletter } else { - $text = " @@ -153,7 +167,6 @@ class newsletter foreach($nlArray as $data) { - $text .= " @@ -172,16 +185,15 @@ class newsletter "; - } $ns -> tablerender(NLLAN_20, $text); - } + + function defineNewsletter($edit=FALSE) { - global $ns, $tp; if($edit) @@ -226,11 +238,10 @@ class newsletter $caption = ($edit ? NLLAN_25 : NLLAN_26); $ns -> tablerender($caption, $text); - - } + function createNewsletter() { global $sql, $tp; @@ -253,9 +264,9 @@ class newsletter } + function makeNewsletter($edit=FALSE) { - global $sql, $ns, $tp; if($edit) @@ -320,6 +331,7 @@ class newsletter } + function createIssue() { global $sql, $tp; @@ -339,9 +351,9 @@ class newsletter } + function releaseIssue($issue) { - global $pref, $sql, $ns, $tp, $THEMES_DIRECTORY; $issue = str_replace("nlmailnow_", "", $issue); @@ -384,7 +396,7 @@ class newsletter $mail->Subject = $newsletterParentInfo['newsletter_title'] . ": ".$newsletterInfo['newsletter_title']; $mail->IsHTML(true); - // ============================ Render Results and Mailit ========= + // ============================ Render Results and Mail it ========= $message_subject = stripslashes($tp -> toHTML($mail->Subject)); $message_body = stripslashes($tp -> toHTML($mail->Subject, TRUE)); @@ -459,6 +471,7 @@ class newsletter } + function deleteNewsletter() { global $sql; @@ -500,6 +513,95 @@ class newsletter show_admin_menu(NLLAN_47, $action, $var); } + + + + function view_subscribers($p_id) + { + global $ns; + + $nl_sql = new db; + if(!$nl_sql -> db_Select("newsletter", "*", "newsletter_id=".$p_id)) + { + // Check if newsletter id is available + $vs_text .= "

".NLLAN_56."

+
"; + $ns -> tablerender(NLLAN_58, $vs_text); + return; + } + else + { + $vs_text .= " +
".$data['newsletter_id']." ".$data['newsletter_issue']."
+ + + + + + "; + + $nl_sql -> db_Select("newsletter", "*", "newsletter_id='".$p_id."'"); + if($nl_row = $nl_sql-> db_Fetch()) + { +// $subscribers_total_count = substr_count($nl_row['newsletter_subscribers'], chr(1)); + $subscribers_list = explode(chr(1), trim($nl_row['newsletter_subscribers'])); + $subscribers_total_count = count($subscribers_list) - 1; // Get a null entry as well + } + if ($subscribers_total_count<1) + { + header("location:".e_SELF); + exit; + } + // Loop through each user in the array subscribers_list + foreach ($subscribers_list as $val) + { + $val=trim($val); + if ($val) + { + $nl_sql -> db_Select("user", "*", "user_id=".$val); + if($nl_row = $nl_sql-> db_Fetch()) + { + $vs_text .= " + + + + + "; + } + } + } + } + + $vs_text .= " + + + + +
".NLLAN_55."".NLLAN_59."".NLLAN_60."".NLLAN_61."
{$val} + ".$nl_row['user_name']." + ".$nl_row['user_email']." + ".ADMIN_DELETE_ICON." + ".(($nl_row['user_ban'] > 0) ? NLLAN_62 : "")." +
".NLLAN_63.": ".$subscribers_total_count."

+ "; + $ns -> tablerender(NLLAN_65.' '.$p_id, $vs_text); + } + + + function remove_subscribers($p_id, $p_key) + { + global $sql; + $sql -> db_Select("newsletter", "*", "newsletter_id=".$p_id); + if($nl_row = $sql-> db_Fetch()) + { + $subscribers_list = explode(chr(1), $nl_row['newsletter_subscribers']); + unset($subscribers_list[$p_key]); + $new_subscriber_list = implode(chr(1), $subscribers_list); + $sql -> db_Update("newsletter", "newsletter_subscribers='{$new_subscriber_list}' WHERE newsletter_id=".$p_id); + header("location:".e_SELF."?vs.{$p_id}"); + exit; + } + } } @@ -514,5 +616,4 @@ function admin_config_adminmenu() $nl->show_options($action); } - -?> +?> \ No newline at end of file diff --git a/e107_plugins/newsletter/languages/English.php b/e107_plugins/newsletter/languages/English.php index 825da5de1..dc34a6236 100644 --- a/e107_plugins/newsletter/languages/English.php +++ b/e107_plugins/newsletter/languages/English.php @@ -11,9 +11,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_plugins/newsletter/languages/English.php,v $ -| $Revision: 1.1.1.1 $ -| $Date: 2006-12-02 04:35:32 $ -| $Author: mcfly_e107 $ +| $Revision: 1.2 $ +| $Date: 2008-09-22 20:38:26 $ +| $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -80,7 +80,16 @@ define("NLLAN_53", "Are you sure you want to subscribe to this newsletter?"); define("NLLAN_54", "Sending"); +define("NLLAN_55", "ID"); +define("NLLAN_56", "Newsletter ID not available"); +define("NLLAN_57", "Return to previous page"); +define("NLLAN_58", "Error"); +define("NLLAN_59", "Name"); +define("NLLAN_60", "Email"); +define("NLLAN_61", "Actions"); +define("NLLAN_62", "User is banned! (or not fully signed up)"); +define("NLLAN_63", "Total subscribers"); +define("NLLAN_64", "Return to Newsletter frontpage"); +define("NLLAN_65", "Subscribers overview newsletter ID"); - - -?> +?> \ No newline at end of file