diff --git a/module/custom/js/ajaxmenu.js b/module/custom/js/ajaxmenu.js index 89fecff85d..5d28e83f53 100644 --- a/module/custom/js/ajaxmenu.js +++ b/module/custom/js/ajaxmenu.js @@ -109,7 +109,6 @@ $(function() var data = {name: item.name, order: parseInt(item.order)}; if(item.hidden) data.hidden = true; if(item.float) data.float = item.float; - if(item.buildLink) data.buildLink = item.buildLink; return data; }); }; diff --git a/module/custom/model.php b/module/custom/model.php index afa024a71e..a9e253e230 100644 --- a/module/custom/model.php +++ b/module/custom/model.php @@ -198,6 +198,8 @@ class customModel extends model foreach($allMenu as $name => $item) { + if(is_object($item)) $item = (array)$item; + $label = ''; $module = ''; $method = ''; @@ -205,7 +207,6 @@ class customModel extends model $fixed = ''; $link = (is_array($item) and isset($item['link'])) ? $item['link'] : $item; - $link = (is_object($item) and isset($item->buildLink)) ? $item->buildLink : $link; /* The variable of item has not link and is not link then ignore it. */ if(!is_string($link)) continue; @@ -230,7 +231,6 @@ class customModel extends model if(isset($item['subModule'])) $itemLink['subModule'] = $item['subModule']; if(isset($item['alias'])) $itemLink['alias'] = $item['alias']; if(isset($item['target'])) $itemLink['target'] = $item['target']; - } } @@ -239,11 +239,6 @@ class customModel extends model if(isset($item['float'])) $float = $item['float']; if(isset($item['fixed'])) $fixed = $item['fixed']; } - if(is_object($item)) - { - if(isset($item->float)) $float = $item->float; - if(isset($item->fixed)) $fixed = $item->fixed; - } $hidden = !$fixed && isset($customMenuMap[$name]) && isset($customMenuMap[$name]->hidden) && $customMenuMap[$name]->hidden; if(strpos($name, 'QUERY') === 0 and !isset($customMenuMap[$name])) $hidden = true; @@ -256,7 +251,6 @@ class customModel extends model if($float) $menuItem->float = $float; if($fixed) $menuItem->fixed = $fixed; if($hidden) $menuItem->hidden = $hidden; - if(is_object($item) and isset($item->buildLink)) $menuItem->buildLink = $item->buildLink; if($isTutorialMode) $menuItem->tutorial = true; while(isset($menu[$menuItem->order])) $menuItem->order++; diff --git a/module/doc/control.php b/module/doc/control.php index 6e232092a5..47939b5b50 100644 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -573,13 +573,12 @@ class doc extends control foreach($customMenus as $i => $customMenu) { - if(isset($customMenu->buildLink) and strpos($customMenu->buildLink, "|libID=$libID") !== false) unset($customMenus[$i]); + if(isset($customMenu->name) and $customMenu->name == "custom{$libID}") unset($customMenus[$i]); } $lib = $this->doc->getLibByID($libID); $customMenu = new stdclass(); $customMenu->name = "custom{$libID}"; - $customMenu->buildLink = "$lib->name|doc|browse|libID=$libID"; $customMenu->order = count($customMenus); $customMenu->float = 'right'; if($type == 'fixed') $customMenus[] = $customMenu; diff --git a/module/doc/model.php b/module/doc/model.php index 1f05963dac..b772741ecc 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -24,6 +24,44 @@ class docModel extends model */ public function setMenu($libID = 0, $moduleID = 0, $crumb = '') { + if(isset($this->config->customMenu->doc)) + { + $customMenu = json_decode($this->config->customMenu->doc); + $menuLibIdList = array(); + foreach($customMenu as $i => $menu) + { + if(strpos($menu->name, 'custom') === 0) + { + $menuLibID = (int)substr($menu->name, 6); + if($menuLibID) $menuLibIdList[$i] = $menuLibID; + } + } + + $productIdList = array(); + $projectIdList = array(); + if($menuLibIdList) + { + $libs = $this->dao->select('id,name,product,project')->from(TABLE_DOCLIB)->where('id')->in($menuLibIdList)->fetchAll('id'); + foreach($libs as $lib) + { + if($lib->product) $productIdList[] = $lib->product; + if($lib->project) $productIdList[] = $lib->project; + } + } + $products = $productIdList ? $this->dao->select('id,name')->from(TABLE_PRODUCT)->where('id')->in($productIdList)->fetchPairs('id', 'name') : array(); + $projects = $projectIdList ? $this->dao->select('id,name')->from(TABLE_PROJECT)->where('id')->in($projectIdList)->fetchPairs('id', 'name') : array(); + foreach($menuLibIdList as $i => $menuLibID) + { + $lib = $libs[$menuLibID]; + $libName = ''; + if($lib->product) $libName = isset($products[$lib->product]) ? $products[$lib->product] . '/' : ''; + if($lib->project) $libName = isset($projects[$lib->project]) ? $projects[$lib->project] . '/' : ''; + $libName .= $lib->name; + $customMenu[$i]->link = "{$libName}|doc|browse|libID={$menuLibID}"; + } + $this->config->customMenu->doc = json_encode($customMenu); + } + $this->app->loadLang('project'); $selectHtml = "{$this->lang->doclib->all} "; $selectHtml .= "