web.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. public static function printWebMainMenu()
  3. {
  4. global $app, $lang;
  5. ksort($lang->webMenuOrder);
  6. $currentModule = $app->rawModule;
  7. $webMainMenus = array();
  8. foreach($lang->webMenuOrder as $webMainMenuKey)
  9. {
  10. list($label, $moduleName, $methodName, $params) = explode('|', $lang->webMainNav->$webMainMenuKey);
  11. if(!common::hasPriv($moduleName, $methodName)) continue;
  12. $active = '';
  13. if($currentModule == $moduleName) $active = '1';
  14. if(isset($lang->navGroup->$currentModule) and ($lang->navGroup->$currentModule == $moduleName or $lang->navGroup->$currentModule == $webMainMenuKey)) $active = '1';
  15. if(isset($lang->webMenuGroup[$currentModule]) and $lang->webMenuGroup[$currentModule] == $webMainMenuKey) $active = '1';
  16. $webMainMenu = new stdclass();
  17. $webMainMenu->link = helper::createLink($moduleName, $methodName, $params);
  18. $webMainMenu->active = $active;
  19. $webMainMenu->title = $label;
  20. $webMainMenus[$webMainMenuKey] = $webMainMenu;
  21. }
  22. $maxBottomMenuCount = common::checkNotCN() ? 6 : 7;
  23. $i = 0;
  24. $count = count($webMainMenus);
  25. foreach($webMainMenus as $webMainMenuKey => $webMainMenu)
  26. {
  27. $i++;
  28. $active = $webMainMenu->active ? 'active' : '';
  29. if($count <= $maxBottomMenuCount or ($count > ($maxBottomMenuCount) && $i < ($maxBottomMenuCount)))
  30. {
  31. echo html::a($webMainMenu->link, "<div class='content'><div class='title'>{$webMainMenu->title}</div></div>", '', "class='item {$active}' data-id='$webMainMenuKey'");
  32. }
  33. if($count <= $maxBottomMenuCount) continue;
  34. if($i == ($maxBottomMenuCount))
  35. {
  36. $style = '{"position": "absolute", "top": "auto", "left": "auto", "bottom": 48, "right": 0}';
  37. echo "<a class='item' data-display='dropdown' data-placement='$style'>";
  38. echo "<div class='content'>";
  39. echo "<div class='title'>$lang->more</div>";
  40. echo "</div>\n</a>";
  41. echo "<div id='moreApp' class='list dropdown-menu'>";
  42. }
  43. if($i >= $maxBottomMenuCount)
  44. {
  45. echo "<a class='item text-center $active' href='{$webMainMenu->link}'>";
  46. echo "<div class='title'>{$webMainMenu->title}</div>";
  47. echo "</a>\n <div class='divider no-margin'></div>";
  48. }
  49. if($i == $count) echo "</div>";
  50. }
  51. }
  52. public static function printWebModuleMenu($moduleName)
  53. {
  54. global $app, $lang;
  55. ksort($lang->$moduleName->webMenuOrder);
  56. $groupName = isset($lang->webMenuGroup[$moduleName]) ? $lang->webMenuGroup[$moduleName] : '';
  57. $currentModule = strtolower($app->rawModule);
  58. $currentMethod = strtolower($app->rawMethod);
  59. $moduleWebMenus = array();
  60. foreach($lang->$moduleName->webMenuOrder as $webMenuKey)
  61. {
  62. if($groupName)
  63. {
  64. $moduleWebMenu = $lang->$groupName->webMenu->$webMenuKey;
  65. }
  66. else
  67. {
  68. $moduleWebMenu = $lang->$moduleName->webMenu->$webMenuKey;
  69. }
  70. $link = is_array($moduleWebMenu) ? $moduleWebMenu['link'] : $moduleWebMenu;
  71. list($label, $linkModuleName, $linkMethodName, $params) = explode('|', $link);
  72. if(!common::hasPriv($linkModuleName, $linkMethodName)) continue;
  73. if(is_string($moduleWebMenu))
  74. {
  75. $moduleWebMenu = array();
  76. $moduleWebMenu['link'] = $link;
  77. }
  78. $active = '';
  79. if($currentModule == $linkModuleName and $currentMethod == strtolower($linkMethodName)) $active = '1';
  80. if($currentModule == $linkModuleName and isset($moduleWebMenu['alias']) and stripos(",{$moduleWebMenu['alias']},", ",{$currentMethod},") !== false) $active = '1';
  81. if(isset($moduleWebMenu['subModule']) and strpos(",{$moduleWebMenu['subModule']},", ",{$currentModule},") !== false) $active = '1';
  82. $moduleWebMenu = new stdclass();
  83. $moduleWebMenu->link = helper::createLink($linkModuleName, $linkMethodName, $params);
  84. $moduleWebMenu->active = $active;
  85. $moduleWebMenu->title = $label;
  86. $moduleWebMenus[$webMenuKey] = $moduleWebMenu;
  87. }
  88. foreach($moduleWebMenus as $webMenuKey => $moduleWebMenu)
  89. {
  90. $active = $moduleWebMenu->active ? 'active' : '';
  91. echo html::a($moduleWebMenu->link, $moduleWebMenu->title, '', "class='$active' data-id='{$webMenuKey}'");
  92. }
  93. }