Instantly share code, notes, and snippets.
Created
June 8, 2012 07:36
-
Save nao-pon/2894248 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: html/modules/multiMenu/class/getMultiMenu.class.php | |
=================================================================== | |
--- html/modules/multiMenu/class/getMultiMenu.class.php (revision 570) | |
+++ html/modules/multiMenu/class/getMultiMenu.class.php (working copy) | |
@@ -7,19 +7,34 @@ | |
*/ | |
class getMultiMenu { | |
var $block = array(); | |
+ | |
+ private $db; | |
+ private $user; | |
+ private $mdl; | |
+ | |
+ function __construct() { | |
+ $root =& XCube_Root::getSingleton(); | |
- function getMultiMenu(){ | |
+ $this->user =& $root->mContext->mXoopsUser; | |
+ $this->db =& $root->mController->mDB; | |
+ if (is_object($root->mContext->mModule)) { | |
+ $this->mdl =& $root->mContext->mModule->mXoopsModule; | |
+ } else { | |
+ $this->mdl = NULL; | |
+ } | |
} | |
+ | |
function getblock( $options, $db_name ) { | |
- global $xoopsDB, $xoopsUser, $xoopsModule; | |
$myts =& MyTextSanitizer::getInstance(); | |
$block = array(); | |
$inum = 0; | |
- $group = is_object($xoopsUser) ? $xoopsUser->getGroups() : array(XOOPS_GROUP_ANONYMOUS); | |
- $db = $xoopsDB->prefix( $db_name ); | |
- $result = $xoopsDB->query("SELECT id, groups, link, title, target FROM ".$db." WHERE hide=0 ORDER BY weight ASC"); | |
- while ( $myrow = $xoopsDB->fetchArray($result) ) { | |
+ $group = is_object($this->user) ? $this->user->getGroups() : array(XOOPS_GROUP_ANONYMOUS); | |
+ $db = $this->db->prefix( $db_name ); | |
+ $sql = "SELECT id, groups, link, title, target FROM ".$db." WHERE hide=0 ORDER BY weight ASC"; | |
+ $result = $this->db->query($sql); | |
+ $parent_active = false; | |
+ while ( $myrow = $this->db->fetchArray($result) ) { | |
//$title = $myts->makeTboxData4Show($myrow["title"]); | |
$title = $myts->stripSlashesGPC($myrow["title"]); // by bluemoon | |
if ( !XOOPS_USE_MULTIBYTES ) { | |
@@ -28,164 +43,174 @@ | |
} | |
} | |
$title = preg_replace("/\[XOOPS_URL\]/",XOOPS_URL,$title); | |
+ $myrow['link'] = preg_replace("/\[XOOPS_URL\]/",XOOPS_URL,$myrow['link']); | |
+ $myrow['link'] = $this->replace_userinfo($myrow['link']); | |
$groups = explode(" ",$myrow['groups']); | |
if (count(array_intersect($group,$groups)) > 0) { | |
- // hacked by nobunobu start | |
- if (preg_match("/^[\s\-].*/",$myrow['link'])) { | |
- $isub =count($block['contents'][$inum-1]['sublinks']); | |
- if ($parent_active) { | |
- $block['contents'][$inum-1]['sublinks'][$isub]['name'] = $title; | |
- $link = preg_replace("/^[\s\-]/","",$myrow['link']); | |
-//fix by domifara eregi -> preg_match for php5.3+ | |
- if (preg_match("/^\[([a-z0-9_\-]+)\]((.)*)$/i", $link, $moduledir)) { | |
+ $imenu = array(); | |
+ $imenu['id'] = $myrow['id']; | |
+ $imenu['title'] = $title; | |
+ $imenu['target'] = $myrow['target']; | |
+ $imenu['sublinks'] = array(); | |
+ $imenu['link'] = ''; | |
+ $mid = 0; | |
+ $head = $myrow['link'][0]; | |
+ switch($head) { | |
+ case ' ': | |
+ case '-': | |
+ // hacked by nobunobu start | |
+ $link = substr($myrow['link'], 1); | |
+ $isub = (isset($block['contents']))? count($block['contents'][$inum-1]['sublinks']) : 0; | |
+ if ($parent_active) { | |
+ $block['contents'][$inum-1]['sublinks'][$isub]['name'] = $title; | |
+ if (preg_match('/^\[([a-z0-9_\-]+)\](.*)$/i', $link, $moduledir)) { | |
+ $module_handler = & xoops_gethandler( 'module' ); | |
+ $module =& $module_handler->getByDirname($moduledir[1]); | |
+ if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
+ $link = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
+ } | |
+ } | |
+ $block['contents'][$inum-1]['sublinks'][$isub]['url'] = $link; | |
+ } | |
+ continue 2; | |
+ // hacked by nobunobu end | |
+ break; | |
+ case '[': | |
+ // [module_name]xxxx.php?aa=aa&bb=bb | |
+ if (preg_match('/^\[([a-z0-9_\-]+)\](.*)$/i', $myrow['link'], $moduledir)) { | |
$module_handler = & xoops_gethandler( 'module' ); | |
$module =& $module_handler->getByDirname($moduledir[1]); | |
if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $link = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
+ $mid = $module->getVar('mid'); | |
+ $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
+ $parent_active = true; | |
} | |
} | |
- $block['contents'][$inum-1]['sublinks'][$isub]['url'] = $link; | |
- } | |
- continue; | |
- } | |
- // hacked by nobunobu end | |
- $imenu['id'] = $myrow['id']; | |
- $imenu['title'] = $title; | |
- $imenu['target'] = $myrow['target']; | |
- $imenu['sublinks'] = array(); | |
- | |
- // [module_name]xxxx.php?aa=aa&bb=bb | |
-//fix by domifara eregi -> preg_match for php5.3+ | |
- if (preg_match("/^\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) { | |
- $module_handler = & xoops_gethandler( 'module' ); | |
- $module =& $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $imenu['mid'] = $module->mid(); | |
- $parent_active = true; | |
- } | |
- | |
- // +[module_name]xxxx.php?aa=aa&bb=bb view submenu | |
-//fix by domifara eregi -> preg_match for php5.3+ | |
- }elseif (preg_match("/^\+\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) { | |
- $module_handler = & xoops_gethandler( 'module' ); | |
- $module =& $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $imenu['mid'] = $module->mid(); | |
- $parent_active = true; | |
+ break; | |
+ case '+': | |
+ // +[module_name]xxxx.php?aa=aa&bb=bb view submenu | |
+ if (preg_match('/^\+\[([a-z0-9_\-]+)\](.*)$/i', $myrow['link'], $moduledir)) { | |
+ $module_handler = & xoops_gethandler( 'module' ); | |
+ $module =& $module_handler->getByDirname($moduledir[1]); | |
+ if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
+ $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
+ $parent_active = true; | |
- $mid = $module->getVar('mid'); | |
- $sublinks =& $module->subLink(); | |
- if (count($sublinks) > 0) { | |
- foreach($sublinks as $sublink){ | |
- if ( !XOOPS_USE_MULTIBYTES ) { | |
- if (strlen($sublink['name']) >= $options[0]) { | |
- $sublink['name'] = $myts->makeTboxData4Show(substr($sublink['name'],0,($options[0]-1)))."..."; | |
+ $mid = $module->getVar('mid'); | |
+ $sublinks =& $module->subLink(); | |
+ if (count($sublinks) > 0) { | |
+ foreach($sublinks as $sublink){ | |
+ if ( !XOOPS_USE_MULTIBYTES ) { | |
+ if (strlen($sublink['name']) >= $options[0]) { | |
+ $sublink['name'] = $myts->makeTboxData4Show(substr($sublink['name'],0,($options[0]-1)))."..."; | |
+ } | |
+ } | |
+ $imenu['sublinks'][] = array('name' => $sublink['name'], 'url' => XOOPS_URL.'/modules/'.$moduledir[1].'/'.$sublink['url'] ); | |
} | |
} | |
- $imenu['sublinks'][] = array('name' => $sublink['name'], 'url' => XOOPS_URL.'/modules/'.$moduledir[1].'/'.$sublink['url'] ); | |
} | |
} | |
- } | |
- | |
- // @[module_name]xxxx.php?aa=aa&bb=bb view submennu | |
-//fix by domifara eregi -> preg_match for php5.3+ | |
- }elseif (preg_match("/^\@\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) { | |
- $module_handler = & xoops_gethandler( 'module' ); | |
- $module =& $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $imenu['mid'] = $module->mid(); | |
+ break; | |
+ case '@': | |
+ if (preg_match('/^\@\[([a-z0-9_\-]+)\](.*)$/i', $myrow['link'], $moduledir)) { | |
+ $module_handler = & xoops_gethandler( 'module' ); | |
+ $module =& $module_handler->getByDirname($moduledir[1]); | |
+ if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
+ $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $mid = $module->getVar('mid'); | |
- $sublinks =& $module->subLink(); | |
+ $mid = $module->getVar('mid'); | |
+ $sublinks =& $module->subLink(); | |
- // hacked by nobunobu start | |
- if ( (!empty($xoopsModule)) && ($moduledir[1] == $xoopsModule->getVar('dirname')) ){ | |
- $parent_active = true; | |
- if (count($sublinks) > 0) { | |
- foreach($sublinks as $sublink){ | |
- if ( !XOOPS_USE_MULTIBYTES ) { | |
- if (strlen($sublink['name']) >= $options[0]) { | |
- $sublink['name'] = $myts->makeTboxData4Show(substr($sublink['name'],0,($options[0]-1)))."..."; | |
+ // hacked by nobunobu start | |
+ if ( (!empty($this->mdl)) && ($moduledir[1] == $this->mdl->get('dirname')) ){ | |
+ $parent_active = true; | |
+ if (count($sublinks) > 0) { | |
+ foreach($sublinks as $sublink){ | |
+ if ( !XOOPS_USE_MULTIBYTES ) { | |
+ if (strlen($sublink['name']) >= $options[0]) { | |
+ $sublink['name'] = $myts->makeTboxData4Show(substr($sublink['name'],0,($options[0]-1)))."..."; | |
+ } | |
+ } | |
+ $imenu['sublinks'][] = array('name' => $sublink['name'], 'url' => XOOPS_URL.'/modules/'.$moduledir[1].'/'.$sublink['url'] ); | |
} | |
} | |
- $imenu['sublinks'][] = array('name' => $sublink['name'], 'url' => XOOPS_URL.'/modules/'.$moduledir[1].'/'.$sublink['url'] ); | |
+ } else { | |
+ $parent_active = false; | |
+ // hacked by nobunobu end | |
} | |
} | |
- } else { | |
- $parent_active = false; | |
- // hacked by nobunobu end | |
} | |
- } | |
- | |
- // &[module_name]xxxx.php?aa=aa&bb=bb view submenu // hacked by nobunobu | |
-//fix by domifara eregi -> preg_match for php5.3+ | |
- } elseif (preg_match("/^\&\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) { | |
- $module_handler = & xoops_gethandler( 'module' ); | |
- $module =& $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $imenu['mid'] = $module->mid(); | |
+ break; | |
+ case '&': | |
+ // &[module_name]xxxx.php?aa=aa&bb=bb view submenu // hacked by nobunobu | |
+ if (preg_match('/^\&\[([a-z0-9_\-]+)\](.*)$/i', $myrow['link'], $moduledir)) { | |
+ $module_handler = & xoops_gethandler( 'module' ); | |
+ $module =& $module_handler->getByDirname($moduledir[1]); | |
+ if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
+ $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $mid = $module->getVar('mid'); | |
- if ( (!empty($xoopsModule)) && ($moduledir[1] == $xoopsModule->getVar('dirname')) ){ | |
- $parent_active = true; | |
- } else { | |
- $parent_active = false; | |
+ $mid = $module->getVar('mid'); | |
+ if ( (!empty($this->mdl)) && ($moduledir[1] == $this->mdl->get('dirname')) ){ | |
+ $parent_active = true; | |
+ } else { | |
+ $parent_active = false; | |
+ } | |
+ } | |
} | |
- } | |
- } else { | |
- $imenu['link'] = $myrow['link']; | |
+ break; | |
+ default: | |
+ $imenu['link'] = $myrow['link']; | |
} | |
- if (isset($imenu['link'])){ | |
- $slash = substr( $imenu['link'], strlen($imenu['link'])-1, 1 ); | |
- if ( $slash == '/' ) { | |
- $imenu['link'] .= "index.php"; | |
+ if ($imenu['link']) { | |
+ if (substr($imenu['link'], -1) === '/') { | |
+ $imenu['link'] .= 'index.php'; | |
} | |
+ if ($mid) { | |
+ $imenu['mid'] = $mid; | |
+ } | |
+ $block['contents'][$inum] = $imenu; | |
+ $inum++; | |
} | |
- $block['contents'][$inum] = $imenu; | |
- $inum++; | |
} | |
} | |
+ //var_dump($block);die; | |
$this->block = $block; | |
return $block; | |
} | |
function replace_userinfo($str) { | |
- global $xoopsUser; | |
- if ($xoopsUser){ | |
- $str = preg_replace("/\[xoops_uid\]/",$xoopsUser->uid(),$str); | |
+ if (is_object($this->user)) { | |
+ $str = preg_replace("/\[xoops_uid\]/",$this->user->uid(),$str); | |
} | |
return $str; | |
} | |
function getModuleConfig( $name, $mid ) { | |
- $ret = NULL; | |
+ $ret = NULL; | |
$config_handler =& xoops_gethandler('config'); | |
$config =& $config_handler->getConfigsByCat(0, $mid); | |
if ( isset($config[$name]) ) $ret = preg_split('/,|[\r\n]+/',$config[$name]); | |
return $ret; | |
} | |
function assign_module_css($css_file) { | |
- global $xoopsTpl; | |
- | |
+ $root =& XCube_Root::getSingleton(); | |
+ $renderSystem =& $root->getRenderSystem($root->mContext->mBaseRenderSystemName); | |
$css_file = preg_replace("/\[XOOPS_URL\]/i",XOOPS_URL,$css_file); | |
- $header = '<link rel="stylesheet" type="text/css" media="all" href="'.$css_file.'" />'; | |
- $xoopsTpl->assign('xoops_block_header', $header); | |
+ $header = $renderSystem->mXoopsTpl->get_template_vars('xoops_block_header'); | |
+ $header .= '<link rel="stylesheet" type="text/css" media="all" href="'.$css_file.'" />'; | |
+ $renderSystem->mXoopsTpl->assign('xoops_block_header', $header); | |
} | |
function assign_css() { | |
- $module_handler = & xoops_gethandler( 'module' ); | |
- $module =& $module_handler->getByDirname("multiMenu"); | |
- $mid = $module->getVar('mid'); | |
- $css_file = $this->getModuleConfig('css_file',$mid); | |
- $this->assign_module_css($css_file[0]); | |
+ $ch=& xoops_gethandler('config'); | |
+ $mconf = $ch->getConfigsByDirname('multiMenu'); | |
+ $css_file = $mconf['css_file']; | |
+ if (! empty($css_file)) { | |
+ $this->assign_module_css($css_file); | |
+ } | |
} | |
function theme_menu($modname="multiMenu") { | |
- $module_handler = & xoops_gethandler( 'module' ); | |
- $module = $module_handler->getByDirname($modname); | |
- $mid = $module->getVar('mid'); | |
- $theme_menu = $this->getModuleConfig('theme_menu',$mid); | |
- return intval($theme_menu[0]); | |
+ $ch=& xoops_gethandler('config'); | |
+ $mconf = $ch->getConfigsByDirname($modname); | |
+ $theme_menu = $mconf['theme_menu']; | |
+ return intval($theme_menu); | |
} | |
} | |
?> | |
\ No newline at end of file | |
Index: html/modules/multiMenu/xoops_version.php | |
=================================================================== | |
--- html/modules/multiMenu/xoops_version.php (revision 570) | |
+++ html/modules/multiMenu/xoops_version.php (working copy) | |
@@ -39,7 +39,7 @@ | |
$modversion['blocks'][1]['name'] = _IM_MULTIMENU_NAME; | |
$modversion['blocks'][1]['description'] = "link menu"; | |
$modversion['blocks'][1]['show_func'] = "a_multimenu_show"; | |
-$modversion['blocks'][1]['edit_func'] = "a_multimenu_edit"; | |
+$modversion['blocks'][1]['edit_func'] = "b_multimenu_edit"; | |
$modversion['blocks'][1]['options'] = "40"; | |
$modversion['blocks'][1]['template'] = 'multimenu_block01.html'; | |
@@ -55,7 +55,7 @@ | |
$modversion['blocks'][3]['name'] = _IM_MULTIMENU_NAME_2; | |
$modversion['blocks'][3]['description'] = "link menu"; | |
$modversion['blocks'][3]['show_func'] = "c_multimenu_show"; | |
-$modversion['blocks'][3]['edit_func'] = "c_multimenu_edit"; | |
+$modversion['blocks'][3]['edit_func'] = "b_multimenu_edit"; | |
$modversion['blocks'][3]['options'] = "40"; | |
$modversion['blocks'][3]['template'] = 'multimenu_block03.html'; | |
@@ -63,7 +63,7 @@ | |
$modversion['blocks'][4]['name'] = _IM_MULTIMENU_NAME_3; | |
$modversion['blocks'][4]['description'] = "link menu"; | |
$modversion['blocks'][4]['show_func'] = "d_multimenu_show"; | |
-$modversion['blocks'][4]['edit_func'] = "d_multimenu_edit"; | |
+$modversion['blocks'][4]['edit_func'] = "b_multimenu_edit"; | |
$modversion['blocks'][4]['options'] = "40"; | |
$modversion['blocks'][4]['template'] = 'multimenu_block04.html'; | |
@@ -71,7 +71,7 @@ | |
$modversion['blocks'][5]['name'] = _IM_MULTIMENU_NAME_4; | |
$modversion['blocks'][5]['description'] = "link menu"; | |
$modversion['blocks'][5]['show_func'] = "e_multimenu_show"; | |
-$modversion['blocks'][5]['edit_func'] = "e_multimenu_edit"; | |
+$modversion['blocks'][5]['edit_func'] = "b_multimenu_edit"; | |
$modversion['blocks'][5]['options'] = "40"; | |
$modversion['blocks'][5]['template'] = 'multimenu_block05.html'; | |
@@ -79,7 +79,7 @@ | |
$modversion['blocks'][6]['name'] = _IM_MULTIMENU_NAME_5; | |
$modversion['blocks'][6]['description'] = "link menu"; | |
$modversion['blocks'][6]['show_func'] = "f_multimenu_show"; | |
-$modversion['blocks'][6]['edit_func'] = "f_multimenu_edit"; | |
+$modversion['blocks'][6]['edit_func'] = "b_multimenu_edit"; | |
$modversion['blocks'][6]['options'] = "40"; | |
$modversion['blocks'][6]['template'] = 'multimenu_block06.html'; | |
@@ -87,7 +87,7 @@ | |
$modversion['blocks'][7]['name'] = _IM_MULTIMENU_NAME_6; | |
$modversion['blocks'][7]['description'] = "link menu"; | |
$modversion['blocks'][7]['show_func'] = "g_multimenu_show"; | |
-$modversion['blocks'][7]['edit_func'] = "g_multimenu_edit"; | |
+$modversion['blocks'][7]['edit_func'] = "b_multimenu_edit"; | |
$modversion['blocks'][7]['options'] = "40"; | |
$modversion['blocks'][7]['template'] = 'multimenu_block07.html'; | |
@@ -95,7 +95,7 @@ | |
$modversion['blocks'][8]['name'] = _IM_MULTIMENU_NAME_7; | |
$modversion['blocks'][8]['description'] = "link menu"; | |
$modversion['blocks'][8]['show_func'] = "h_multimenu_show"; | |
-$modversion['blocks'][8]['edit_func'] = "h_multimenu_edit"; | |
+$modversion['blocks'][8]['edit_func'] = "b_multimenu_edit"; | |
$modversion['blocks'][8]['options'] = "40"; | |
$modversion['blocks'][8]['template'] = 'multimenu_block08.html'; | |
@@ -104,7 +104,7 @@ | |
'name' => _IM_MULTIMENU_FLOW, | |
'description' => "flow menu", | |
'show_func' => "flow_menu_show", | |
- 'edit_func' => "flow_menu_edit", | |
+ 'edit_func' => "b_multimenu_edit", | |
'options' => "40", | |
'template' => 'multimenu_block99.html' | |
); | |
Index: html/modules/multiMenu/blocks/multimenu.php | |
=================================================================== | |
--- html/modules/multiMenu/blocks/multimenu.php (revision 570) | |
+++ html/modules/multiMenu/blocks/multimenu.php (working copy) | |
@@ -1,214 +1,52 @@ | |
<?php | |
-if (!defined('XOOPS_ROOT_PATH')) exit(); | |
+/* | |
+ * 2011/09/09 16:45 | |
+ * Multi-Menu block function | |
+ * copyright(c) Yoshi Sakai at Bluemoon inc 2011 | |
+ * GPL ver3.0 All right reserved. | |
+ */ | |
function a_multimenu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu01' ); | |
- return $block; | |
+ return b_multimenu_show_base($options, '01'); | |
} | |
-function a_multimenu_edit($options) { | |
- $form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
- return $form; | |
-} | |
- | |
- | |
function b_multimenu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu02' ); | |
- return $block; | |
+ return b_multimenu_show_base($options, '02'); | |
} | |
-function b_multimenu_edit($options) { | |
- $form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
- return $form; | |
-} | |
- | |
- | |
function c_multimenu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu03' ); | |
- return $block; | |
-} | |
-function c_multimenu_edit($options) { | |
- $form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
- return $form; | |
+ return b_multimenu_show_base($options, '03'); | |
} | |
- | |
- | |
function d_multimenu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu04' ); | |
- return $block; | |
+ return b_multimenu_show_base($options, '04'); | |
} | |
-function d_multimenu_edit($options) { | |
- $form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
- return $form; | |
-} | |
- | |
- | |
function e_multimenu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu05' ); | |
- return $block; | |
-} | |
-function e_multimenu_edit($options) { | |
- $form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
- return $form; | |
+ return b_multimenu_show_base($options, '05'); | |
} | |
- | |
function f_multimenu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu06' ); | |
- return $block; | |
-} | |
-function f_multimenu_edit($options) { | |
- $form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
- return $form; | |
+ return b_multimenu_show_base($options, '06'); | |
} | |
- | |
function g_multimenu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu07' ); | |
- return $block; | |
+ return b_multimenu_show_base($options, '07'); | |
} | |
-function g_multimenu_edit($options) { | |
- $form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
- return $form; | |
-} | |
- | |
function h_multimenu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu08' ); | |
- return $block; | |
+ return b_multimenu_show_base($options, '08'); | |
} | |
-function h_multimenu_edit($options) { | |
- $form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
- return $form; | |
+function flow_menu_show($options) { | |
+ return b_multimenu_show_base($options, '99'); | |
} | |
-function flow_menu_show($options) { | |
- $block = getMultiMenu( $options, 'multimenu99' ); | |
+function b_multimenu_show_base($options, $num) { | |
+ include_once XOOPS_ROOT_PATH . '/modules/multiMenu/class/getMultiMenu.class.php'; | |
+ static $gmm; | |
+ if (! $gmm) { | |
+ $gmm = new getMultiMenu(); | |
+ $gmm->assign_css(); | |
+ } | |
+ $block = $gmm->getblock( $options, 'multimenu' . $num ); | |
return $block; | |
} | |
-function flow_menu_edit($options) { | |
+ | |
+function b_multimenu_edit($options) { | |
$form = _BM_MULTIMENU_CHARS." <input type='text' name='options[]' value='".$options[0]."' /> "._BM_MULTIMENU_LENGTH.""; | |
return $form; | |
} | |
- | |
-/** | |
- * | |
- * @ MultiMenu block main function | |
- * | |
- */ | |
-function getMultiMenu( $options, $db_name ) | |
-{ | |
- global $xoopsDB, $xoopsUser, $xoopsModule; | |
- $myts = MyTextSanitizer::getInstance(); | |
- $block = array(); | |
- $inum = 0; | |
- $group = is_object($xoopsUser) ? $xoopsUser->getGroups() : array(XOOPS_GROUP_ANONYMOUS); | |
- $db = $xoopsDB->prefix( $db_name ); | |
- $result = $xoopsDB->query("SELECT groups, link, title, target FROM ".$db." WHERE hide=0 ORDER BY weight ASC"); | |
- while ( $myrow = $xoopsDB->fetchArray($result) ) { | |
- $title = $myts->makeTboxData4Show($myrow["title"]); | |
- if ( !XOOPS_USE_MULTIBYTES ) { | |
- if (strlen($myrow['title']) >= $options[0]) { | |
- $title = $myts->makeTboxData4Show(substr($myrow['title'],0,($options[0]-1)))."..."; | |
- } | |
- } | |
- $groups = explode(" ",$myrow['groups']); | |
- if (count(array_intersect($group,$groups)) > 0) { | |
- // hacked by nobunobu start | |
- if (preg_match("/^[\s\-].*/",$myrow['link']) && inum > 0) { | |
- $isub =count($block['contents'][$inum-1]['sublinks']); | |
- if ($parent_active) { | |
- $block['contents'][$inum-1]['sublinks'][$isub]['name'] = $title; | |
- $link = preg_replace("/^[\s\-]/","",$myrow['link']); | |
- //fix by domifara eregi -> preg_match for php5.3+ | |
- if (preg_match("/^\[([a-z0-9_\-]+)\]((.)*)$/i", $link, $moduledir)) { | |
- $module_handler = xoops_gethandler( 'module' ); | |
- $module =& $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $link = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- } | |
- } | |
- $block['contents'][$inum-1]['sublinks'][$isub]['url'] = $link; | |
- } | |
- continue; | |
- } | |
- // hacked by nobunobu end | |
- $imenu['title'] = $title; | |
- $imenu['target'] = $myrow['target']; | |
- $imenu['sublinks'] = array(); | |
- // [module_name]xxxx.php?aa=aa&bb=bb | |
- //fix by domifara eregi -> preg_match for php5.3+ | |
- if (preg_match("/^\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) { | |
- $module_handler = xoops_gethandler( 'module' ); | |
- $module = $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $parent_active = true; | |
- } | |
- // +[module_name]xxxx.php?aa=aa&bb=bb view submenu | |
- //fix by domifara eregi -> preg_match for php5.3+ | |
- }elseif (preg_match("/^\+\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) { | |
- $module_handler = xoops_gethandler( 'module' ); | |
- $module = $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $parent_active = true; | |
- $mid = $module->getVar('mid'); | |
- $sublinks = $module->subLink(); | |
- if (count($sublinks) > 0) { | |
- foreach($sublinks as $sublink){ | |
- if ( !XOOPS_USE_MULTIBYTES ) { | |
- if (strlen($sublink['name']) >= $options[0]) { | |
- $sublink['name'] = $myts->makeTboxData4Show(substr($sublink['name'],0,($options[0]-1)))."..."; | |
- } | |
- } | |
- $imenu['sublinks'][] = array('name' => $sublink['name'], 'url' => XOOPS_URL.'/modules/'.$moduledir[1].'/'.$sublink['url'] ); | |
- } | |
- } | |
- } | |
- // @[module_name]xxxx.php?aa=aa&bb=bb view submennu | |
- //fix by domifara eregi -> preg_match for php5.3+ | |
- }elseif (preg_match("/^\@\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) { | |
- $module_handler = xoops_gethandler( 'module' ); | |
- $module = $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $mid = $module->getVar('mid'); | |
- $sublinks = $module->subLink(); | |
- // hacked by nobunobu start | |
- if ( (!empty($xoopsModule)) && ($moduledir[1] == $xoopsModule->getVar('dirname')) ){ | |
- $parent_active = true; | |
- if (count($sublinks) > 0) { | |
- foreach($sublinks as $sublink){ | |
- if ( !XOOPS_USE_MULTIBYTES ) { | |
- if (strlen($sublink['name']) >= $options[0]) { | |
- $sublink['name'] = $myts->makeTboxData4Show(substr($sublink['name'],0,($options[0]-1)))."..."; | |
- } | |
- } | |
- $imenu['sublinks'][] = array('name' => $sublink['name'], 'url' => XOOPS_URL.'/modules/'.$moduledir[1].'/'.$sublink['url'] ); | |
- } | |
- } | |
- } else { | |
- $parent_active = false; | |
- // hacked by nobunobu end | |
- } | |
- } | |
- // &[module_name]xxxx.php?aa=aa&bb=bb view submenu // hacked by nobunobu | |
- //fix by domifara eregi -> preg_match for php5.3+ | |
- } elseif (preg_match("/^\&\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) { | |
- $module_handler = xoops_gethandler( 'module' ); | |
- $module = $module_handler->getByDirname($moduledir[1]); | |
- if ( is_object( $module ) && $module->getVar( 'isactive' ) ) { | |
- $imenu['link'] = XOOPS_URL."/modules/".$moduledir[1]."/".$moduledir[2]; | |
- $mid = $module->getVar('mid'); | |
- if ( (!empty($xoopsModule)) && ($moduledir[1] == $xoopsModule->getVar('dirname')) ){ | |
- $parent_active = true; | |
- } else { | |
- $parent_active = false; | |
- } | |
- } | |
- } else { | |
- $imenu['link'] = $myrow['link']; | |
- } | |
- $block['contents'][] = $imenu; | |
- } | |
- $inum++; | |
- } | |
- return $block; | |
-} | |
?> | |
\ No newline at end of file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment