XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
menu.admin.view.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
11 class menuAdminView extends menu
12 {
13  var $tmpMenu = null;
14 
19  function init()
20  {
21  $this->setTemplatePath($this->module_path.'tpl');
22  }
23 
24 
30  {
31  Context::loadLang(_XE_PATH_.'modules/document/lang/');
32  Context::loadLang(_XE_PATH_.'modules/layout/lang/');
33  Context::loadLang(_XE_PATH_.'modules/autoinstall/lang/');
34  $site_srl = Context::get('site_srl');
35  $site_module_info = Context::get('site_module_info');
36 
37  if(!$site_srl)
38  {
39  if($logged_info->is_admin == 'Y' && !$site_keyword) $site_srl = 0;
40  else $site_srl = (int)$site_module_info->site_srl;
41  }
42 
43  // process for unlinked modules
44  if($site_srl == 0)
45  {
46  $oMenuController = getAdminController('menu');
47  $oMenuController->linkAllModuleInstancesToSitemap();
48  }
49 
50  $oAdmin = getClass('admin');
51 
52  $oMenuAdminModel = getAdminModel('menu');
53  $menuListFromDB = $oMenuAdminModel->getMenus();
54  if(is_array($menuListFromDB)) $output = array_reverse($menuListFromDB);
55 
56  $menuList = array();
57  if(is_array($output))
58  {
59  $menuItems = array();
60  foreach($output as $key=>$value)
61  {
62  if($value->title == $oAdmin->getAdminMenuName()) unset($output[$key]);
63  else
64  {
65  unset($menu, $menuItems);
66  //$value->xml_file = sprintf('./files/cache/menu/%s.xml.php',$value->menu_srl);
67  $value->php_file = sprintf(_XE_PATH_ . 'files/cache/menu/%s.php',$value->menu_srl);
68  if(file_exists($value->php_file)) include($value->php_file);
69 
70  if(count($menu->list)>0)
71  {
72  foreach($menu->list as $key2=>$value2)
73  {
74  $this->_menuInfoSetting($menu->list[$key2]);
75  }
76  }
77 
78  //array_push($menuList, $value->xml_file);
79  $menuItems = new stdClass();
80  $menuItems->menuSrl = $value->menu_srl;
81  $menuItems->title = $value->title;
82  $menuItems->desc = $value->desc;
83  $menuItems->menuItems = $menu;
84  $menuList[] = $menuItems;
85  }
86  }
87  }
88  Context::set('menu_list', $menuList);
89 
90  // get installed module list
91  $oPageController = getController('page'); //for lang
92  $resultModuleList = $oMenuAdminModel->getModuleListInSitemap($site_srl);
93  Context::set('module_list', $resultModuleList);
94 
95  $oLayoutModel = getModel('layout');
96  $layoutList = $oLayoutModel->getLayoutList();
97  Context::set('layout_list', $layoutList);
98 
99  // choice theme file
100  $theme_file = _XE_PATH_.'files/theme/theme_info.php';
101  if(is_readable($theme_file))
102  {
103  include($theme_file);
104  Context::set('current_layout', $theme_info->layout);
105  }
106  else
107  {
108  $oModuleModel = getModel('module');
109  $default_mid = $oModuleModel->getDefaultMid();
110  Context::set('current_layout', $default_mid->layout_srl);
111  }
112 
113  // get default group list
114  $oMemberModel = getModel('member');
115  $output = $oMemberModel->getGroups();
116  if(is_array($output))
117  {
118  $groupList = array();
119  foreach($output as $value)
120  {
121  $groupList[$value->group_srl] = new stdClass();
122  $groupList[$value->group_srl]->group_srl = $value->group_srl;
123  $groupList[$value->group_srl]->title = $value->title;
124  }
125  }
126  Context::set('group_list', $groupList);
127 
128  $this->setTemplateFile('sitemap');
129  }
130 
135  public function dispMenuAdminSiteDesign()
136  {
137  $this->setTemplateFile('sitemap');
138  }
139 
145  function _menuInfoSetting(&$menu)
146  {
147  $oModuleModel = getModel('module');
148  if($menu['url'] && strncasecmp('http', $menu['url'], 4) !== 0)
149  {
150  unset($midInfo);
151  unset($moduleInfo);
152  $midInfo = $oModuleModel->getModuleInfoByMid($menu['url'], 0);
153  $moduleInfo = $oModuleModel->getModuleInfoXml($midInfo->module);
154  if($moduleInfo->setup_index_act)
155  {
156  $menu['module_srl'] = $midInfo->module_srl;
157  $menu['setup_index_act'] = $moduleInfo->setup_index_act;
158  }
159  // setting layout srl for layout management
160  $menu['layout_srl'] = $midInfo->layout_srl;
161  }
162  if(count($menu['list']) > 0)
163  {
164  foreach($menu['list'] as $key=>$value)
165  {
166  $this->_menuInfoSetting($menu['list'][$key]);
167  }
168  }
169  }
170 
176  function _arrangeMenuItem($menuItems)
177  {
178  if(is_array($menuItems))
179  {
180  $arrangedMenuItemList = array();
181  foreach($menuItems as $value)
182  {
183  if($value->parent_srl == 0)
184  {
185  $arrangedMenuItemList[$value->menu_item_srl] = array('name'=>$value->name, 'subMenu'=>array());
186  }
187 
188  if($value->parent_srl > 0 && isset($arrangedMenuItemList[$value->parent_srl]))
189  {
190  $arrangedMenuItemList[$value->parent_srl]['subMenu'][$value->menu_item_srl] = $value;
191  }
192  }
193  }
194  return $arrangedMenuItemList;
195  }
196 }
197 /* End of file menu.admin.view.php */
198 /* Location: ./modules/menu/menu.admin.view.php */
_arrangeMenuItem($menuItems)
setTemplateFile($filename)
$oModuleModel
Definition: ko.install.php:236
getController($module_name)
Definition: func.inc.php:90
loadLang($path)
$output
Definition: ko.install.php:193
set($key, $val, $set_to_get_vars=0)
_menuInfoSetting(&$menu)
getAdminModel($module_name)
Definition: func.inc.php:156
const _XE_PATH_
Definition: config.inc.php:49
$moduleInfo
Definition: ko.install.php:253
getModel($module_name)
Definition: func.inc.php:145
getAdminController($module_name)
Definition: func.inc.php:101
getClass($module_name)
Definition: func.inc.php:189