From 94f4a15ac40e639cf873eceb714756fd730771f3 Mon Sep 17 00:00:00 2001 From: CaMer0n Date: Tue, 20 Oct 2009 11:07:08 +0000 Subject: [PATCH] big admin->links cleanup. Still more to do. --- e107_admin/links.php | 627 +++++++++++++++++++++++++++++++------------ 1 file changed, 456 insertions(+), 171 deletions(-) diff --git a/e107_admin/links.php b/e107_admin/links.php index 74ba8e465..ee9104330 100644 --- a/e107_admin/links.php +++ b/e107_admin/links.php @@ -9,9 +9,9 @@ * Administration Area - Site Links * * $Source: /cvs_backup/e107_0.8/e107_admin/links.php,v $ - * $Revision: 1.29 $ - * $Date: 2009-08-28 16:10:54 $ - * $Author: marj_nl_fr $ + * $Revision: 1.30 $ + * $Date: 2009-10-20 11:07:08 $ + * $Author: e107coders $ * */ @@ -45,9 +45,12 @@ require_once(e_HANDLER."message_handler.php"); require_once (e_HANDLER."ren_help.php"); $rs = new form(); + +define("URL_SEPARATOR", 'X'); // Used in names of 'inc' and 'dec' fields + $linkpost = new links(); $emessage = &eMessage::getInstance(); - +/* $action = ''; if(e_QUERY) { @@ -57,10 +60,10 @@ if(e_QUERY) $id = varset($tmp[2], ''); unset($tmp); } - -define("URL_SEPARATOR", 'X'); // Used in names of 'inc' and 'dec' fields +*/ +/* $incdec_action = ''; foreach(array_keys($_POST) as $k) { @@ -74,7 +77,7 @@ foreach(array_keys($_POST) as $k) $linkid = intval($matches[2]); $link_order = intval($matches[3]); } -} +}*/ if(isset($_POST['generate_sublinks']) && isset($_POST['sublink_type']) && $_POST['sublink_parent'] != "") { @@ -116,7 +119,8 @@ if(isset($_POST['generate_sublinks']) && isset($_POST['sublink_type']) && $_POST sitelinks_adminlog('01', $message); // 'Sublinks generated' } } - +// DEPRECATED. +/* if($incdec_action == 'inc') { $sql->db_Update("links", "link_order=link_order+1 WHERE link_order='".intval($link_order - 1)."'"); @@ -128,9 +132,10 @@ elseif($incdec_action == 'dec') $sql->db_Update("links", "link_order=link_order-1 WHERE link_order='".intval($link_order + 1)."'"); $sql->db_Update("links", "link_order=link_order+1 WHERE link_id='".intval($linkid)."'"); sitelinks_adminlog('03', 'Id: '.$linkid); -} +}*/ -if(isset($_POST['update'])) +// DEPRECATED - use batch method instead. +/*if(isset($_POST['update'])) { foreach($_POST['link_order'] as $loid) { @@ -144,7 +149,7 @@ if(isset($_POST['update'])) $e107cache->clear("sitelinks"); $emessage->add(LAN_UPDATED, E_MESSAGE_SUCCESS); sitelinks_adminlog('04', ''); -} +}*/ if(isset($_POST['updateoptions'])) { @@ -172,48 +177,10 @@ if(isset($_POST['updateoptions'])) } } -if($delete == 'main') -{ - if($sql->db_Select("links", "link_id, link_name, link_order, link_parent", "link_id=".intval($del_id))) - { - $row = $sql->db_Fetch(); - $linkpost->delete_link($row); // Admin logging in class routine - } -} -if(isset($_POST['add_link'])) -{ - $linkpost->submit_link($sub_action, $_POST['link_id']); - unset($id); -} -$linkArray = $linkpost->getLinks(); -switch ($action) { - case 'create': - $linkpost->create_link($sub_action, $id); - break; - case 'debug': - $linkpost->show_existing_items(TRUE); - break; - - case 'opt': - $linkpost->show_pref_options(); - break; - - case 'sublinks': - $linkpost->show_sublink_generator(); - break; - - case 'savepreset': - case 'clr_preset': - default: //handles preset urls as well - $action = 'main'; - $sub_action = $id = ''; - $linkpost->show_existing_items(); - break; -} require_once ('footer.php'); exit(); @@ -226,6 +193,151 @@ class links var $link_total; var $aIdOptPrep, $aIdOptData, $aIdOptTest; var $debug_dis = FALSE; + var $linkArray = array(); + var $linkCategory = array(); + var $linkOpen = array(); + var $mode = 'main'; + + function __construct() + { + global $user_pref; + $sql = e107::getDb(); + + if(varset($_GET['mode'])) + { + $this->mode = $_GET['mode']; + } + + if (varset($_POST['submit-e-columns'])) + { + $user_pref['admin_links_columns'] = $_POST['e-columns']; + save_prefs('user'); + } + + $this->linkCategory = array( + 1 => "1 - Main", + 2 => "2 - Alt", + 3 => "3 - Alt", + 4 => "4 - Alt", + 5 => "5 - Alt", + 6 => "6 - Alt", + 7 => "7 - Alt", + 8 => "8 - Alt", + 9 => "9 - Alt", + 10 => "10 - Alt" + ); + + $this->linkOpen = array( + 0 => LCLAN_20, // 0 = same window + 4 => LCLAN_24, // 4 = miniwindow 600x400 + 5 => LINKLAN_1 // 5 = miniwindow 800x600 + ); + + $this->fields = array( + 'checkboxes' => array('title'=> '','width' => '3%','forced' => true,'thclass' => 'center first'), + 'link_button' => array('title'=> LCLAN_89, 'width'=>'5%', 'thclass' => 'center'), + 'link_id' => array('title'=> ID, 'width'=>'5%', 'forced'=> TRUE, 'primary'=>TRUE), + 'link_name' => array('title'=> LCLAN_15, 'width'=>'auto','type'=>'text'), + 'link_url' => array('title'=> LCLAN_93, 'width'=>'auto','type'=>'text'), + 'link_class' => array('title'=> LAN_USERCLASS, 'type' => 'array', 'method'=>'tinymce_class', 'width' => 'auto'), + 'link_description' => array('title'=> LCLAN_17, 'type' => 'array', 'method'=>'tinymce_plugins', 'width' => 'auto'), + 'link_category' => array('title'=> LCLAN_12, 'type' => 'text', 'method'=>'tinymce_buttons', 'methodparms'=>1, 'width' => 'auto'), + 'link_order' => array('title'=> LAN_ORDER, 'type' => 'text', 'method'=>'tinymce_buttons', 'methodparms'=>2, 'width' => 'auto'), + 'link_parent' => array('title'=> LINKLAN_2, 'type' => 'text', 'method'=>'tinymce_buttons', 'methodparms'=>3, 'width' => 'auto', 'thclass' => 'left first'), + 'link_open' => array('title'=> LCLAN_19, 'type' => 'text', 'method'=>'tinymce_buttons', 'methodparms'=>4, 'width' => 'auto', 'thclass' => 'left first'), + 'increment' => array('title'=> LCLAN_91,'width' => '3%','forced' => true,'thclass' => 'center'), + 'options' => array('title'=> LAN_OPTIONS, 'forced'=>TRUE, 'width' => '10%', 'thclass' => 'center last') + ); + + $this->fieldpref = (varset($user_pref['admin_links_columns'])) ? $user_pref['admin_links_columns'] : array_keys($this->fields); + + if(varset($_POST['inc'])) + { + list($link_id,$link_order) = explode(URL_SEPARATOR,key($_POST['inc'])); + $sql->db_Update("links", "link_order=link_order+1 WHERE link_order='".intval($link_order - 1)."'"); + $sql->db_Update("links", "link_order=link_order-1 WHERE link_id='".intval($link_id)."'"); + sitelinks_adminlog('02', 'Id: '.$link_id); + } + + if(varset($_POST['dec'])) + { + list($link_id,$link_order) = explode(URL_SEPARATOR,key($_POST['dec'])); + $sql->db_Update("links", "link_order=link_order-1 WHERE link_order='".intval($link_order + 1)."'"); + $sql->db_Update("links", "link_order=link_order+1 WHERE link_id='".intval($link_id)."'"); + sitelinks_adminlog('03', 'Id: '.$link_id); + } + + if(varset($_POST['execute_batch'])) + { + $this->process_batch($_POST['link_selected']); + } + + if(varset($_POST['add_link'])) + { + $this->submit_link($sub_action, $_POST['link_id']); + } + + if(varset($_POST['delete'])) + { + $del_id = key($_POST['delete']); + if($sql->db_Select("links", "link_id, link_name, link_order, link_parent", "link_id=".intval($del_id))) + { + $row = $sql->db_Fetch(); + $this->delete_link($row); // Admin logging in class routine + } + } + + $this->linkArray = $this->getLinks(); + + if(varset($_POST['edit'])) + { + $this->create_link('edit', key($_POST['edit'])); + return; + } + + if(varset($_POST['sub'])) + { + $this->mode = 'sub'; + $this->create_link('sub', key($_POST['sub'])); + return; + } + + + switch ($this->mode) // page display mode + { + + case 'main': + + $this->show_existing_items(); + break; + + case 'create': + $this->create_link($sub_action,0); + break; + + case 'debug': + $linkpost->show_existing_items(TRUE); + break; + + case 'opt': + $this->show_pref_options(); + break; + + case 'sub': + $this->show_sublink_generator(); + break; + + case 'savepreset': + case 'clr_preset': + default: //handles preset urls as well + $action = 'main'; + $sub_action = $id = ''; + // $linkpost->show_existing_items(); + break; + } + + } + function getLinks() { @@ -274,13 +386,15 @@ class links function dropdown($curval = "", $lid = 0, $indent = 0) { // Drop-down list using on the parent_id. :) + + global $linkArray, $id, $sub_action; if(0 == $indent) { $ret = "\n"; } - foreach($linkArray[$lid] as $l) + foreach($this->linkArray[$lid] as $l) { $s = ($l['link_id'] == $curval ? " selected='selected' " : ""); $thename = $this->linkName($l['link_name']); @@ -299,7 +413,7 @@ class links } $ret .= "\n"; - if(array_key_exists($l['link_id'], $linkArray)) + if(array_key_exists($l['link_id'], $this->linkArray)) { $ret .= $this->dropdown($curval, $l['link_id'], $indent + 1); } @@ -307,6 +421,7 @@ class links return $ret; } + function existing($id = 0, $level = 0) { global $linkArray; @@ -315,7 +430,7 @@ class links { $s = ($l['link_parent'] == $curval ? " selected='selected' " : ""); $ret .= $this->display_row($l, $level); - if(array_key_exists($l['link_id'], $linkArray)) + if(array_key_exists($l['link_id'], $this->linkArray)) { $ret .= $this->existing($l['link_id'], $level + 1); } @@ -323,13 +438,52 @@ class links return $ret; } + function show_existing_items($dbg_display = FALSE) { - global $sql, $rs, $e107, $tp, $linkArray, $emessage; + global $rs, $emessage; + + $sql = e107::getDb(); + $frm = e107::getForm(); + $tp = e107::getParser(); + $ns = e107::getRender(); + $this->debug_dis = $dbg_display; - if(count($linkArray)) + if(count($this->linkArray)) { + $text = $rs->form_open("post", e_SELF, "myform_{$link_id}", "", ""); + $text .= " + + + "; + + /* $this->prepIdOpts(); // Prepare the options list for all links $text = $rs->form_open("post", e_SELF, "myform_{$link_id}", "", ""); @@ -368,15 +522,87 @@ class links - "; + "; + $text .= $rs->form_close(); + */ + } else { $text .= "
".LCLAN_61."
"; } - $e107->ns->tablerender(LCLAN_8, $emessage->render().$text); + + $ns->tablerender(LCLAN_8, $emessage->render().$text); } + + + + function renderValue($key,$row) + { + $frm = e107::getForm(); + $tp = e107::getParser(); + + $text = ""; + $att = $this->fields[$key]; + + if($key == 'checkboxes') + { + $rowid = "link_selected[".$row["link_id"]."]"; + return $frm->checkbox($rowid, $row['link_id']); + } + + if($key == "link_name") // FIXME - incorrect links. + { + return "".$row['link_name'].""; + } + + if($key == "link_button") + { + $button = $tp->replaceConstants($row['link_button']); + return ($button) ? "" : " "; + } + + if($key == "link_class") + { + return $frm->uc_label($row['link_class']); + } + + if($key == "link_category") + { + $cat = $row['link_category']; + return $this->linkCategory[$cat]; + } + + if($key == "link_open") + { + return $this->linkOpen[$row['link_open']]; + } + + if($key == "increment") + { + $name_suffix = $row["link_id"].URL_SEPARATOR.$row["link_order"]; + $text .= ""; + $text .= ""; + return $text; + } + + + if($key == "options") + { + $id = $row['link_id']; + + $text .= ""; + $text .= ""; + $text .= ""; + return $text; + } + + return $row[$key]; + } + + + function prepIdOpts() { @@ -396,89 +622,89 @@ class links if($link_category > 1 && $link_category != $previous_cat) { + $text .= " + + + + -