From dc74e96e97c7233581812359b20ef0f036e29459 Mon Sep 17 00:00:00 2001 From: secretr Date: Mon, 22 Dec 2008 16:50:07 +0000 Subject: [PATCH] Banner management/menu config ready; Banlist administration - work in progress --- e107_admin/banlist.php | 1424 ++++++++++--------- e107_admin/banner.php | 901 +++++++----- e107_admin/eurl.php | 6 +- e107_files/jslib/core/admin.js | 11 +- e107_languages/English/admin/lan_admin.php | 4 +- e107_languages/English/admin/lan_banner.php | 49 +- e107_plugins/banner_menu/config.php | 112 +- e107_themes/_blank/admin_style.css | 1 - 8 files changed, 1425 insertions(+), 1083 deletions(-) diff --git a/e107_admin/banlist.php b/e107_admin/banlist.php index 1cc7f4dbc..921e3b40e 100644 --- a/e107_admin/banlist.php +++ b/e107_admin/banlist.php @@ -1,51 +1,60 @@ toDB(varset($_POST['ban_text'][$i],'')); - $pref['ban_durations'][$i] = intval(varset($_POST['ban_time'][$i],0)); - } - save_prefs(); - banlist_adminlog('08',""); - $ns->tablerender(BANLAN_9, "
".BANLAN_33.'
'); + for($i = 0; $i < BAN_REASON_COUNT; $i ++) + { + $pref['ban_messages'][$i] = $tp->toDB(varset($_POST['ban_text'][$i], '')); + $pref['ban_durations'][$i] = intval(varset($_POST['ban_time'][$i], 0)); + } + save_prefs(); + banlist_adminlog('08', ""); + $ns->tablerender(BANLAN_9, "
" . BANLAN_33 . '
'); } - - -if (isset($_POST['ban_ip'])) +if(isset($_POST['ban_ip'])) { - $_POST['ban_ip'] = trim($_POST['ban_ip']); - $new_ban_ip = preg_replace("/[^\w@\.\*]*/",'',urldecode($_POST['ban_ip'])); - if ($new_ban_ip != $_POST['ban_ip']) - { - $message = BANLAN_27.$new_ban_ip; - $ns->tablerender(BANLAN_9, $message); - $_POST['ban_ip'] = $new_ban_ip; - } + $_POST['ban_ip'] = trim($_POST['ban_ip']); + $new_ban_ip = preg_replace("/[^\w@\.\*]*/", '', urldecode($_POST['ban_ip'])); + if($new_ban_ip != $_POST['ban_ip']) + { + $message = BANLAN_27 . $new_ban_ip; + $ns->tablerender(BANLAN_9, $message); + $_POST['ban_ip'] = $new_ban_ip; + } - if (isset($_POST['entry_intent']) && (isset($_POST['add_ban']) || isset($_POST['update_ban'])) && $_POST['ban_ip'] != "" && strpos($_POST['ban_ip'], ' ') === false) - { -/* $_POST['entry_intent'] says why we're here: + if(isset($_POST['entry_intent']) && (isset($_POST['add_ban']) || isset($_POST['update_ban'])) && $_POST['ban_ip'] != "" && strpos($_POST['ban_ip'], ' ') === false) + { + /* $_POST['entry_intent'] says why we're here: 'edit' - Editing blacklist 'add' - Adding to blacklist 'whedit' - Editing whitelist 'whadd' - Adding to whitelist */ - if ($e107->whatIsThis($new_ban_ip) == 'ip') - { - $new_ban_ip = $e107->IPencode($new_ban_ip); // Normalise numeric IP addresses + if($e107->whatIsThis($new_ban_ip) == 'ip') + { + $new_ban_ip = $e107->IPencode($new_ban_ip); // Normalise numeric IP addresses + } + $new_vals = array('banlist_ip' => $new_ban_ip); + if(isset($_POST['add_ban'])) + { + $new_vals['banlist_datestamp'] = time(); + if($_POST['entry_intent'] == 'add') + $new_vals['banlist_bantype'] = BAN_TYPE_MANUAL; // Manual ban + if($_POST['entry_intent'] == 'whadd') + $new_vals['banlist_bantype'] = BAN_TYPE_WHITELIST; + } + $new_vals['banlist_admin'] = ADMINID; + if(varsettrue($_POST['ban_reason'])) + $new_vals['banlist_reason'] = $tp->toDB($_POST['ban_reason']); + $new_vals['banlist_notes'] = $tp->toDB($_POST['ban_notes']); + if(isset($_POST['ban_time']) && is_numeric($_POST['ban_time']) && ($_POST['entry_intent'] == 'edit' || $_POST['entry_intent'] == 'add')) + { + $bt = intval($_POST['ban_time']); + $new_vals['banlist_banexpires'] = $bt ? time() + ($bt * 60 * 60) : 0; + } + if(isset($_POST['add_ban'])) + { // Insert new value - can just pass an array + admin_update($sql->db_Insert("banlist", $new_vals), 'insert'); + if($_POST['entry_intent'] == 'add') + { + banlist_adminlog('01', $new_vals['banlist_ip']); + } + else + { + banlist_adminlog('04', $new_vals['banlist_ip']); + } + } + else + { // Update existing value + $qry = ''; + $spacer = ''; + foreach($new_vals as $k => $v) + { + $qry .= $spacer . "`{$k}`='$v'"; + $spacer = ', '; + } + admin_update($sql->db_Update("banlist", $qry . " WHERE banlist_ip='" . $_POST['old_ip'] . "'")); + if($_POST['entry_intent'] == 'edit') + { + banlist_adminlog("09", $new_vals['banlist_ip']); + } + else + { + banlist_adminlog("10", $new_vals['banlist_ip']); + } + } + unset($ban_ip); } - $new_vals = array('banlist_ip' => $new_ban_ip); - if (isset($_POST['add_ban'])) - { - $new_vals['banlist_datestamp'] = time(); - if ($_POST['entry_intent'] == 'add') $new_vals['banlist_bantype'] = BAN_TYPE_MANUAL; // Manual ban - if ($_POST['entry_intent'] == 'whadd') $new_vals['banlist_bantype'] = BAN_TYPE_WHITELIST; - } - $new_vals['banlist_admin'] = ADMINID; - if (varsettrue($_POST['ban_reason'])) $new_vals['banlist_reason'] =$tp->toDB($_POST['ban_reason']); - $new_vals['banlist_notes'] = $tp->toDB($_POST['ban_notes']); - if (isset($_POST['ban_time']) && is_numeric($_POST['ban_time']) && ($_POST['entry_intent']== 'edit' || $_POST['entry_intent'] == 'add')) - { - $bt = intval($_POST['ban_time']); - $new_vals['banlist_banexpires'] = $bt ? time() + ($bt*60*60) : 0; - } - if (isset($_POST['add_ban'])) - { // Insert new value - can just pass an array - admin_update($sql -> db_Insert("banlist",$new_vals), 'insert'); - if ($_POST['entry_intent'] == 'add') - { - banlist_adminlog('01',$new_vals['banlist_ip']); - } - else - { - banlist_adminlog('04',$new_vals['banlist_ip']); - } - } - else - { // Update existing value - $qry = ''; - $spacer = ''; - foreach ($new_vals as $k => $v) - { - $qry .= $spacer."`{$k}`='$v'"; - $spacer = ', '; - } - admin_update($sql -> db_Update("banlist", $qry." WHERE banlist_ip='".$_POST['old_ip']."'")); - if ($_POST['entry_intent'] == 'edit') - { - banlist_adminlog("09",$new_vals['banlist_ip']); - } - else - { - banlist_adminlog("10",$new_vals['banlist_ip']); - } - } - unset($ban_ip); - } } // Remove a ban -if (($action == "remove" || $action == "whremove") && isset($_POST['ban_secure'])) -//if ($action == "remove") +if(($action == "remove" || $action == "whremove") && isset($_POST['ban_secure'])) +//if ($action == "remove") { - $sql -> db_Delete("generic", "gen_type='failed_login' AND gen_ip='{$sub_action}'"); - admin_update($sql -> db_Delete("banlist", "banlist_ip='{$sub_action}'"), 'delete'); - if ($action == "remove") - { - $action = 'list'; - banlist_adminlog("02",$sub_action); - } - else - { - $action = 'white'; - banlist_adminlog("05",$sub_action); - } -} - - -// Update the ban expiry time/date - timed from now (only done on banlist) -if ($action == 'newtime') -{ - $end_time = $id ? time() + ($id*60*60) : 0; - admin_update($sql -> db_Update("banlist", "banlist_banexpires='".intval($end_time)."' WHERE banlist_ip='".$sub_action."'")); - banlist_adminlog("03",$sub_action); - $action = 'list'; -} - - -// Edit modes - get existing entry -if ($action == "edit" || $action == "whedit") -{ - $sql->db_Select("banlist", "*", "banlist_ip='{$sub_action}'"); - $row = $sql->db_Fetch(); - extract($row); -} -else -{ - unset($banlist_ip, $banlist_reason); - if (e_QUERY && ($action == 'add' || $action == 'whadd') && strpos($_SERVER["HTTP_REFERER"], "userinfo")) - { - $banlist_ip = $sub_action; - } -} - - -function ban_time_dropdown($click_js = '', $zero_text=BANLAN_21, $curval=-1,$drop_name='ban_time') -{ - $intervals = array(0,1,2,3,6,8,12,24,36,48,72,96,120,168,336,672); - $ret = "'; - return $ret; } +// Update the ban expiry time/date - timed from now (only done on banlist) +if($action == 'newtime') +{ + $end_time = $id ? time() + ($id * 60 * 60) : 0; + admin_update($sql->db_Update("banlist", "banlist_banexpires='" . intval($end_time) . "' WHERE banlist_ip='" . $sub_action . "'")); + banlist_adminlog("03", $sub_action); + $action = 'list'; +} + +// Edit modes - get existing entry +if($action == "edit" || $action == "whedit") +{ + $sql->db_Select("banlist", "*", "banlist_ip='{$sub_action}'"); + $row = $sql->db_Fetch(); + extract($row); +} +else +{ + unset($banlist_ip, $banlist_reason); + if(e_QUERY && ($action == 'add' || $action == 'whadd') && strpos($_SERVER["HTTP_REFERER"], "userinfo")) + { + $banlist_ip = $sub_action; + } +} + +function ban_time_dropdown($click_js = '', $zero_text = BANLAN_21, $curval = -1, $drop_name = 'ban_time') +{ + $intervals = array(0, 1, 2, 3, 6, 8, 12, 24, 36, 48, 72, 96, 120, 168, 336, 672); + $ret = "'; + return $ret; +} // Character options for import & export $separator_char = array(1 => ',', 2 => '|'); $quote_char = array(1 => '(none)', 2 => "'", 3 => '"'); - function select_box($name, $data, $curval = FALSE) { - $ret = "\n"; - return $ret; + $ret = "\n"; + return $ret; } $text = ""; // Drop-down box for access counts -function drop_box($box_name,$curval) +function drop_box($box_name, $curval) { - $opts = array(50,100,150,200,250,300,400,500); - $ret = "\n"; - return $ret; + $opts = array(50, 100, 150, 200, 250, 300, 400, 500); + $ret = "\n"; + return $ret; } - -switch ($action) +switch($action) { - case 'options' : - if(!getperms("0")) exit; - if (isset($_POST['update_ban_options'])) - { - $pref['enable_rdns'] = intval($_POST['ban_rdns_on_access']); - $pref['enable_rdns_on_ban'] = intval($_POST['ban_rdns_on_ban']); - $pref['ban_max_online_access'] = intval($_POST['ban_access_guest']).','.intval($_POST['ban_access_member']); - $pref['ban_retrigger'] = intval($_POST['ban_retrigger']); - save_prefs(); - } + case 'options': + if(! getperms("0")) + exit(); + if(isset($_POST['update_ban_options'])) + { + $pref['enable_rdns'] = intval($_POST['ban_rdns_on_access']); + $pref['enable_rdns_on_ban'] = intval($_POST['ban_rdns_on_ban']); + $pref['ban_max_online_access'] = intval($_POST['ban_access_guest']) . ',' . intval($_POST['ban_access_member']); + $pref['ban_retrigger'] = intval($_POST['ban_retrigger']); + save_prefs(); + } - if (isset($_POST['remove_expired_bans'])) - { - $sql->db_Delete('banlist',"`banlist_bantype` < ".BAN_TYPE_WHITELIST." AND `banlist_banexpires` > 0 AND `banlist_banexpires` < ".time()); - } + if(isset($_POST['remove_expired_bans'])) + { + $sql->db_Delete('banlist', "`banlist_bantype` < " . BAN_TYPE_WHITELIST . " AND `banlist_banexpires` > 0 AND `banlist_banexpires` < " . time()); + } - list($ban_access_guest,$ban_access_member) = explode(',',varset($pref['ban_max_online_access'],'100,200')); - $ban_access_member = max($ban_access_guest,$ban_access_member); - $text = "
-
- - - - - - + list($ban_access_guest, $ban_access_member) = explode(',', varset($pref['ban_max_online_access'], '100,200')); + $ban_access_member = max($ban_access_guest, $ban_access_member); + $text = " + +
+ " . BANLAN_72 . " +
+ + + + + + + + + + + + + + + + + + + + + + +
" . BANLAN_63 . " + +
" . BANLAN_65 . "
+
" . BANLAN_64 . " + +
" . BANLAN_66 . "
+
" . BANLAN_67 . " +
" . drop_box('ban_access_guest', $ban_access_guest) . BANLAN_70 . "
+
" . drop_box('ban_access_member', $ban_access_member) . BANLAN_69 . "
+
" . BANLAN_68 . "
+
" . BANLAN_71 . " + +
" . BANLAN_73 . "
+
+
+ " . $frm->admin_button('update_ban_options', LAN_UPDATE, 'update', LAN_UPDATE) . " +
+ +
+ " . BANLAN_74 . " + + + + + + + + + + + +
" . BANLAN_75 . " + " . $frm->admin_button('remove_expired_bans', BANLAN_76, 'delete', BANLAN_76) . " +
+
+
+ "; + $ns->tablerender(BANLAN_72, $text); + break; - - ".BANLAN_63." - - - - ".BANLAN_65." - + case 'times': + if(! getperms("0")) + exit(); + $text = ''; + if((! isset($pref['ban_messages'])) || ! is_array($pref['ban_messages'])) + { + $pref['ban_messages'] = array_fill(0, BAN_REASON_COUNT - 1, ''); + } + if((! isset($pref['ban_durations'])) || ! is_array($pref['ban_durations'])) + { + $pref['ban_durations'] = array_fill(0, BAN_REASON_COUNT - 1, 0); + } - - ".BANLAN_64." - - - - ".BANLAN_66." - - - - ".BANLAN_67." - ".drop_box('ban_access_guest',$ban_access_guest).BANLAN_70.'
'. - drop_box('ban_access_member',$ban_access_member).BANLAN_69." - - ".BANLAN_68." - - - - ".BANLAN_71." - - - - ".BANLAN_73." - + if(! $ban_total = $sql->db_Select("banlist", "*", "ORDER BY banlist_ip", "nowhere")) + { + $text .= "
" . BANLAN_2 . "
"; + } + else + { + //XXX Lan - Messages/Ban Periods + $text .= " +
+
+ Messages/Ban Periods + + + + + + + + + + + + + + + "; + for($i = 0; $i < BAN_REASON_COUNT; $i ++) + { + $text .= " + + + + + + "; + } + $text .= " + +
" . BANLAN_28 . "" . BANLAN_29 . "
" . BANLAN_31 . "
" . BANLAN_30 . "
+ " . constant('BANLAN_10' . $i) . " +
" . constant('BANLAN_11' . $i) . "
+
+ + " . ban_time_dropdown('', BANLAN_32, $pref['ban_durations'][$i], 'ban_time[]') . "
+
+ " . $frm->admin_button('update_ban_prefs', LAN_UPDATE, 'update', LAN_UPDATE) . " +
+
+
+ "; + } + //XXX Lan - Messages/Ban Periods + $ns->tablerender("Messages/Ban Periods", $text); + break; + case 'edit': + case 'add': + case 'whedit': + case 'whadd': + $page_title = array('edit' => BANLAN_60, 'add' => BANLAN_9, 'whedit' => BANLAN_59, 'whadd' => BANLAN_58); + $rdns_warn = varsettrue($pref['enable_rdns']) ? '' : '
' . BANLAN_12 . '
'; + $next = ($action == 'whedit' || $action == 'whadd') ? '?white' : '?list'; + // Edit/add form first + $text .= " +
+
+ " . $page_title[$action] . " + + + + + + + + + + "; - $text .= " - -
" . BANLAN_5 . ": + + {$rdns_warn} +
-
\n - -

"; - $ns->tablerender(BANLAN_72, $text); - - - $text = "
-
- - - - - - - - - - -
".BANLAN_75." -
\n -
-

"; - $ns->tablerender(BANLAN_74, $text); - break; - - case 'times' : - if(!getperms("0")) exit; - if ((!isset($pref['ban_messages'])) || !is_array($pref['ban_messages'])) - { - $pref['ban_messages'] = array_fill(0,BAN_REASON_COUNT-1,''); - } - if ((!isset($pref['ban_durations'])) || !is_array($pref['ban_durations'])) - { - $pref['ban_durations'] = array_fill(0,BAN_REASON_COUNT-1,0); - } - $text = $rs->form_open("post", e_SELF.'?'.e_QUERY, "ban_options")."
"; - if (!$ban_total = $sql->db_Select("banlist","*","ORDER BY banlist_ip","nowhere")) - { - $text .= "
".BANLAN_2."
"; - } - else - { - $text .= " - - - - - - - - - - "; - for ($i = 0; $i < BAN_REASON_COUNT; $i++) - { - $text .= " - - - - "; + if(($action == 'add') || ($action == 'whadd') || ($banlist_bantype <= 1) || ($banlist_bantype >= BAN_TYPE_WHITELIST)) + { // Its a manual or unknown entry - only allow edit of reason on those + $text .= " + + + + + "; } - $text .= " -
".BANLAN_28."".BANLAN_29."
".BANLAN_31."
".BANLAN_30."
".constant('BANLAN_10'.$i)." - - ".ban_time_dropdown('',BANLAN_32,$pref['ban_durations'][$i],'ban_time[]')."
" . BANLAN_7 . ": + +
\n"; - } - $text .= "
".$rs->form_close(); - $ns->tablerender(BANLAN_3, $text); - break; - - case 'edit' : - case 'add' : - case 'whedit' : - case 'whadd' : - $page_title = array('edit' => BANLAN_60, 'add' => BANLAN_9, 'whedit' => BANLAN_59, 'whadd' => BANLAN_58); - $rdns_warn = varsettrue($pref['enable_rdns']) ? '' : '
'.BANLAN_12; - $next = ($action == 'whedit' || $action == 'whadd') ? '?white' : '?list'; - // Edit/add form first - $text .= "
-
- - - - - "; - - if (($action == 'add') || ($action == 'whadd') || ($banlist_bantype <= 1) || ($banlist_bantype >= BAN_TYPE_WHITELIST)) - { // Its a manual or unknown entry - only allow edit of reason on those - $text .= " - - - - "; - } - elseif ($action == 'edit') - { - $text .= " - - - - "; - } - - if ($action == 'edit') - { - $text .= " - - - - "; - } - - $text .= " - - - - "; - - if ($action == 'edit' || $action == 'add') - { - $text .= " - - - "; - } - - $text .= " - - - -
".BANLAN_5.": - {$rdns_warn} -
".BANLAN_7.": - -
".BANLAN_7.": {$banlist_reason}
".BANLAN_28.": ".constant('BANLAN_10'.$banlist_bantype)." - ".constant('BANLAN_11'.$banlist_bantype)."
".BANLAN_19.": - -
".BANLAN_18.": ".ban_time_dropdown(). - (($action == 'edit') ? '   ('.BANLAN_26.($banlist_banexpires ? strftime(BAN_TIME_FORMAT,$banlist_banexpires) : BANLAN_21).')' : ''). - "
"; - if ($action == "edit" || $action == "whedit") - { - $text .= ""; - } - else - { - $text .= ""; - } - $text .= "
-
-
"; - - $text .= "

".BANLAN_13."
"; - if(!varsettrue($pref['enable_rdns'])) - { - $text .= "

".BANLAN_12."
"; - } - $ns->tablerender($page_title[$action], $text); - break; // End of 'Add' and 'Edit' - - - case 'transfer' : - $message = ''; - if (isset($_POST['ban_import'])) - { // Got a file to import - require_once(e_HANDLER.'upload_handler.php'); - if (($files = process_uploaded_files(e_FILE."public/",FALSE,array('overwrite'=>TRUE, 'max_file_count' => 1, 'file_mask'=> 'csv'))) === FALSE) - { // Invalid file - $message = BANLAN_47; - } - if (!$message && $files[0]['error']) $message = $files[0]['message']; - if (!$message) - { // Got a file of some sort - $message = process_csv(e_FILE."public/".$files[0]['name'], - intval(varset($_POST['ban_over_import'],0)), - intval(varset($_POST['ban_over_expiry'],0)), - $separator_char[intval(varset($_POST['ban_separator'],1))], - $quote_char[intval(varset($_POST['ban_quote'],3))]); - banlist_adminlog("07",'File: '.e_FILE."public/".$files[0]['name'].'
'.$message); - } - - } - if ($message) $ns->tablerender(BANLAN_48, "
{$message}
"); - - $text = "
-
- - - - - - "; - $text .= ""; - $text .= "
".BANLAN_36."".BANLAN_15."
\n"; - $spacer = ''; - for ($i = 0; $i < BAN_REASON_COUNT; $i++) - { - $text .= $spacer." ".constant('BANLAN_10'.$i)." - ".constant('BANLAN_11'.$i); - $spacer = "
\n"; - } - $text .= "
".select_box('ban_separator',$separator_char).' '.BANLAN_37; - $text .= "
".select_box('ban_quote',$quote_char).' '.BANLAN_38."
"; - $text .= " -


"; - $ns->tablerender(BANLAN_40, $text); - - // Now do the import options - $text = "
-
- - - - - - "; - $text .= " - - "; - $text .= "
".BANLAN_42."".BANLAN_15."
\n"; - $text .= " ".BANLAN_43.'
'; - $text .= " ".BANLAN_44; - - $text .= "
".select_box('ban_separator',$separator_char).' '.BANLAN_37; - $text .= "
".select_box('ban_quote',$quote_char).' '.BANLAN_38."
"; - $text .= " -


"; - $ns->tablerender(BANLAN_41, $text); - break; - - - case 'list' : - case 'white' : - default : - if (($action != 'list') && ($action != 'white')) $action = 'list'; - $edit_action = ($action == 'list' ? 'edit' : 'whedit'); - $del_action = ($action == 'list' ? 'remove' : 'whremove'); - $col_widths = array('list' => array(10,5,35,30,10,10), 'white' => array(15,40,35,10)); - $col_titles = array('list' => array(BANLAN_17,BANLAN_20,BANLAN_10,BANLAN_19,BANLAN_18,LAN_OPTIONS), - 'white' => array(BANLAN_55,BANLAN_56,BANLAN_19,LAN_OPTIONS)); - $no_values = array('list' => BANLAN_2, 'white' => BANLAN_54); - $col_defs = array('list' => array('banlist_datestamp'=>0,'banlist_bantype'=>0,'ip_reason'=>BANLAN_7,'banlist_notes'=>0,'banlist_banexpires'=>0,'ban_options'=>0), - 'white' => array('banlist_datestamp'=>0,'ip_reason'=>BANLAN_57,'banlist_notes'=>0,'ban_options'=>0)); - - $text = $rs->form_open("post", e_SELF.'?'.$action, "ban_form")."
".$rs->form_hidden("ban_secure", "1"); - $filter = ($action == 'white') ? 'banlist_bantype='.BAN_TYPE_WHITELIST : 'banlist_bantype!='.BAN_TYPE_WHITELIST ; - if (!$ban_total = $sql->db_Select("banlist","*",$filter." ORDER BY banlist_ip")) - { - $text .= "
".$no_values[$action]."
"; - } - else - { - $text .= ""; - foreach($col_widths[$action] as $fw) $text .= "\n"; - $text .= "\n"; - foreach ($col_titles[$action] as $ct) $text .= ""; - $text .= ""; - while ($row = $sql->db_Fetch()) + elseif($action == 'edit') { - extract($row); - $banlist_reason = str_replace("LAN_LOGIN_18", BANLAN_11, $banlist_reason); - $text .= ""; - foreach ($col_defs[$action] as $cd => $fv) - { - switch ($cd) - { - case 'banlist_datestamp' : - $val = ($banlist_datestamp ? strftime(BAN_TIME_FORMAT,$banlist_datestamp) : BANLAN_22 ); - break; - case 'banlist_bantype' : - $val = "".constant('BANLAN_10'.$banlist_bantype).""; - break; - case 'ip_reason' : - $val = $e107->ipDecode($banlist_ip)."
".$fv.": ".$banlist_reason; - break; - case 'banlist_banexpires' : - $val = ($banlist_banexpires ? strftime(BAN_TIME_FORMAT,$banlist_banexpires).(($banlist_banexpires < time()) ? ' ('.BANLAN_34.')' : '') - : BANLAN_21)."
".ban_time_dropdown("onchange=\"urljump('".e_SELF."?newtime-{$banlist_ip}-'+this.value)\""); - break; - case 'ban_options' : - $val = "".LAN_EDIT." - toJS(LAN_CONFIRMDEL." [".$e107->ipDecode($banlist_ip)."]")."'); - if (r) { document.getElementById('ban_form').action='".e_SELF."?{$del_action}-{$banlist_ip}'; } return r; \" />"; - break; - case 'banlist_notes' : - default : - $val = $row[$cd]; + $text .= " + + + + + "; + } + + if($action == 'edit') + { + $text .= " + + + + + "; + } + + $text .= " + + + + + "; + + if($action == 'edit' || $action == 'add') + { + $text .= " + + + + + "; + } + + $text .= " + +
{$ct}
" . BANLAN_7 . ": {$banlist_reason}
" . BANLAN_28 . ": " . constant('BANLAN_10' . $banlist_bantype) . " - " . constant('BANLAN_11' . $banlist_bantype) . "
" . BANLAN_19 . ": + +
" . BANLAN_18 . ": " . ban_time_dropdown() . (($action == 'edit') ? '   (' . BANLAN_26 . ($banlist_banexpires ? strftime(BAN_TIME_FORMAT, $banlist_banexpires) : BANLAN_21) . ')' : '') . "
+
+ "; + + if($action == "edit" || $action == "whedit") + { + $text .= " + + " . $frm->admin_button('update_ban', LAN_UPDATE, 'update', LAN_UPDATE) . " + "; + } + else + { + $text .= " + " . $frm->admin_button('add_ban', ($action == 'add' ? BANLAN_8 : BANLAN_53), 'submit', ($action == 'add' ? BANLAN_8 : BANLAN_53)) . " + "; + } + + $text .= " +
+ + + "; + + //FIXME - Put this notes somewhere + $text .= " +
+ " . BANLAN_13 . " +
+ "; + if(! varsettrue($pref['enable_rdns'])) + { + $text .= " +

" . BANLAN_12 . "
+ "; + } + $ns->tablerender($page_title[$action], $text); + break; // End of 'Add' and 'Edit' + + + case 'transfer': + $message = ''; + if(isset($_POST['ban_import'])) + { // Got a file to import + require_once (e_HANDLER . 'upload_handler.php'); + if(($files = process_uploaded_files(e_FILE . "public/", FALSE, array('overwrite' => TRUE, 'max_file_count' => 1, 'file_mask' => 'csv'))) === FALSE) + { // Invalid file + $message = BANLAN_47; } - $text .= "{$val}"; - } - $text .= ''; + if(! $message && $files[0]['error']) + $message = $files[0]['message']; + if(! $message) + { // Got a file of some sort + $message = process_csv(e_FILE . "public/" . $files[0]['name'], intval(varset($_POST['ban_over_import'], 0)), intval(varset($_POST['ban_over_expiry'], 0)), $separator_char[intval(varset($_POST['ban_separator'], 1))], $quote_char[intval(varset($_POST['ban_quote'], 3))]); + banlist_adminlog("07", 'File: ' . e_FILE . "public/" . $files[0]['name'] . '
' . $message); + } + } - $text .= "\n"; - } - $text .= "
".$rs->form_close(); - $ns->tablerender(($action == 'list' ? BANLAN_3 : BANLAN_61), $text); - // End of case 'list' and the default case -} // End switch ($action) + if($message) + $ns->tablerender(BANLAN_48, "
{$message}
"); + + $text = " +
+
+ " . BANLAN_40 . " + + + + + + + + + + + + + + + + + + +
" . BANLAN_36 . "" . BANLAN_15 . "
+ "; + + for($i = 0; $i < BAN_REASON_COUNT; $i ++) + { + $text .= " +
+  " . constant('BANLAN_10' . $i) . " - " . constant('BANLAN_11' . $i) . " +
+ "; + } + + $text .= " +
+
" . select_box('ban_separator', $separator_char) . ' ' . BANLAN_37 . "
+
" . select_box('ban_quote', $quote_char) . ' ' . BANLAN_38 . "
+
+ " . $frm->admin_button('ban_export', BANLAN_39, 'submit', BANLAN_39) . " +
+
+
+ "; + + // Now do the import options + $text .= " +
+
+ " . BANLAN_41 . " + + + + + + + + + + + + + + + + + + + +
" . BANLAN_42 . "" . BANLAN_15 . "
+  " . BANLAN_43 . "
+  " . BANLAN_44 . " +
+
" . select_box('ban_separator', $separator_char) . ' ' . BANLAN_37 . "
+
" . select_box('ban_quote', $quote_char) . ' ' . BANLAN_38 . "
+
+ + + " . $frm->admin_button('ban_import', BANLAN_45, 'submit', BANLAN_45) . " +
+
+
+ "; + + //XXX LAN - Import/Export + $ns->tablerender("Import/Export", $text); + break; + + case 'list': + case 'white': + default: + if(($action != 'list') && ($action != 'white')) + $action = 'list'; + + $edit_action = ($action == 'list' ? 'edit' : 'whedit'); + $del_action = ($action == 'list' ? 'remove' : 'whremove'); + $col_widths = array('list' => array(10, 5, 35, 30, 10, 10), 'white' => array(15, 40, 35, 10)); + $col_titles = array('list' => array(BANLAN_17, BANLAN_20, BANLAN_10, BANLAN_19, BANLAN_18, LAN_OPTIONS), 'white' => array(BANLAN_55, BANLAN_56, BANLAN_19, LAN_OPTIONS)); + $no_values = array('list' => BANLAN_2, 'white' => BANLAN_54); + $col_defs = array('list' => array('banlist_datestamp' => 0, 'banlist_bantype' => 0, 'ip_reason' => BANLAN_7, 'banlist_notes' => 0, 'banlist_banexpires' => 0, 'ban_options' => 0), 'white' => array('banlist_datestamp' => 0, 'ip_reason' => BANLAN_57, 'banlist_notes' => 0, 'ban_options' => 0)); + + $text = " +
+
+ " . ($action == 'list' ? BANLAN_3 : BANLAN_61) . " + " . $frm->hidden("ban_secure", "1") . " + "; + + $filter = ($action == 'white') ? 'banlist_bantype=' . BAN_TYPE_WHITELIST : 'banlist_bantype!=' . BAN_TYPE_WHITELIST; + + if(! $ban_total = $sql->db_Select("banlist", "*", $filter . " ORDER BY banlist_ip")) + { + $text .= "
" . $no_values[$action] . "
"; + } + else + { + $text .= " + + + "; + foreach($col_widths[$action] as $fw) + { + $text .= " + + "; + } + $text .= " + + + + "; + $cnt = 0; + foreach($col_titles[$action] as $ct) + { + $cnt ++; + $text .= " + {$ct} + "; + } + $text .= " + + + + "; + while($row = $sql->db_Fetch()) + { + extract($row); + $banlist_reason = str_replace("LAN_LOGIN_18", BANLAN_11, $banlist_reason); + $text .= " + + "; + foreach($col_defs[$action] as $cd => $fv) + { + $row_class = ''; + switch($cd) + { + case 'banlist_datestamp': + $val = ($banlist_datestamp ? strftime(BAN_TIME_FORMAT, $banlist_datestamp) : BANLAN_22); + break; + case 'banlist_bantype': + $val = "" . constant('BANLAN_10' . $banlist_bantype) . ""; + break; + case 'ip_reason': + $val = $e107->ipDecode($banlist_ip) . "
" . $fv . ": " . $banlist_reason; + break; + case 'banlist_banexpires': + $val = ($banlist_banexpires ? strftime(BAN_TIME_FORMAT, $banlist_banexpires) . (($banlist_banexpires < time()) ? ' (' . BANLAN_34 . ')' : '') : BANLAN_21) . "
" . ban_time_dropdown("onchange=\"urljump('" . e_SELF . "?newtime-{$banlist_ip}-'+this.value)\""); + break; + case 'ban_options': + $row_class = ' class="center"'; + $val = " + " . LAN_EDIT . " + toJS(LAN_CONFIRMDEL . " [" . $e107->ipDecode($banlist_ip) . "]") . "'); + if (r) { document.getElementById('ban_form').action='" . e_SELF . "?{$del_action}-{$banlist_ip}'; } return r; \" />"; + break; + case 'banlist_notes': + default: + $val = $row[$cd]; + } + + $text .= " + {$val} + "; + } + $text .= ' + + '; + } + $text .= " + +
+ "; + } + $text .= " +
+
+ "; + + $ns->tablerender(($action == 'list' ? BANLAN_3 : BANLAN_61), $text); + // End of case 'list' and the default case +} // End switch ($action) -require_once("footer.php"); +require_once ("footer.php"); - -function banlist_adminmenu() +function banlist_adminmenu() { $action = (e_QUERY) ? e_QUERY : "list"; - $var['list']['text'] = BANLAN_14; // List existing bans - $var['list']['link'] = e_SELF."?list"; + $var['list']['text'] = BANLAN_14; // List existing bans + $var['list']['link'] = e_SELF . "?list"; $var['list']['perm'] = "4"; - $var['add']['text'] = BANLAN_25; // Add a new ban - $var['add']['link'] = e_SELF."?add"; + $var['add']['text'] = BANLAN_25; // Add a new ban + $var['add']['link'] = e_SELF . "?add"; $var['add']['perm'] = "4"; - $var['white']['text'] = BANLAN_52; // List existing whitelist entries - $var['white']['link'] = e_SELF."?white"; + $var['white']['text'] = BANLAN_52; // List existing whitelist entries + $var['white']['link'] = e_SELF . "?white"; $var['white']['perm'] = "4"; - $var['whadd']['text'] = BANLAN_53; // Add a new whitelist entry - $var['whadd']['link'] = e_SELF."?whadd"; + $var['whadd']['text'] = BANLAN_53; // Add a new whitelist entry + $var['whadd']['link'] = e_SELF . "?whadd"; $var['whadd']['perm'] = "4"; $var['transfer']['text'] = BANLAN_35; - $var['transfer']['link'] = e_SELF."?transfer"; - $var['transfer']['perm'] = "4"; + $var['transfer']['link'] = e_SELF . "?transfer"; + $var['transfer']['perm'] = "4"; if(getperms("0")) { - $var['times']['text'] = BANLAN_15; - $var['times']['link'] = e_SELF."?times"; - $var['times']['perm'] = "0"; + $var['times']['text'] = BANLAN_15; + $var['times']['link'] = e_SELF . "?times"; + $var['times']['perm'] = "0"; - $var['options']['text'] = BANLAN_62; - $var['options']['link'] = e_SELF."?options"; - $var['options']['perm'] = "0"; - } - show_admin_menu(BANLAN_16, $action, $var); + $var['options']['text'] = BANLAN_62; + $var['options']['link'] = e_SELF . "?options"; + $var['options']['perm'] = "0"; + } + e_admin_menu(BANLAN_16, $action, $var); } - - // Parse the date string used by the import/export - YYYYMMDD_HHMMSS function parse_date($instr) { - if (strlen($instr) != 15) return 0; - return mktime(substr($instr,9,2),substr($instr,11,2),substr($instr,13,2),substr($instr,4,2),substr($instr,6,2),substr($instr,0,4)); + if(strlen($instr) != 15) + return 0; + return mktime(substr($instr, 9, 2), substr($instr, 11, 2), substr($instr, 13, 2), substr($instr, 4, 2), substr($instr, 6, 2), substr($instr, 0, 4)); } - // Process the imported CSV file, update the database, delete the file. // Return a message function process_csv($filename, $override_imports, $override_expiry, $separator = ',', $quote = '"') { - global $sql, $pref, $e107; -// echo "Read CSV: {$filename} separator: {$separator}, quote: {$quote} override imports: {$override_imports} override expiry: {$override_expiry}
"; - // Renumber imported bans - if ($override_imports) $sql->db_Update('banlist', "`banlist_bantype`=".BAN_TYPE_TEMPORARY." WHERE `banlist_bantype` = ".BAN_TYPE_IMPORTED); - $temp = file($filename); - $line_num = 0; - foreach ($temp as $line) - { // Process one entry - $line = trim($line); - $line_num++; - if ($line) - { - $fields = explode($separator,$line); - $field_num = 0; - $field_list = array('banlist_bantype' => BAN_TYPE_IMPORTED); - foreach ($fields as $f) - { - $f = trim($f); - if (substr($f,0,1) == $quote) + global $sql, $pref, $e107; + // echo "Read CSV: {$filename} separator: {$separator}, quote: {$quote} override imports: {$override_imports} override expiry: {$override_expiry}
"; + // Renumber imported bans + if($override_imports) + $sql->db_Update('banlist', "`banlist_bantype`=" . BAN_TYPE_TEMPORARY . " WHERE `banlist_bantype` = " . BAN_TYPE_IMPORTED); + $temp = file($filename); + $line_num = 0; + foreach($temp as $line) + { // Process one entry + $line = trim($line); + $line_num ++; + if($line) { - if (substr($f,-1,1) == $quote) - { // Strip quotes - $f = substr($f,1,-1); // Strip off the quotes - } - else - { - return BANLAN_49.$line_num; - } - } - // Now handle the field - $field_num++; - switch ($field_num) - { - case 1 : // IP address - $field_list['banlist_ip'] = $e107->ipEncode($f); - break; - case 2 : // Original date of ban - $field_list['banlist_datestamp'] = parse_date($f); - break; - case 3 : // Expiry of ban - depends on $override_expiry - if ($override_expiry) + $fields = explode($separator, $line); + $field_num = 0; + $field_list = array('banlist_bantype' => BAN_TYPE_IMPORTED); + foreach($fields as $f) { - $field_list['banlist_banexpires'] = parse_date($f); + $f = trim($f); + if(substr($f, 0, 1) == $quote) + { + if(substr($f, - 1, 1) == $quote) + { // Strip quotes + $f = substr($f, 1, - 1); // Strip off the quotes + } + else + { + return BANLAN_49 . $line_num; + } + } + // Now handle the field + $field_num ++; + switch($field_num) + { + case 1: // IP address + $field_list['banlist_ip'] = $e107->ipEncode($f); + break; + case 2: // Original date of ban + $field_list['banlist_datestamp'] = parse_date($f); + break; + case 3: // Expiry of ban - depends on $override_expiry + if($override_expiry) + { + $field_list['banlist_banexpires'] = parse_date($f); + } + else + { // Use default ban time from now + $field_list['banlist_banexpires'] = $pref['ban_durations'][BAN_TYPE_IMPORTED] ? time() + (60 * 60 * $pref['ban_durations'][BAN_TYPE_IMPORTED]) : 0; + } + break; + case 4: // Original ban type - we always ignore this and force to 'imported' + break; + case 5: // Ban reason originally generated by E107 + $field_list['banlist_reason'] = $f; + break; + case 6: // Any user notes added + $field_list['banlist_notes'] = $f; + break; + default: // Just ignore any others + } } - else - { // Use default ban time from now - $field_list['banlist_banexpires'] = $pref['ban_durations'][BAN_TYPE_IMPORTED] ? time() + (60*60*$pref['ban_durations'][BAN_TYPE_IMPORTED]) : 0; + $qry = "REPLACE INTO `#banlist` (" . implode(',', array_keys($field_list)) . ") values ('" . implode("', '", $field_list) . "')"; + // echo count($field_list)." elements, query: ".$qry."
"; + if(! $sql->db_Select_gen($qry)) + { + return BANLAN_50 . $line_num; } - break; - case 4 : // Original ban type - we always ignore this and force to 'imported' - break; - case 5 : // Ban reason originally generated by E107 - $field_list['banlist_reason'] = $f; - break; - case 6 : // Any user notes added - $field_list['banlist_notes'] = $f; - break; - default : // Just ignore any others } - } - $qry = "REPLACE INTO `#banlist` (".implode(',',array_keys($field_list)).") values ('".implode("', '",$field_list)."')"; -// echo count($field_list)." elements, query: ".$qry."
"; - if (!$sql->db_Select_gen($qry)) - { - return BANLAN_50.$line_num; - } } - } - // Success here - may need to delete old imported bans - if ($override_imports) $sql->db_Delete('banlist', "`banlist_bantype` = ".BAN_TYPE_TEMPORARY); - @unlink($filename); // Delete file once done - return str_replace('--NUM--',$line_num, BANLAN_51).$filename; + // Success here - may need to delete old imported bans + if($override_imports) + $sql->db_Delete('banlist', "`banlist_bantype` = " . BAN_TYPE_TEMPORARY); + @unlink($filename); // Delete file once done + return str_replace('--NUM--', $line_num, BANLAN_51) . $filename; } - // Log event to admin log -function banlist_adminlog($msg_num='00', $woffle='') +function banlist_adminlog($msg_num = '00', $woffle = '') { - global $pref, $admin_log; -// if (!varset($pref['admin_log_log']['admin_banlist'],0)) return; -// $admin_log->log_event($title,$woffle,E_LOG_INFORMATIVE,'BANLIST_'.$msg_num); - $admin_log->log_event('BANLIST_'.$msg_num,$woffle,E_LOG_INFORMATIVE,''); + global $pref, $admin_log; + // if (!varset($pref['admin_log_log']['admin_banlist'],0)) return; + // $admin_log->log_event($title,$woffle,E_LOG_INFORMATIVE,'BANLIST_'.$msg_num); + $admin_log->log_event('BANLIST_' . $msg_num, $woffle, E_LOG_INFORMATIVE, ''); } ?> diff --git a/e107_admin/banner.php b/e107_admin/banner.php index 5a4649427..502d9ab39 100644 --- a/e107_admin/banner.php +++ b/e107_admin/banner.php @@ -1,35 +1,41 @@ get_files(e_IMAGE."banners/","",$reject); $images = $fl->get_files(e_IMAGE."banners/","","standard"); -if (isset($_POST['update_menu'])) +if (isset($_POST['update_menu'])) { - $menu_pref['banner_caption'] = $tp->toDB($_POST['banner_caption']); + $menu_pref['banner_caption'] = $e107->tp->toDB($_POST['banner_caption']); $menu_pref['banner_amount'] = intval($_POST['banner_amount']); $menu_pref['banner_rendertype'] = intval($_POST['banner_rendertype']); - if (isset($_POST['catid'])) + if (isset($_POST['multiaction_cat_active'])) { - $array_cat = explode("-", $_POST['catid']); + /*$array_cat = explode("-", $_POST['catid']); $cat=''; - for($i = 0; $i < count($array_cat); $i++) + for($i = 0; $i < count($array_cat); $i++) { - $cat .= $tp->toDB($array_cat[$i])."|"; + $cat .= $e107->tp->toDB($array_cat[$i])."|"; } - $cat = substr($cat, 0, -1); + $cat = substr($cat, 0, -1);*/ + $cat = implode('|', $e107->tp->toDB($_POST['multiaction_cat_active'])); $menu_pref['banner_campaign'] = $cat; } $sysprefs->setArray('menu_pref'); banners_adminlog('01', $menu_pref['banner_caption'].'[!br!]'.$menu_pref['banner_amount'].', '.$menu_pref['banner_rendertype'].'[!br!]'.$menu_pref['banner_campaign']); - $message = BANNER_MENU_L2; + $emessage->add(BANNER_MENU_L2, E_MESSAGE_SUCCESS); } @@ -72,17 +77,17 @@ if ($_POST['createbanner'] || $_POST['updatebanner']) { $start_date = (!$_POST['startmonth'] || !$_POST['startday'] || !$_POST['startyear'] ? 0 : mktime (0, 0, 0, $_POST['startmonth'], $_POST['startday'], $_POST['startyear'])); $end_date = (!$_POST['endmonth'] || !$_POST['endday'] || !$_POST['endyear'] ? 0 : mktime (0, 0, 0, $_POST['endmonth'], $_POST['endday'], $_POST['endyear'])); - $cli = $tp->toDB($_POST['client_name'] ? $_POST['client_name'] : $_POST['banner_client_sel']); - $cLogin = $tp->toDB($_POST['client_login']); - $cPassword = $tp->toDB($_POST['client_password']); - $banImage = $tp->toDB($_POST['banner_image']); - $banURL = $tp->toDB($_POST['click_url']); + $cli = $e107->tp->toDB($_POST['client_name'] ? $_POST['client_name'] : $_POST['banner_client_sel']); + $cLogin = $e107->tp->toDB($_POST['client_login']); + $cPassword = $e107->tp->toDB($_POST['client_password']); + $banImage = $e107->tp->toDB($_POST['banner_image']); + $banURL = $e107->tp->toDB($_POST['click_url']); - if ($_POST['banner_pages']) + if ($_POST['banner_pages']) { // Section redundant? - $postcampaign = $tp->toDB($_POST['banner_campaign'] ? $_POST['banner_campaign'] : $_POST['banner_campaign_sel']); - $pagelist = explode("\r\n", $_POST['banner_pages']); - for($i = 0 ; $i < count($pagelist) ; $i++) + $postcampaign = $e107->tp->toDB($_POST['banner_campaign'] ? $_POST['banner_campaign'] : $_POST['banner_campaign_sel']); + $pagelist = explode("\r", $_POST['banner_pages']); + for($i = 0 ; $i < count($pagelist) ; $i++) { $pagelist[$i] = trim($pagelist[$i]); } @@ -92,80 +97,94 @@ if ($_POST['createbanner'] || $_POST['updatebanner']) $pageparms = (trim($_POST['banner_pages']) == '') ? '' : $pageparms; $cam = $pageparms; $logString = $postcampaign.'[!br!]'; - } - else + } + else { - $cam = $tp->toDB($_POST['banner_campaign'] ? $_POST['banner_campaign'] : $_POST['banner_campaign_sel']); + $cam = $e107->tp->toDB($_POST['banner_campaign'] ? $_POST['banner_campaign'] : $_POST['banner_campaign_sel']); } $logString .= $cam.'[!br!]'.$cli.'[!br!]'.$banImage.'[!br!]'.$banURL; - if ($_POST['createbanner']) + if ($_POST['createbanner']) { - admin_update($sql->db_Insert("banner", "0, '".$cli."', '".$cLogin."', '".$cPassword."', '".$banImage."', '".$banURL."', '".intval($_POST['impressions_purchased'])."', '{$start_date}', '{$end_date}', '".intval($_POST['banner_class'])."', 0, 0, '', '".$cam."'"), 'insert', BNRLAN_63); + admin_update($sql->db_Insert("banner", "0, '".$cli."', '".$cLogin."', '".$cPassword."', '".$banImage."', '".$banURL."', '".intval($_POST['impressions_purchased'])."', '{$start_date}', '{$end_date}', '".intval($_POST['banner_class'])."', 0, 0, '', '".$cam."'"), 'insert', BNRLAN_63, false, false); banners_adminlog('02',$logString); - } - else + } + else { - admin_update($sql->db_Update("banner", "banner_clientname='".$cli."', banner_clientlogin='".$cLogin."', banner_clientpassword='".$cPassword."', banner_image='".$banImage."', banner_clickurl='".$banURL."', banner_impurchased='".intval($_POST['impressions_purchased'])."', banner_startdate='{$start_date}', banner_enddate='{$end_date}', banner_active='".intval($_POST['banner_class'])."', banner_campaign='".$cam."' WHERE banner_id=".intval($_POST['eid'])), 'update', BNRLAN_64); + admin_update($sql->db_Update("banner", "banner_clientname='".$cli."', banner_clientlogin='".$cLogin."', banner_clientpassword='".$cPassword."', banner_image='".$banImage."', banner_clickurl='".$banURL."', banner_impurchased='".intval($_POST['impressions_purchased'])."', banner_startdate='{$start_date}', banner_enddate='{$end_date}', banner_active='".intval($_POST['banner_class'])."', banner_campaign='".$cam."' WHERE banner_id=".intval($_POST['eid'])), 'update', BNRLAN_64, false, false); banners_adminlog('03',$logString); } unset($_POST['client_name'], $_POST['client_login'], $_POST['client_password'], $_POST['banner_image'], $_POST['click_url'], $_POST['impressions_purchased'], $start_date, $end_date, $_POST['banner_enabled'], $_POST['startday'], $_POST['startmonth'], $_POST['startyear'], $_POST['endday'], $_POST['endmonth'], $_POST['endyear'], $_POST['banner_class'], $_POST['banner_pages'], $_POST['banner_listtype']); } -if (isset($_POST['confirm'])) +/* DELETE ACTIONS */ +if (isset($_POST['delete_cancel'])) { - admin_update($sql->db_Delete("banner", "banner_id=".intval($_POST['id'])), 'delete', BNRLAN_1); - banners_adminlog('04','Id: '.intval($_POST['id'])); -} + $emessage->addSession(BNRLAN_6); -if ($action == "delete" && $sub_action) + //redirect to main + session_write_close(); + header('Location:'.e_SELF); + exit; +} +if ($action == "delete" && $sub_action && varsettrue($_POST['delete_confirm'])) { - $text = "
- ".BNRLAN_2." -

-
- - - + if($sql->db_Delete("banner", "banner_id=".intval($sub_action))) + { + $emessage->addSession(sprintf(BNRLAN_1, $sub_action), E_MESSAGE_SUCCESS); + banners_adminlog('04','Id: '.intval($sub_action)); + } + else $emessage->addSession(LAN_DELETED_FAILED, E_MESSAGE_WARNING); + + //redirect to main + session_write_close(); + header('Location:'.e_SELF); + exit; +} +elseif ($action == "delete" && $sub_action) +{ // shown only if JS is disabled or by direct url hit (?delete.banner_id) + $emessage->add(BNRLAN_2, E_MESSAGE_WARNING); + $text = " + +
+ ".BNRLAN_5." +
+ ".$frm->admin_button('delete_confirm', LAN_CONFDELETE, 'delete no-confirm')." + ".$frm->admin_button('delete_cancel', LAN_CANCEL, 'cancel')." + +
+
-
"; - $ns->tablerender(BNRLAN_5, $text); + "; + $e107->ns->tablerender(BNRLAN_5, $emessage->render().$text); require_once("footer.php"); exit; } -if (isset($_POST['cancel'])) -{ - $message = BNRLAN_6; -} -if (isset($message)) -{ - $ns->tablerender("", "
".$message."
"); -} -if ($sql->db_Select("banner")) +if ($sql->db_Select("banner")) { - while ($row = $sql->db_Fetch()) + while ($banner_row = $sql->db_Fetch()) { - extract($row); + //extract($row); - killed by SecretR - if (strpos($banner_campaign, "^") !== FALSE) { - $campaignsplit = explode("^", $banner_campaign); - $banner_campaign = $campaignsplit[0]; + if (strpos($banner_row['banner_campaign'], "^") !== FALSE) { + $campaignsplit = explode("^", $banner_row['banner_campaign']); + $banner_row['banner_campaign'] = $campaignsplit[0]; } - if ($banner_campaign) { - $campaigns[] = $banner_campaign; + if ($banner_row['banner_campaign']) { + $campaigns[] = $banner_row['banner_campaign']; } - if ($banner_clientname) { - $clients[] = $banner_clientname; + if ($banner_row['banner_clientname']) { + $clients[] = $banner_row['banner_clientname']; } - if ($banner_clientlogin) { - $logins[] = $banner_clientlogin; + if ($banner_row['banner_clientlogin']) { + $logins[] = $banner_row['banner_clientlogin']; } - if ($banner_clientpassword) { - $passwords[] = $banner_clientpassword; + if ($banner_row['banner_clientpassword']) { + $passwords[] = $banner_row['banner_clientpassword']; } } } @@ -173,88 +192,133 @@ if ($sql->db_Select("banner")) if (!$action) { $text = " - - - - - - - - - - - "; + +
+ ".BNRLAN_7." +
".BNRLAN_7."
".BNRLAN_8."".BNRLAN_9."".BNRLAN_10."".BNRLAN_11."".BNRLAN_12."".BNRLAN_13."".LAN_OPTIONS."
+ + + + + + + + + + + + + + + + + + + + + + "; if (!$banner_total = $sql->db_Select("banner")) { - $text .= ""; + $text .= ""; } else { - while ($row = $sql->db_Fetch()) { - extract($row); + while ($banner_row = $sql->db_Fetch()) { + //extract($row); - killed by SecretR - $clickpercentage = ($banner_clicks && $banner_impressions ? round(($banner_clicks / $banner_impressions) * 100)."%" : "-"); - $impressions_left = ($banner_impurchased ? $banner_impurchased - $banner_impressions : BNRLAN_16); - $impressions_purchased = ($banner_impurchased ? $banner_impurchased : BNRLAN_16); + $clickpercentage = ($banner_row['banner_clicks'] && $banner_row['banner_impressions'] ? round(($banner_row['banner_clicks'] / $banner_row['banner_impressions']) * 100)."%" : "-"); + $impressions_left = ($banner_row['banner_impurchased'] ? $banner_row['banner_impurchased'] - $banner_row['banner_impressions'] : BNRLAN_16); + $impressions_purchased = ($banner_row['banner_impurchased'] ? $banner_row['banner_impurchased'] : BNRLAN_16); - $start_date = ($banner_startdate ? strftime("%d %B %Y", $banner_startdate) : BNRLAN_17); - $end_date = ($banner_enddate ? strftime("%d %B %Y", $banner_enddate) : BNRLAN_17); + $start_date = ($banner_row['banner_startdate'] ? strftime("%d %B %Y", $banner_row['banner_startdate']) : BNRLAN_17); + $end_date = ($banner_row['banner_enddate'] ? strftime("%d %B %Y", $banner_row['banner_enddate']) : BNRLAN_17); - if (strpos($banner_campaign, "^") !== FALSE) { - $campaignsplit = explode("^", $banner_campaign); - $banner_campaign = $campaignsplit[0]; + if (strpos($banner_row['banner_campaign'], "^") !== FALSE) { + $campaignsplit = explode("^", $banner_row['banner_campaign']); + $banner_row['banner_campaign'] = $campaignsplit[0]; $textvisivilitychanged = "(*)"; } else { $textvisivilitychanged = ""; } - $text .= " - - - - - - - - - - - - - - - "; + $text .= " + + + + + + + + + + "; } } - $text .= "
ID".BNRLAN_9."".BNRLAN_10."".BNRLAN_11."".BNRLAN_12."".BNRLAN_13."".LAN_OPTIONS."
".BNRLAN_15."
".BNRLAN_15."
".$banner_id."".$banner_clientname."".$banner_clicks."".$clickpercentage."".$impressions_purchased."".$impressions_left."".ADMIN_EDIT_ICON." ".ADMIN_DELETE_ICON."
 ".$banner_campaign."".r_userclass_name($banner_active)." ".$textvisivilitychanged."".BNRLAN_45.": ".$start_date." <> ".BNRLAN_21.": ".$end_date."
 
".$banner_row['banner_id']." + + ".($banner_row['banner_clientname'] ? $banner_row['banner_clientname'] : BNRLAN_66)." + + ".$banner_row['banner_clicks']."".$clickpercentage."".$impressions_purchased."".$impressions_left." + + ".ADMIN_EDIT_ICON." + +
"; + $text .= " + + + + + + + "; - $ns->tablerender(BNRLAN_42, $text); + $e107->ns->tablerender(BNRLAN_42.' - '.BNRLAN_7, $emessage->render().$text); } if ($action == "create") { if ($sub_action == "edit" && $id) { + if (!$sql->db_Select("banner", "*", "banner_id = '".$id."' " )) { - $text .= "
".BNRLAN_15."
"; + $text .= "
".BNRLAN_15."
"; } else { - while ($row = $sql->db_Fetch()) { - extract($row); + while ($banner_row = $sql->db_Fetch()) { + //extract($row); - killed by SecretR - $_POST['client_name'] = $banner_clientname; - $_POST['client_login'] = $banner_clientlogin; - $_POST['client_password'] = $banner_clientpassword; - $_POST['banner_image'] = $banner_image; - $_POST['click_url'] = $banner_clickurl; - $_POST['impressions_purchased'] = $banner_impurchased; - $_POST['banner_campaign'] = $banner_campaign; - $_POST['banner_active'] = $banner_active; + $_POST['client_name'] = $banner_row['banner_clientname']; + $_POST['client_login'] = $banner_row['banner_clientlogin']; + $_POST['client_password'] = $banner_row['banner_clientpassword']; + $_POST['banner_image'] = $banner_row['banner_image']; + $_POST['click_url'] = $banner_row['banner_clickurl']; + $_POST['impressions_purchased'] = $banner_row['banner_impurchased']; + $_POST['banner_campaign'] = $banner_row['banner_campaign']; + $_POST['banner_active'] = $banner_row['banner_active']; - if ($banner_startdate) { - $tmp = getdate($banner_startdate); + if ($banner_row['banner_startdate']) { + $tmp = getdate($banner_row['banner_startdate']); $_POST['startmonth'] = $tmp['mon']; $_POST['startday'] = $tmp['mday']; $_POST['startyear'] = $tmp['year']; } - if ($banner_enddate) { - $tmp = getdate($banner_enddate); + if ($banner_row['banner_enddate']) { + $tmp = getdate($banner_row['banner_enddate']); $_POST['endmonth'] = $tmp['mon']; $_POST['endday'] = $tmp['mday']; $_POST['endyear'] = $tmp['year']; @@ -264,10 +328,10 @@ if ($action == "create") { $campaignsplit = explode("^", $_POST['banner_campaign']); $listtypearray = explode("-", $campaignsplit[1]); $listtype = $listtypearray[0]; - $campaign_pages = str_replace("|", "\n", $listtypearray[1]); + $campaign_pages = str_replace("|", "", $listtypearray[1]); $_POST['banner_campaign'] = $campaignsplit[0]; } else { - $_POST['banner_campaign'] = $banner_campaign; + $_POST['banner_campaign'] = $banner_row['banner_campaign']; } } @@ -275,64 +339,100 @@ if ($action == "create") { } $text = " -
-
- - - - - - - + "; + if ($sub_action == "edit" && $id) { + $text .= " + + + "; + } else { + $text .= " + + "; + } + $text .= " + + + + "; - - -
".($sub_action == "edit" ? BNRLAN_22 : BNRLAN_23)."
".BNRLAN_24.""; + +
+ ".($sub_action == "edit" ? BNRLAN_22 : BNRLAN_23)." + + + + + + + + + - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + + $text .= " + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + - + $text .= " + +
".BNRLAN_38."
+ + + + + + + +
".BNRLAN_24."
".BNRLAN_25."
+ "; + if (count($campaigns)) { - $text .= " + + "; $c = 0; while ($campaigns[$c]) { if (!isset($for_var[$campaigns[$c]])) { - $text .= ($_POST['banner_campaign'] == $campaigns[$c] ? "" : ""); + $text .= "".$campaigns[$c].""; $for_var[$campaigns[$c]] = $campaigns[$c]; } $c++; } unset($for_var); + //TODO - ajax add campaign + $text .= " + ".$frm->admin_button('add_new_campaign', BNRLAN_26a, 'action', '', array('other' => "onclick=\"e107Helper.toggle('add-new-campaign-cont', false); \$('banner_campaign_sel').selectedIndex=0; return false;\""))." + - $text .= " ".BNRLAN_25."  "; +
+ +
".BNRLAN_26."
+
+ "; } - $text .= " - ".BNRLAN_26." -
".BNRLAN_27.""; + else + { + $text .= ""; + } + $text .= " +
".BNRLAN_27."
".BNRLAN_28."
+ "; if (count($clients)) { - $text .= " + + "; $c = 0; while ($clients[$c]) { if (!isset($for_var[$clients[$c]])) { - $text .= ($_POST['client_name'] == $clients[$c] ? "" : ""); + $text .= "".$clients[$c].""; $for_var[$clients[$c]] = $clients[$c]; } $c++; } unset($for_var); + //TODO - ajax add client + $text .= " + ".$frm->admin_button('add_new_client', BNRLAN_29a, 'action', '', array('other' => "onclick=\"e107Helper.toggle('add-new-client-cont', false); \$('banner_client_sel').selectedIndex=0; return false;\""))." + - $text .= " ".BNRLAN_28."  "; - $text .= ""; + default: + login_field.value = \"\"; + password_field.value = \"\"; + break; + } + } + + "; + } + else + { + $text .= " + +
".BNRLAN_29."
+ "; } - $text .= " - ".BNRLAN_29." -
".BNRLAN_30." - -
".BNRLAN_31." - -
".BNRLAN_32." - -

"; + $text .= " +
".BNRLAN_30." + +
".BNRLAN_31." + +
".BNRLAN_32." +
+ +
+ + "; - if ($fileext1 == swf) { - $text .= " />
- - - -
"; - } - else if($fileext1 == "php" || $fileext1 == "html" || $fileext1 == "js") { - $text .= " /> ".BNRLAN_46.": ".$images[$c]['fname']."
"; - } else { - $text .= " />
"; - } $c++; } - $text .= "
".BNRLAN_33." + +
".BNRLAN_34." + +
0 = ".BNRLAN_35."
+
".BNRLAN_36." +
".BNRLAN_33." - -
".BNRLAN_34." - 0 = ".BNRLAN_35." -
".BNRLAN_36." ".BNRLAN_38." -
".BNRLAN_37." - + + +
".BNRLAN_38."
+
".BNRLAN_37." + + + ".BNRLAN_38." -
".MENLAN_4." + ".$e_userclass->uc_dropdown('banner_class', $_POST['banner_active'], 'public,member,guest,admin,classes,nobody,classes')." +
+
-
".BNRLAN_39." - ".MENLAN_4." - ".r_userclass("banner_class", $_POST['banner_active'], "off", "public,member,guest,admin,classes,nobody,classes")." -
"; - $text .= ($sub_action == "edit" && $id ? "" : ""); - - $text .= "
-
"; - - $ns->tablerender(BNRLAN_42, $text); + $e107->ns->tablerender(BNRLAN_42.' - '.($sub_action == "edit" ? BNRLAN_22 : BNRLAN_23), $text); } @@ -474,7 +633,7 @@ if ($action == "create") { if ($action == "menu") { $in_catname = array(); // Notice removal - $out_catname = array(); + $all_catname = array(); $array_cat_in = explode("|", $menu_pref['banner_campaign']); if (!$menu_pref['banner_caption']) @@ -483,112 +642,113 @@ if ($action == "menu") } $category_total = $sql -> db_Select("banner", "DISTINCT(banner_campaign) as banner_campaign", "ORDER BY banner_campaign", "mode=no_where"); - while ($row = $sql -> db_Fetch()) + while ($banner_row = $sql -> db_Fetch()) { - extract($row); - if (in_array($banner_campaign, $array_cat_in)) + //extract($row); - killed by SecretR + $all_catname[] = $banner_row['banner_campaign']; + + if (in_array($banner_row['banner_campaign'], $array_cat_in)) { - $in_catname[] = $banner_campaign; - } else { - $out_catname[] = $banner_campaign; + $in_catname[] = $banner_row['banner_campaign']; } } - $text = "
-
- - - - - - - - - - - - - + /* removed - checkboxes are OK + $text .= " - - - - -
".BANNER_MENU_L3.": - -
".BANNER_MENU_L6." - - - - - - + + + +*/ + if($all_catname) + { + foreach($all_catname as $name) + { + //$text .= ""; + $text .= " +
+ ".$frm->checkbox('multiaction_cat_active[]', $name, in_array($name, $in_catname)).$frm->label($name, 'multiaction_cat_active[]', $name)." +
+ "; + } + $text .= " +
+ ".$frm->admin_button('check_all', LAN_CHECKALL, 'action')." + ".$frm->admin_button('uncheck_all', LAN_UNCHECKALL, 'action')." +
+ "; + } + else + { + $text .= ''.BNRLAN_67.''; + } + $text .= " - - - - + + + + + + + + + + + +
".BANNER_MENU_L7."
- -
".BANNER_MENU_L8."
- + + + + + + + + + + + + - -
".BANNER_MENU_L3.": + +
".BANNER_MENU_L6." + "; + //removed by SecretR; Reason - BAD UI, null usability + //".BANNER_MENU_L7."
+ //

- - -
-
".BANNER_MENU_L19." - -
".BANNER_MENU_L19." + +
".BANNER_MENU_L10." + +
+
+ +
+ + + "; -
".BANNER_MENU_L10." -
- -
"; - - - - - - - - - - - - - - - - - - $ns->tablerender(BANNER_MENU_L5, $text); - echo "\n"; + + "; +*/ + $e107->ns->tablerender(BNRLAN_68, $emessage->render().$text); } function banner_adminmenu() { - global $action, $sql, $sub_action, $id; + global $action; $act = $action; if ($act == "") { $act = "main"; @@ -696,7 +859,7 @@ function banner_adminmenu() { $var['menu']['text'] = BNRLAN_61; $var['menu']['link'] = e_SELF."?menu"; - show_admin_menu(BNRLAN_62, $act, $var); + e_admin_menu(BNRLAN_62, $act, $var); } require_once("footer.php"); @@ -710,6 +873,32 @@ function banners_adminlog($msg_num='00', $woffle='') $admin_log->log_event('BANNER_'.$msg_num,$woffle,E_LOG_INFORMATIVE,''); } +/** + * Handle page DOM within the page header + * + * @return string JS source + */ +function headerjs() +{ + require_once(e_HANDLER.'js_helper.php'); + $ret = " + + + "; + + return $ret; +} ?> \ No newline at end of file diff --git a/e107_admin/eurl.php b/e107_admin/eurl.php index 92d6c2bd1..9bf807e0b 100644 --- a/e107_admin/eurl.php +++ b/e107_admin/eurl.php @@ -9,8 +9,8 @@ * URL Management * * $Source: /cvs_backup/e107_0.8/e107_admin/eurl.php,v $ - * $Revision: 1.6 $ - * $Date: 2008-12-20 12:30:18 $ + * $Revision: 1.7 $ + * $Date: 2008-12-22 16:50:07 $ * $Author: secretr $ */ @@ -215,7 +215,7 @@ class admin_url_config { if($custom) $checked_profile = ' disabled="disabled"'; $config_profiles .= " - +
".(varsettrue($profile_info['title']) ? ''.$profile_info['title'].'

' : '')." diff --git a/e107_files/jslib/core/admin.js b/e107_files/jslib/core/admin.js index dcbfda965..3ef4e41e3 100644 --- a/e107_files/jslib/core/admin.js +++ b/e107_files/jslib/core/admin.js @@ -8,8 +8,8 @@ * e107 Admin Helper * * $Source: /cvs_backup/e107_0.8/e107_files/jslib/core/admin.js,v $ - * $Revision: 1.8 $ - * $Date: 2008-12-21 11:47:29 $ + * $Revision: 1.9 $ + * $Date: 2008-12-22 16:50:07 $ * $Author: secretr $ * */ @@ -46,8 +46,11 @@ e107Admin.Helper = { element.select('button.action[name=check_all]').invoke('observe', 'click', this.allCheckedEventHandler); element.select('button.action[name=uncheck_all]').invoke('observe', 'click', this.allUncheckedEventHandler); element.select('button.delete', 'input.delete[type=image]', 'a.delete').invoke('observe', 'click', function(e) { - if(e.element().hasClassName('no-confirm') || (e.element().readAttribute('rel') && e.element().readAttribute('rel').toLowerCase == 'no-confirm')) return; - var msg = e.element().readAttribute('title') || e107.getModLan('delete_confirm'); + var el = e.findElement('a.delete'); + if(!el) el = e.element(); + if(!el) return; + if(el.hasClassName('no-confirm') || (el.readAttribute('rel') && el.readAttribute('rel').toLowerCase() == 'no-confirm')) return; + var msg = el.readAttribute('title') || e107.getModLan('delete_confirm'); if( !e107Helper.confirm(msg) ) e.stop(); }); }, diff --git a/e107_languages/English/admin/lan_admin.php b/e107_languages/English/admin/lan_admin.php index 62ed0c65b..1e35858c2 100644 --- a/e107_languages/English/admin/lan_admin.php +++ b/e107_languages/English/admin/lan_admin.php @@ -1,7 +1,7 @@ this is only used when multiple campaigns are selected"); +define("BNRLAN_25", "add new or choose existing campaign"); +define("BNRLAN_26", "enter new campaign"); +define("BNRLAN_26a", "New Campaign"); +define("BNRLAN_28", "add new or choose existing client"); +define("BNRLAN_29", "enter new client"); +define("BNRLAN_29a", "New Client"); + +define("BNRLAN_65", "Stats"); +define("BNRLAN_66", "N/A"); + +define("BNRLAN_67", "No campaigns yet."); +define("BNRLAN_68", "Banner Menu Configuration"); ?> \ No newline at end of file diff --git a/e107_plugins/banner_menu/config.php b/e107_plugins/banner_menu/config.php index aac0041bc..8840b6ee7 100644 --- a/e107_plugins/banner_menu/config.php +++ b/e107_plugins/banner_menu/config.php @@ -1,23 +1,29 @@ $v) + foreach($_POST as $k => $v) { - if (strpos($k, "banner_") === 0) + if (strpos($k, "banner_") === 0) { $temp[$k] = $v; } } - - if (isset($_POST['catid'])) + + if (isset($_POST['catid'])) { $array_cat = explode("-", $_POST['catid']); - for($i = 0; $i < count($array_cat); $i++) + for($i = 0; $i < count($array_cat); $i++) { $cat .= $array_cat[$i]."|"; } $cat = substr($cat, 0, -1); $temp['banner_campaign'] = $cat; } - + if ($admin_log->logArrayDiffs($temp, $menu_pref, 'BANNER_05')) { @@ -73,25 +79,25 @@ if (isset($_POST['update_menu'])) } $ns->tablerender("", "
".$message."
"); } - -if (!$menu_pref['banner_caption']) + +if (!$menu_pref['banner_caption']) { $menu_pref['banner2_caption'] = BANNER_MENU_L1; } - + $text = "
- + "; - + $array_cat_in = explode("|", $menu_pref['banner_campaign']); - + $c = 0; $d = 0; $sql2 = new db; @@ -106,12 +112,12 @@ while ($row = $sql2->db_Fetch()) { $d++; } } - + $text .= " - + - + - + - +
".BANNER_MENU_L3.":
".BANNER_MENU_L6." - +
".BANNER_MENU_L7."
@@ -134,10 +140,10 @@ $text .= "

- +
".BANNER_MENU_L10." @@ -149,7 +155,7 @@ $text .= "

".$rs->form_select_close()."
".BANNER_MENU_L15."
".BANNER_MENU_L16."
@@ -161,32 +167,32 @@ for($b = 1; $b < 6; $b++) { $text .= $rs->form_select_close()."
"; - + $ns->tablerender(BANNER_MENU_L5, $text); - - + + require_once(e_ADMIN."footer.php"); - + function headerjs() { - + $script_js = "\n"; return $script_js; } - + ?> \ No newline at end of file diff --git a/e107_themes/_blank/admin_style.css b/e107_themes/_blank/admin_style.css index 798ab1559..d26c4c8ff 100644 --- a/e107_themes/_blank/admin_style.css +++ b/e107_themes/_blank/admin_style.css @@ -328,7 +328,6 @@ input.action.edit {} .admin-page-body { padding: 20px 15px 0; } .admin-footer {} legend { font-size: 14px; font-weight: bold; padding: 5px; } -.admin-help p { margin-bottom: 10px } /* help side menu */ /******** Layout */ .main-table { width: 100%; border: 0 none; }