* code for replace menu lang.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
ALTER TABLE `zt_lang` ADD `systemMode` varchar(10) COLLATE 'utf8_general_ci' NOT NULL DEFAULT 'ALM';
|
||||
@@ -108,6 +108,17 @@ class router extends baseRouter
|
||||
|
||||
parent::loadLang($moduleName, $appName);
|
||||
|
||||
/* Replace main nav lang. */
|
||||
if($moduleName == 'common' and $this->dbh and !empty($this->config->db->name))
|
||||
{
|
||||
$customMenus = $this->dbh->query('SELECT * FROM' . TABLE_LANG . "WHERE `module`='common' AND `section`='mainNav' AND `lang`='{$this->clientLang}' AND `vision`='{$this->config->vision}' AND `systemMode`='{$this->config->systemMode}'")->fetchAll();
|
||||
foreach($customMenus as $menu)
|
||||
{
|
||||
$menuKey = $menu->key;
|
||||
if(isset($lang->mainNav->$menuKey)) $lang->mainNav->$menuKey = zget($lang->navIcons, $menuKey, '') . " {$menu->value}" . substr($lang->mainNav->$menuKey, strpos($lang->mainNav->$menuKey, '|'));
|
||||
}
|
||||
}
|
||||
|
||||
/* Merge from the db lang. */
|
||||
if($moduleName != 'common' and isset($lang->db->custom[$moduleName]))
|
||||
{
|
||||
@@ -284,6 +295,10 @@ class router extends baseRouter
|
||||
$lang->URCommon = isset($URPairs[$config->URSR]) ? $URPairs[$config->URSR] : reset($URPairs);
|
||||
$lang->SRCommon = isset($SRPairs[$config->URSR]) ? $SRPairs[$config->URSR] : reset($SRPairs);
|
||||
}
|
||||
|
||||
/* Replace common lang. */
|
||||
$customMenus = $this->dbh->query('SELECT * FROM' . TABLE_LANG . "WHERE `module`='common' AND `lang`='{$this->clientLang}' AND `section`='' AND `vision`='{$config->vision}' AND `systemMode`='{$config->systemMode}'")->fetchAll();
|
||||
foreach($customMenus as $menu) if(isset($lang->{$menu->key})) $lang->{$menu->key} = $menu->value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+62
-2
@@ -1117,8 +1117,9 @@ class commonModel extends model
|
||||
global $app, $lang, $config;
|
||||
|
||||
/* Set main menu by app tab and module. */
|
||||
self::setMainMenu();
|
||||
self::checkMenuVarsReplaced();
|
||||
static::replaceMenuLang();
|
||||
static::setMainMenu();
|
||||
static::checkMenuVarsReplaced();
|
||||
|
||||
$activeMenu = '';
|
||||
$tab = $app->tab;
|
||||
@@ -3535,6 +3536,65 @@ EOD;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace menu lang.
|
||||
*
|
||||
* @static
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public static function replaceMenuLang()
|
||||
{
|
||||
global $lang;
|
||||
foreach($lang->db->custom as $moduleName => $sectionMenus)
|
||||
{
|
||||
if(strpos($moduleName, 'Menu') === false) continue;
|
||||
|
||||
$isSecondMenu = strpos($moduleName, 'subMenu') === false;
|
||||
$moduleName = str_replace($isSecondMenu ? 'Menu' : 'subMenu', '', $moduleName);
|
||||
|
||||
foreach($sectionMenus as $section => $menus)
|
||||
{
|
||||
foreach($menus as $key => $value)
|
||||
{
|
||||
$settingMenu = null;
|
||||
/* Get second menu. */
|
||||
if($isSecondMenu)
|
||||
{
|
||||
$isDropMenu = strpos($section, 'dropMenu') !== false;
|
||||
if(!$isDropMenu)
|
||||
{
|
||||
if(!isset($lang->{$moduleName}->{$section})) break;
|
||||
if(is_object($lang->{$moduleName}->{$section}) and isset($lang->{$moduleName}->{$section}->{$key})) $settingMenu = &$lang->{$moduleName}->{$section}->{$key};
|
||||
if(is_array($lang->{$moduleName}->{$section}) and isset($lang->{$moduleName}->{$section}[$key])) $settingMenu = &$lang->{$moduleName}->{$section}[$key];
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Get drop menu in second menu. */
|
||||
$dropMenuKey = str_replace('dropMenu', '', $section);
|
||||
if(!isset($lang->{$moduleName}->menu->{$dropMenuKey}['dropMenu']->{$key})) break;
|
||||
$settingMenu = &$lang->{$moduleName}->menu->{$dropMenuKey}['dropMenu']->{$key};
|
||||
}
|
||||
}
|
||||
/* Get third menu. */
|
||||
elseif(isset($lang->{$moduleName}->menu->{$section}['subMenu']))
|
||||
{
|
||||
$subMenu = $lang->{$moduleName}->menu->{$section}['subMenu'];
|
||||
if(is_object($subMenu) and isset($subMenu->{$key})) $settingMenu = &$lang->{$moduleName}->menu->{$section}['subMenu']->{$key};
|
||||
if(is_array($subMenu) and isset($subMenu[$key])) $settingMenu = &$lang->{$moduleName}->menu->{$section}['subMenu'][$key];
|
||||
}
|
||||
|
||||
/* Set custom menu lang. */
|
||||
if(!empty($settingMenu))
|
||||
{
|
||||
if(is_string($settingMenu)) $settingMenu = $value . substr($settingMenu, strpos($settingMenu, '|'));
|
||||
if(is_array($settingMenu) and isset($settingMenu['link'])) $settingMenu['link'] = $value . substr($settingMenu['link'], strpos($settingMenu['link'], '|'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check valid row.
|
||||
*
|
||||
|
||||
@@ -23,7 +23,7 @@ class customModel extends model
|
||||
|
||||
try
|
||||
{
|
||||
$sql = $this->dao->select('*')->from(TABLE_LANG)->where('`lang`')->in("$currentLang,all")->andWhere('vision')->eq($this->config->vision)->orderBy('lang,id')->get();
|
||||
$sql = $this->dao->select('*')->from(TABLE_LANG)->where('`lang`')->in("$currentLang,all")->andWhere('vision')->eq($this->config->vision)->andWhere('systemMode')->eq($this->config->systemMode)->orderBy('lang,id')->get();
|
||||
$stmt = $this->dbh->query($sql);
|
||||
|
||||
$allCustomLang = array();
|
||||
|
||||
Reference in New Issue
Block a user