diff --git a/class2.php b/class2.php index 082cccf9a..d4eccfc91 100644 --- a/class2.php +++ b/class2.php @@ -9,9 +9,9 @@ * General purpose file * * $Source: /cvs_backup/e107_0.8/class2.php,v $ -* $Revision: 1.128 $ -* $Date: 2009-08-16 16:30:56 $ -* $Author: secretr $ +* $Revision: 1.129 $ +* $Date: 2009-08-16 23:58:30 $ +* $Author: e107coders $ * */ // @@ -885,7 +885,7 @@ if (!class_exists('e107table')) public $eMenuCount = 0; public $eMenuArea; - public $eMenuTotal = 0; + public $eMenuTotal = array(); public $eSetStyle; function tablerender($caption, $text, $mode = 'default', $return = false) @@ -917,7 +917,7 @@ if (!class_exists('e107table')) $this->eMenuCount++; } ob_start(); - tablestyle($caption, $text, $mode, array('menuArea'=>$this->eMenuArea,'menuCount'=>$this->eMenuCount,'menuTotal'=>$this->eMenuTotal,'setStyle'=>$this->eSetStyle)); + tablestyle($caption, $text, $mode, array('menuArea'=>$this->eMenuArea,'menuCount'=>$this->eMenuCount,'menuTotal'=>$this->eMenuTotal[$this->eMenuArea],'setStyle'=>$this->eSetStyle)); $ret=ob_get_contents(); ob_end_clean(); @@ -930,7 +930,7 @@ if (!class_exists('e107table')) { $this->eMenuCount++; } - tablestyle($caption, $text, $mode, array('menuArea'=>$this->eMenuArea,'menuCount'=>$this->eMenuCount,'menuTotal'=>$this->eMenuTotal,'setStyle'=>$this->eSetStyle)); + tablestyle($caption, $text, $mode, array('menuArea'=>$this->eMenuArea,'menuCount'=>$this->eMenuCount,'menuTotal'=>$this->eMenuTotal[$this->eMenuArea],'setStyle'=>$this->eSetStyle)); return ''; } } @@ -1488,7 +1488,7 @@ function save_prefs($table = 'core', $uid = USERID, $row_val = '') // Create the data to be stored if($sql->db_Select_gen("REPLACE INTO `#core` (e107_name,e107_value) values ('SitePrefs', '".$eArrayStorage->WriteArray($_pref)."') ")) { - ecache::clear_sys('SitePrefs'); + ecache::clear_sys('Config_core'); return true; } else @@ -1504,7 +1504,7 @@ function save_prefs($table = 'core', $uid = USERID, $row_val = '') if($sql->db_Select_gen("REPLACE INTO `#core` (e107_name,e107_value) values ('IconPool', '".$eArrayStorage->WriteArray($_iconpool)."') ")) { - ecache::clear_sys('IconPool'); + ecache::clear_sys('Config_ipool'); return true; } else diff --git a/e107_admin/sql/core_sql.php b/e107_admin/sql/core_sql.php index 493f5dbfe..a3ce0f34a 100644 --- a/e107_admin/sql/core_sql.php +++ b/e107_admin/sql/core_sql.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_admin/sql/core_sql.php,v $ -| $Revision: 1.19 $ -| $Date: 2009-07-09 02:47:12 $ +| $Revision: 1.20 $ +| $Date: 2009-08-16 23:58:31 $ | $Author: e107coders $ +----------------------------------------------------------------------------+ */ @@ -293,6 +293,7 @@ CREATE TABLE menus ( menu_pages text NOT NULL, menu_path varchar(100) NOT NULL default '', menu_layout varchar(100) NOT NULL default '', + menu_parms text NOT NULL, PRIMARY KEY (menu_id) ) TYPE=MyISAM; # -------------------------------------------------------- diff --git a/e107_files/shortcode/menu.php b/e107_files/shortcode/menu.php index 7015f5075..71f3c03ce 100644 --- a/e107_files/shortcode/menu.php +++ b/e107_files/shortcode/menu.php @@ -1,9 +1,9 @@ render($parm); + return e107::getMenu()->renderArea($parm); } diff --git a/e107_files/shortcode/plugin.php b/e107_files/shortcode/plugin.php new file mode 100644 index 000000000..efd24442d --- /dev/null +++ b/e107_files/shortcode/plugin.php @@ -0,0 +1,18 @@ + toDB(dirname($menu)); + $name = $tp -> toDB(basename($menu)); + + if($path == '.') + { + $path = $menu; + } + return e107::getMenu()->renderMenu($path,$name); +} diff --git a/e107_handlers/menu_class.php b/e107_handlers/menu_class.php index ac4f17c45..cadadeeab 100644 --- a/e107_handlers/menu_class.php +++ b/e107_handlers/menu_class.php @@ -1,4 +1,5 @@ retrieve_sys("menus_".USERCLASS_LIST."_".md5(e_LANGUAGE.$menu_layout_field)); - $menu_data = e107::getArrayStorage()->ReadArray($menu_data); - $eMenuList = array(); - $eMenuActive = array(); - $eMenuArea = array(); - - if(!is_array($menu_data)) + $menu_layout_field = THEME_LAYOUT != e107 :: getPref('sitetheme_deflayout') ? THEME_LAYOUT : ""; + $menu_data = e107 :: getCache()->retrieve_sys("menus_".USERCLASS_LIST."_".md5(e_LANGUAGE.$menu_layout_field)); + $menu_data = e107 :: getArrayStorage()->ReadArray($menu_data); + + $eMenuArea = array(); + // $eMenuList = array(); + // $eMenuActive = array(); // DEPRECATED + + if (!is_array($menu_data)) { - $menu_qry = 'SELECT * FROM #menus WHERE menu_location > 0 AND menu_class IN ('.USERCLASS_LIST.') AND menu_layout = "'.$menu_layout_field.'" ORDER BY menu_location,menu_order'; - if (e107::getDb()->db_Select_gen($menu_qry)) + if (e107 :: getDb()->db_Select_gen($menu_qry)) { - while ($row = e107::getDb()->db_Fetch()) + while ($row = e107 :: getDb()->db_Fetch()) { - $eMenuList[$row['menu_location']][] = $row; - $eMenuArea[$row['menu_location']][$row['menu_name']] = 1; - $eMenuActive[$row['menu_name']] = $row['menu_name']; + $eMenuArea[$row['menu_location']][] = $row; } } + $menu_data['menu_area'] = $eMenuArea; - $menu_data['menu_list'] = $eMenuList; - $menu_data['menu_active'] = $eMenuActive; - $menu_data = e107::getArrayStorage()->WriteArray($menu_data, false); - e107::getCache()->set_sys('menus_'.USERCLASS_LIST.'_'.md5(e_LANGUAGE), $menu_data); - - unset($menu_data,$menu_layout_field,$menu_qry); + + $menuData = e107 :: getArrayStorage()->WriteArray($menu_data,false); + e107 :: getCache()->set_sys('menus_'.USERCLASS_LIST.'_'.md5(e_LANGUAGE.$menu_layout_field),$menuData); } else { $eMenuArea = $menu_data['menu_area']; - $eMenuList = $menu_data['menu_list']; - $eMenuActive = $menu_data['menu_active']; - unset($menu_data); } - - $this->eMenuActive = $eMenuActive; - $this->eMenuArea = $eMenuArea; - $this->eMenuList = $eMenuList; + $total = array(); + foreach ($eMenuArea as $area => $val) + { + foreach ($val as $row) + { + if ($this->isVisible($row)) + { + $path = str_replace("/","",$row['menu_path']); + if (!isset ($total[$area])) + { + $total[$area] = 0; + } + $this->eMenuActive[$area][] = $row; + $total[$area]++; + } + } + } + e107 :: getRender()->eMenuTotal = $total; } - - function render($parm = '') + + + private function isVisible($row) { - - global $sql, $ns, $tp, $sc_style; + $show_menu = TRUE; + + if ($row['menu_pages']) + { + list($listtype,$listpages) = explode("-",$row['menu_pages'],2); + $pagelist = explode("|",$listpages); + $check_url = e_SELF.(e_QUERY ? "?".e_QUERY : ''); + + switch ($listtype) + { + case '1' : //show menu + + $show_menu = false; + foreach ($pagelist as $p) + { + if (substr($p,- 1) === '!') + { + $p = substr($p,0,- 1); + $show_menu = TRUE; + break 2; + } + elseif (strpos($check_url,$p) !== FALSE) + { + $show_menu = TRUE; + break 2; + } + } + break; + case '2' : //hide menu + + $show_menu = TRUE; + foreach ($pagelist as $p) + { + if (substr($p,- 1) == '!') + { + $p = substr($p,0,- 1); + if (substr($check_url,strlen($p) * - 1) == $p) + { + $show_menu = FALSE; + break 2; + } + } + elseif (strpos($check_url,$p) !== FALSE) + { + $show_menu = FALSE; + break 2; + } + } + break; + } //end switch + + } //endif menu_pages + + return $show_menu; + } + + + public function renderArea($parm = '') + { + global $sql,$ns,$tp,$sc_style; global $error_handler; - $e107 = e107::getInstance(); - - $eMenuList = $this->eMenuList; - + $e107 = e107 :: getInstance(); $tmp = explode(':',$parm); - - $buffer_output = true; // Default - return all output. - if (isset($tmp[1]) && $tmp[1] == 'echo') { $buffer_output = false; } - - if (!array_key_exists($tmp[0], $eMenuList)) { return; } - + $buffer_output = true; // Default - return all output. + + if (isset ($tmp[1]) && $tmp[1] == 'echo') + { + $buffer_output = false; + } + if (!array_key_exists($tmp[0],$this->eMenuActive)) + { + return; + } if ($buffer_output) { ob_start(); } - - e107::getRender()->eMenuArea = $tmp[0]; - - - foreach($eMenuList[$tmp[0]] as $row) + e107 :: getRender()->eMenuArea = $tmp[0]; + foreach ($this->eMenuActive[$tmp[0]] as $row) { - $pkey = str_replace("/","",$row['menu_path']); - $show_menu[$pkey] = $row['menu_name']; - - if($row['menu_pages']) - { - list($listtype, $listpages) = explode('-', $row['menu_pages'], 2); - $pagelist = explode('|',$listpages); - $check_url = e_SELF.(e_QUERY ? '?'.e_QUERY : ''); - - if($listtype == '1') //show menu - { - //$show_menu[$pkey] = FALSE; - unset($show_menu[$pkey]); - foreach($pagelist as $p) - { - if(substr($p, -1) == '!') - { - $p = substr($p, 0, -1); - if(substr($check_url, strlen($p)*-1) == $p) - { - // $show_menu[$pkey] = TRUE; - $show_menu[$pkey] = $row['menu_name']; - } - } - else - { - if(strpos($check_url,$p) !== FALSE) - { - // $show_menu[$pkey] = TRUE; - $show_menu[$pkey] = $row['menu_name']; - } - } - } - } - elseif($listtype == '2') //hide menu - { - // $show_menu[$pkey] = TRUE; - $show_menu[$pkey] = $row['menu_name']; - foreach($pagelist as $p) { - if(substr($p, -1) == '!') - { - $p = substr($p, 0, -1); - if(substr($check_url, strlen($p)*-1) == $p) - { - // $show_menu[$pkey] = FALSE; - unset($show_menu[$pkey]); - } - } - else - { - if(strpos($check_url, $p) !== FALSE) - { - // $show_menu[$pkey] = FALSE; - unset($show_menu[$pkey]); - } - } - } - } - } - } - - e107::getRender()->eMenuTotal = count($show_menu); - - foreach($show_menu as $mpath=>$mname) - { - // $mname = $row['menu_name']; - if($error_handler->debug == true) - { - echo "\n\n"; - } - $sql->db_Mark_Time($mname); - if(is_numeric($mpath)) - { - $sql -> db_Select("page", "*", "page_id='".$mpath."' "); - $page = $sql -> db_Fetch(); - $caption = $e107->tp->toHTML($page['page_title'], TRUE, 'parse_sc, constants'); - $text = $e107->tp->toHTML($page['page_text'], TRUE, 'parse_sc, constants'); - e107::getRender()->tablerender($caption, $text); - } - else - { - if (is_readable(e_PLUGIN.$mpath."/languages/".e_LANGUAGE.".php")) - { - include_once(e_PLUGIN.$mpath."/languages/".e_LANGUAGE.".php"); - } - elseif (is_readable(e_PLUGIN.$mpath."/languages/".e_LANGUAGE."/".e_LANGUAGE.".php")) - { - include_once(e_PLUGIN.$mpath."/languages/".e_LANGUAGE."/".e_LANGUAGE.".php"); - } - elseif (is_readable(e_PLUGIN.$mpath."/languages/English.php")) - { - include_once(e_PLUGIN.$mpath."/languages/English.php"); - } - elseif (is_readable(e_PLUGIN.$mpath."/languages/English/English.php")) - { - include_once(e_PLUGIN.$mpath."/languages/English/English.php"); - } - - if(file_exists(e_PLUGIN.$mpath."/".$mname.".php")) - { - include_once(e_PLUGIN.$mpath."/".$mname.".php"); - } - } - $sql->db_Mark_Time("(After ".$mname.")"); - if ($error_handler->debug == true) - { - echo "\n\n"; - } - unset($caption,$text); // clear variables for proceeding menus. - } - - - e107::getRender()->eMenuCount = 0; - e107::getRender()->eMenuArea = null; - - + $this->renderMenu($row['menu_path'],$row['menu_name'],$row['menu_parms']); + } + e107 :: getRender()->eMenuCount = 0; + e107 :: getRender()->eMenuArea = null; if ($buffer_output) { $ret = ob_get_contents(); @@ -227,4 +181,60 @@ class e_menu return $ret; } } -} \ No newline at end of file + + + public function renderMenu($mpath,$mname,$parm = '') + { + global $sql; // required at the moment. + global $ns,$tp,$sc_style; + $e107 = e107 :: getInstance(); + + if ($error_handler->debug == true) + { + echo "\n\n"; + } + + e107 :: getDB()->db_Mark_Time($mname); + + if (is_numeric($mpath)) + { + $sql->db_Select("page","*","page_id='".$mpath."' "); + $page = $sql->db_Fetch(); + $caption = $e107->tp->toHTML($page['page_title'],true,'parse_sc, constants'); + $text = $e107->tp->toHTML($page['page_text'],true,'parse_sc, constants'); + e107 :: getRender()->tablerender($caption,$text); + } + else + { + if (is_readable(e_PLUGIN.$mpath."/languages/".e_LANGUAGE.".php")) + { + include_once (e_PLUGIN.$mpath."/languages/".e_LANGUAGE.".php"); + } + elseif (is_readable(e_PLUGIN.$mpath."/languages/".e_LANGUAGE."/".e_LANGUAGE.".php")) + { + include_once (e_PLUGIN.$mpath."/languages/".e_LANGUAGE."/".e_LANGUAGE.".php"); + } + elseif (is_readable(e_PLUGIN.$mpath."/languages/English.php")) + { + include_once (e_PLUGIN.$mpath."/languages/English.php"); + } + elseif (is_readable(e_PLUGIN.$mpath."/languages/English/English.php")) + { + include_once (e_PLUGIN.$mpath."/languages/English/English.php"); + } + if (file_exists(e_PLUGIN.$mpath."/".$mname.".php")) + { + include_once (e_PLUGIN.$mpath."/".$mname.".php"); + } + } + + e107 :: getDB()->db_Mark_Time("(After ".$mname.")"); + if ($error_handler->debug == true) + { + echo "\n\n"; + } + + } + + +} diff --git a/e107_handlers/menumanager_class.php b/e107_handlers/menumanager_class.php index bc731fa82..4f0ecb472 100644 --- a/e107_handlers/menumanager_class.php +++ b/e107_handlers/menumanager_class.php @@ -10,9 +10,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_handlers/menumanager_class.php,v $ -| $Revision: 1.1 $ -| $Date: 2009-08-16 16:30:56 $ -| $Author: secretr $ +| $Revision: 1.2 $ +| $Date: 2009-08-16 23:58:31 $ +| $Author: e107coders $ +----------------------------------------------------------------------------+ */ if (!defined('e107_INIT')) { exit; } @@ -213,7 +213,7 @@ class e_menuManager { } $file = urldecode($_GET['path']).".php"; - $newurl = e_PLUGIN_ABS.$file; + $newurl = e_PLUGIN_ABS.$file."?id=".$_GET['id']; /* @@ -1053,7 +1053,7 @@ class e_menuManager { if($conf) { - $text .= ' + $text .= ' '.ADMIN_CONFIGURE_ICON.' '; } diff --git a/e107_plugins/siteinfo_menu/sitebutton_menu.php b/e107_plugins/siteinfo_menu/sitebutton_menu.php index 4bd5cbfe6..077f0418e 100644 --- a/e107_plugins/siteinfo_menu/sitebutton_menu.php +++ b/e107_plugins/siteinfo_menu/sitebutton_menu.php @@ -11,12 +11,12 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_plugins/siteinfo_menu/sitebutton_menu.php,v $ -| $Revision: 1.1 $ -| $Date: 2007-03-23 22:42:40 $ -| $Author: lisa_ $ +| $Revision: 1.2 $ +| $Date: 2009-08-16 23:58:31 $ +| $Author: e107coders $ +----------------------------------------------------------------------------+ */ if (!defined('e107_INIT')) { exit; } - -$ns->tablerender(SITEBUTTON_MENU_L1, "
\n".SITEBUTTON_MENU_L1."\n
", 'sitebutton'); +echo "parm=".$parm; //FIXME - just for testing only. +$ns->tablerender(SITEBUTTON_MENU_L1, "
\n".SITEBUTTON_MENU_L1."\n
", 'sitebutton'); ?> \ No newline at end of file diff --git a/e107_themes/_blank/_blank_config.php b/e107_themes/_blank/_blank_config.php index cbd7e9bc4..6e60ca083 100644 --- a/e107_themes/_blank/_blank_config.php +++ b/e107_themes/_blank/_blank_config.php @@ -1,57 +1,65 @@ add('sitetheme_pref', $theme_pref); + print_a($pref->get('sitetheme_pref')); + var_dump($pref->add('sitetheme_pref', $theme_pref)->save(FALSE)); + // save_prefs($pref['sitetheme_pref']); + } + + function config() + { + $var[0]['caption'] = "Sample configuration field"; + $var[0]['html'] = ""; + + $var[1]['caption'] = "Another Example"; + $var[1]['html'] = ""; + var_dump(e107::getThemePref()); + return $var; + } + + function help() + { + return " +
-function _blank_config() -{ - global $theme_pref; - - $var[0]['caption'] = "Sample configuration field"; - $var[0]['html'] = ""; - - $var[1]['caption'] = "Another Example"; - $var[1]['html'] = ""; - - return $var; -} - -function _blank_help() -{ - return " -
+ All the HTML that you want.

- All the HTML that you want.

+ Mauris sit amet arcu arcu. Curabitur ultrices, felis ac sagittis elementum, justo dolor posuere eros, eu sollicitudin eros mi nec leo. Quisque sapien justo, ultricies at sollicitudin non; rhoncus vel nisi. Fusce egestas orci a diam vestibulum ut gravida ipsum tristique. Nullam et turpis nibh; eu dapibus ligula. Fusce ornare massa ac ante tincidunt euismod varius augue volutpat? Suspendisse potenti. Morbi eget velit in nulla tristique ultricies suscipit consequat ligula. Integer quis arcu vel sem scelerisque gravida vitae vel tortor! Suspendisse tincidunt scelerisque nibh, quis consectetur mauris varius sit amet! Pellentesque et urna vel est rutrum viverra? - - Mauris sit amet arcu arcu. Curabitur ultrices, felis ac sagittis elementum, justo dolor posuere eros, eu sollicitudin eros mi nec leo. Quisque sapien justo, ultricies at sollicitudin non; rhoncus vel nisi. Fusce egestas orci a diam vestibulum ut gravida ipsum tristique. Nullam et turpis nibh; eu dapibus ligula. Fusce ornare massa ac ante tincidunt euismod varius augue volutpat? Suspendisse potenti. Morbi eget velit in nulla tristique ultricies suscipit consequat ligula. Integer quis arcu vel sem scelerisque gravida vitae vel tortor! Suspendisse tincidunt scelerisque nibh, quis consectetur mauris varius sit amet! Pellentesque et urna vel est rutrum viverra? - -

- +

+ -
+
- "; + "; + } } diff --git a/e107_themes/e107v4a/e107v4a_config.php b/e107_themes/e107v4a/e107v4a_config.php index 7eb80ad0c..f42357f39 100644 --- a/e107_themes/e107v4a/e107v4a_config.php +++ b/e107_themes/e107v4a/e107v4a_config.php @@ -1,31 +1,32 @@ "; + + $var[1]['caption'] = "Another Example"; + $var[1]['html'] = ""; + + return $var; + } } -function e107v4a_config() -{ - global $theme_pref; - - $var[0]['caption'] = "Sample configuration field"; - $var[0]['html'] = ""; - - $var[1]['caption'] = "Another Example"; - $var[1]['html'] = ""; - - return $var; -} - - - ?> \ No newline at end of file diff --git a/e107_themes/e107v4a/theme.php b/e107_themes/e107v4a/theme.php index 37d6631a8..becbe3895 100644 --- a/e107_themes/e107v4a/theme.php +++ b/e107_themes/e107v4a/theme.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_themes/e107v4a/theme.php,v $ -| $Revision: 1.5 $ -| $Date: 2009-08-14 22:31:09 $ +| $Revision: 1.6 $ +| $Date: 2009-08-16 23:58:33 $ | $Author: e107coders $ +----------------------------------------------------------------------------+ */ @@ -74,6 +74,7 @@ $HEADER['3_column'] = $FOOTER['3_column'] = " +{PLUGIN=user_menu/usertheme_menu} {SETSTYLE=rightmenu} {MENU=2} @@ -254,6 +255,7 @@ define(LINKALIGN, "left"); function tablestyle($caption, $text,$id, $dataArray) { // global $style; // Not needed - see $dataArray; + // print_a($dataArray); echo "