* code for bug #21655.

This commit is contained in:
王怡栋
2022-04-15 11:20:28 +08:00
parent 90f8ad4b90
commit b9ebcd6944
6 changed files with 65 additions and 17 deletions
+41 -1
View File
@@ -991,6 +991,7 @@ class commonModel extends model
/* Set main menu by app tab and module. */
self::setMainMenu();
self::checkMenuVarsReplaced();
$activeMenu = '';
$tab = $app->tab;
@@ -2232,7 +2233,8 @@ EOD;
else
{
$referer = helper::safe64Encode($this->app->getURI(true));
return print(js::locate(helper::createLink('user', 'login', "referer=$referer")));
print(js::locate(helper::createLink('user', 'login', "referer=$referer")));
helper::end();
}
}
@@ -3059,6 +3061,44 @@ EOD;
unset($lang->$moduleName->homeMenu);
}
/**
* Check menuVars replaced.
*
* @static
* @access public
* @return void
*/
public static function checkMenuVarsReplaced()
{
global $app, $lang;
$tab = $app->tab;
$varsReplaced = true;
foreach($lang->menu as $menuKey => $menu)
{
if(isset($menu['link']) and strpos($menu['link'], '%s') !== false) $varsReplaced = false;
if(!isset($menu['link']) and is_string($menu) and strpos($menu, '%s') !== false) $varsReplaced = false;
if(!$varsReplaced) break;
}
if(!$varsReplaced and strpos("|program|product|project|execution|qa|", "|{$tab}|") !== false)
{
$isTutorialMode = common::isTutorialMode();
$currentModule = $isTutorialMode ? $app->moduleName : $app->rawModule;
if(isset($lang->$currentModule->menu))
{
$lang->menu = isset($lang->$currentModule->menu) ? $lang->$currentModule->menu : array();
$lang->menuOrder = isset($lang->$currentModule->menuOrder) ? $lang->$currentModule->menuOrder : array();
$app->tab = zget($lang->navGroup, $currentModule);
}
else
{
self::setMenuVars($tab, (int)$app->session->$tab);
}
}
}
/*
* Replace the %s of one key of a menu by objectID or $params.
* @param object $menu