* Add function for left menu tree.

This commit is contained in:
caoyanyi
2023-02-17 14:08:57 +08:00
parent fc6d8cd821
commit 9eb9981ae7
9 changed files with 107 additions and 31 deletions
+78 -10
View File
@@ -401,19 +401,12 @@ class devModel extends model
$lang = $defaultLang->$module->menu->$method['subMenu'];
}
foreach($lang as $linkKey => $link)
$menus = $this->getLinkTitle($lang);
foreach($menus as $linkKey => $menu)
{
if($type == 'first' and in_array($linkKey, $this->config->dev->disableMainMenu)) continue;
if(is_array($link))
{
if(!isset($link['link'])) continue;
$link = $link['link'];
}
$link = strip_tags($link);
$link = explode('|', $link);
$originalLangs[$langKey . $linkKey] = trim($link[0]);
$originalLangs[$langKey . $linkKey] = $menu;
}
return $originalLangs;
@@ -550,4 +543,79 @@ class devModel extends model
return $lang;
}
/**
* Get menu tree.
*
* @param string $type
* @param string $module
* @param string $method
* @access public
* @return array
*/
public function getMenuTree($type = 'second', $module = '', $method = '')
{
$menuTree = array();
if(!in_array($type, $this->config->dev->navTypes)) return $menuTree;
$lang = new stdclass();
if($type == 'second')
{
if(empty($module)) $module = 'my';
$menus = $this->getLinkTitle($this->lang->mainNav);
$menusPinYin = common::convert2Pinyin($menus);
foreach($menus as $menuKey => $menu)
{
$menuItem = new stdclass();
$menuItem->title = $menu;
$menuItem->module = $menuKey;
$menuItem->method = '';
$menuItem->active = ($module == $menuKey and $method == '') ? 1 : 0;
$menuItem->key = zget($menusPinYin, $menu, '');
$menuItem->children = array();
if($menuKey == 'project')
{
$menusPinYin = common::convert2Pinyin($this->lang->dev->projectMenu);
foreach($this->config->dev->projectMenus as $subMenuKey)
{
$subMenu = new stdClass();
$subMenu->title = $this->lang->dev->projectMenu[$subMenuKey];
$subMenu->key = zget($menusPinYin, $this->lang->dev->projectMenu[$subMenuKey], '');
$subMenu->module = $subMenuKey;
$subMenu->method = '';
$subMenu->active = ($module == $subMenuKey and $method == '') ? 1 : 0;
$menuItem->children[] = $subMenu;
}
}
$menuTree[] = $menuItem;
}
}
return $menuTree;
}
/**
* Get links title.
*
* @param array $menus
* @access public
* @return void
*/
public function getLinkTitle($menus)
{
$linksTitle = array();
foreach($menus as $menuKey => $menu)
{
if(is_array($menu) and !isset($menu['link'])) continue;
$link = is_array($menu) ? strip_tags($menu['link']) : strip_tags($menu);
$link = explode('|', $link);
$linksTitle[$menuKey] = trim($link[0]);
}
return $linksTitle;
}
}