diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php
index aaf06d665..78bcdcaa3 100644
--- a/modules/menu/menu.admin.controller.php
+++ b/modules/menu/menu.admin.controller.php
@@ -1,730 +1,153 @@
setTemplatePath($this->module_path.'tpl');
+ //$this->homeMenuCacheFile = sprintf('./files/cache/menu/homeSitemap.php');
+ }
+
+ /**
+ * Add a menu
+ * @return void|object
+ */
+ function procMenuAdminInsert()
+ {
+ // List variables
+ $site_module_info = Context::get('site_module_info');
+ $args->site_srl = (int)$site_module_info->site_srl;
+ $args->title = Context::get('title');
+
+ $args->menu_srl = getNextSequence();
+ $args->listorder = $args->menu_srl * -1;
+
+ $output = executeQuery('menu.insertMenu', $args);
+ if(!$output->toBool()) return $output;
+
+ $this->add('menu_srl', $args->menu_srl);
+ $this->setMessage('success_registed');
+
+ $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminContent');
+ $this->setRedirectUrl($returnUrl);
+ }
+
+ /**
+ * Change the menu title
+ * @return void|object
+ */
+ function procMenuAdminUpdate()
+ {
+ // List variables
+ $args->title = Context::get('title');
+ $args->menu_srl = Context::get('menu_srl');
+
+ $output = executeQuery('menu.updateMenu', $args);
+ if(!$output->toBool()) return $output;
+
+ $this->setMessage('success_registed');
+
+ $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
+ $this->setRedirectUrl($returnUrl);
+ }
+
+ /**
+ * Delete menu process method
+ * @return void|Object
+ */
+ function procMenuAdminDelete()
+ {
+ $menu_srl = Context::get('menu_srl');
+
+ $oMenuAdminModel = &getAdminModel('menu');
+ $menu_info = $oMenuAdminModel->getMenu($menu_srl);
+
+ $oAdmin = &getClass('admin');
+ if($menu_info->title == $oAdmin->getAdminMenuName())
+ return new Object(-1, 'msg_adminmenu_cannot_delete');
+
+ $this->deleteMenu($menu_srl);
+
+ $this->setMessage('success_deleted', 'info');
+
+ $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminSiteMap');
+ $this->setRedirectUrl($returnUrl);
+ }
+
+ /**
+ * Delete menu
+ * Delete menu_item and xml cache files
+ * @return Object
+ */
+ function deleteMenu($menu_srl)
+ {
+ $oDB = DB::getInstance();
+ $oDB->begin();
+
+ $args->menu_srl = $menu_srl;
+
+ // Delete modules
+ $output = executeQueryArray('menu.getMenuItems', $args);
+ if(!$output->toBool())
{
- $this->setTemplatePath($this->module_path.'tpl');
- //$this->homeMenuCacheFile = sprintf('./files/cache/menu/homeSitemap.php');
- }
-
- /**
- * Add a menu
- * @return void|object
- */
- function procMenuAdminInsert() {
- // List variables
- $site_module_info = Context::get('site_module_info');
- $args->site_srl = (int)$site_module_info->site_srl;
- $args->title = Context::get('title');
-
- $args->menu_srl = getNextSequence();
- $args->listorder = $args->menu_srl * -1;
-
- $output = executeQuery('menu.insertMenu', $args);
- if(!$output->toBool()) return $output;
-
- $this->add('menu_srl', $args->menu_srl);
- $this->setMessage('success_registed');
-
- $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminContent');
- $this->setRedirectUrl($returnUrl);
- }
-
- /**
- * Change the menu title
- * @return void|object
- */
- function procMenuAdminUpdate() {
- // List variables
- $args->title = Context::get('title');
- $args->menu_srl = Context::get('menu_srl');
-
- $output = executeQuery('menu.updateMenu', $args);
- if(!$output->toBool()) return $output;
-
- $this->setMessage('success_registed');
-
- $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
- $this->setRedirectUrl($returnUrl);
- }
-
- /**
- * Delete menu process method
- * @return void|Object
- */
- function procMenuAdminDelete() {
- $menu_srl = Context::get('menu_srl');
-
- $oMenuAdminModel = &getAdminModel('menu');
- $menu_info = $oMenuAdminModel->getMenu($menu_srl);
-
- $oAdmin = &getClass('admin');
- if($menu_info->title == $oAdmin->getAdminMenuName())
- return new Object(-1, 'msg_adminmenu_cannot_delete');
-
- $this->deleteMenu($menu_srl);
-
- $this->setMessage('success_deleted', 'info');
-
- $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminSiteMap');
- $this->setRedirectUrl($returnUrl);
- }
-
- /**
- * Delete menu
- * Delete menu_item and xml cache files
- * @return Object
- */
- function deleteMenu($menu_srl) {
- $oDB = DB::getInstance();
- $oDB->begin();
-
- $args->menu_srl = $menu_srl;
-
- // Delete modules
- $output = executeQueryArray('menu.getMenuItems', $args);
- if(!$output->toBool())
- {
- return $output;
- }
-
- $oModuleController = getController('module');
- $oModuleModel = getModel('module');
-
- foreach($output->data as $itemInfo)
- {
- if($itemInfo->is_shortcut != 'Y' && !preg_match('/^http/i',$itemInfo->url))
- {
- $moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url, $menuInfo->site_srl);
- if($moduleInfo->module_srl)
- {
- $output = $oModuleController->deleteModule($moduleInfo->module_srl);
- if(!$output->toBool())
- {
- $oDB->rollback();
- return $output;
- }
- }
- }
- }
-
- // Delete menu items
- $output = executeQuery("menu.deleteMenuItems", $args);
- if(!$output->toBool())
- {
- $oDB->rollback();
- return $output;
- }
- // Delete the menu
- $output = executeQuery("menu.deleteMenu", $args);
- if(!$output->toBool())
- {
- $oDB->rollback();
- return $output;
- }
-
- // Delete cache files
- $cache_list = FileHandler::readDir("./files/cache/menu","",false,true);
- if(count($cache_list)) {
- foreach($cache_list as $cache_file) {
- $pos = strpos($cache_file, $menu_srl.'.');
- if($pos>0)FileHandler::removeFile($cache_file);
- }
- }
- // Delete images of menu buttons
- $image_path = sprintf('./files/attach/menu_button/%s', $menu_srl);
- FileHandler::removeDir($image_path);
-
- $oDB->commit();
-
- return new Object(0,'success_deleted');
- }
-
-
- /**
- * Add an item to the menu, simple version
- * @return void
- */
- public function procMenuAdminInsertItem($request = NULL)
- {
- $isProc = false;
- if(!$request)
- {
- $isProc = true;
- $request = Context::getRequestVars();
- }
-
- if(!$request->parent_srl || !$request->menu_name)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- $this->_setMenuSrl($request->parent_srl, $request->menu_srl);
- if(!$request->menu_srl)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- if($request->is_shortcut == 'Y')
- {
- $result = $this->_insertShortcut($request);
- }
- else
- {
- $result = $this->_insertMenu($request, $isProc);
- }
-
- if($result->error < 0)
- {
- return new Object($result->error, $result->message);
- }
-
- // recreate menu cache file
- $this->makeXmlFile($request->menu_srl);
-
- if(!$isProc)
- {
- return $args->menu_item_srl;
- }
- }
-
- private function _setMenuSrl(&$parent_srl, &$menu_srl)
- {
- // set menu srl
- $oMenuAdminModel = &getAdminModel('menu');
- $itemInfo = $oMenuAdminModel->getMenuItemInfo($parent_srl);
- // parent_srl is parent menu item's srl
- if($itemInfo->menu_srl)
- {
- $menu_srl = $itemInfo->menu_srl;
- }
- // in this case, parent_srl is menu srl
- else
- {
- $output = $oMenuAdminModel->getMenu($parent_srl);
- if($output->menu_srl == $parent_srl)
- {
- $menu_srl = $output->menu_srl;
- $parent_srl = 0;
- }
- }
- }
-
- private function _insertShortcut(&$request)
- {
- $oDB = DB::getInstance();
- $oDB->begin();
-
- // type is url
- if(preg_match('/^http/i', $request->shortcut_target))
- {
- // set menu variable
- $args->menu_srl = $request->menu_srl;
- $args->parent_srl = $request->parent_srl;
- $args->open_window = $request->menu_open_window;
- $args->expand = $request->menu_expand;
- $args->expand = $request->menu_expand;
- $args->is_shortcut = $request->is_shortcut;
- $args->url = $request->shortcut_target;
-
- if(!$args->open_window) $args->open_window = 'N';
- if(!$args->expand) $args->expand = 'N';
- if(!$args->is_shortcut) $args->is_shortcut = 'Y';
-
- if($request->menu_name_key) $args->name = $request->menu_name_key;
- else $args->name = $request->menu_name;
- }
- // type is module short cut
- else if(is_numeric($request->shortcut_target))
- {
- // Get original information
- $oMenuAdminModel = &getAdminModel('menu');
- $itemInfo = $oMenuAdminModel->getMenuItemInfo($request->shortcut_target);
- if(!$itemInfo->menu_item_srl)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- $args = $itemInfo;
- if(count($args->group_srls) == 0)
- {
- unset($args->group_srls);
- }
- $args->menu_srl = $request->menu_srl;
- $args->name = $request->menu_name;
- $args->parent_srl = $request->parent_srl;
- $args->is_shortcut = $request->is_shortcut;
- }
- // empty target shortcut
- else
- {
- $args->menu_srl = $request->menu_srl;
- $args->name = $request->menu_name;
- $args->parent_srl = $request->parent_srl;
- $args->is_shortcut = $request->is_shortcut;
- }
-
- $args->menu_item_srl = getNextSequence();
- $args->listorder = -1*$args->menu_item_srl;
- $output = executeQuery('menu.insertMenuItem', $args);
- if(!$output->toBool()) return $output;
-
- $oDB->commit();
-
- $this->add('menu_item_srl', $args->menu_item_srl);
- $this->setMessage('success_registed', 'info');
- }
-
- private function _insertMenu(&$request, $isProc)
- {
- $oDB = DB::getInstance();
- $oDB->begin();
-
- // set menu variable
- $args->menu_srl = $request->menu_srl;
- $args->parent_srl = $request->parent_srl;
- $args->open_window = $request->menu_open_window;
- $args->expand = $request->menu_expand;
- $args->expand = $request->menu_expand;
- $args->is_shortcut = $request->is_shortcut;
-
- if(!$args->open_window) $args->open_window = 'N';
- if(!$args->expand) $args->expand = 'N';
- if(!$args->is_shortcut) $args->is_shortcut = 'N';
-
- if($request->menu_name_key) $args->name = $request->menu_name_key;
- else $args->name = $request->menu_name;
-
- if($request->module_id && preg_match('/^http/i', $request->module_id))
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- // when menu copy, module already copied
- if($isProc)
- {
- $result = $this->_insertModule($request, $args);
- if(!$result->toBool())
- {
- return new Object(-1, $result->message);
- }
- }
-
- // if setting button variables, set argument button variables for db insert. but not upload in this method
- if($request->normal_btn) $args->normal_btn = $request->normal_btn;
- if($request->hover_btn) $args->hover_btn = $request->hover_btn;
- if($request->active_btn) $args->active_btn = $request->active_btn;
-
- if(!$request->module_id)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- $args->url = $request->module_id;
- $args->menu_item_srl = getNextSequence();
- $args->listorder = -1*$args->menu_item_srl;
- $output = executeQuery('menu.insertMenuItem', $args);
- if(!$output->toBool()) return $output;
-
- $oDB->commit();
-
- $this->add('menu_item_srl', $args->menu_item_srl);
- $this->setMessage('success_registed', 'info');
- }
-
- /**
- * insert module by men create value
- * @request value of client request
- * @args value for menu create
- * @return bool result of create module
- */
- private function _insertModule(&$request, &$args)
- {
- switch ($request->module_type)
- {
- case 'WIDGET' :
- case 'ARTICLE' :
- case 'OUTSIDE' :
- $cmArgs->module = 'page';
- $cmArgs->page_type = $request->module_type;
- break;
- default:
- $cmArgs->module = $request->module_type;
- unset($cmArgs->page_type);
- }
-
- //module create
- $site_module_info = Context::get('site_module_info');
- $cmArgs->site_srl = (int)$site_module_info->site_srl;
- $cmArgs->browser_title = $args->name;
- $cmArgs->menu_srl = $request->menu_srl;
- $cmArgs->layout_srl = -1;
- $cmArgs->mlayout_srl = -1;
- $cmArgs->is_skin_fix = 'N';
- $cmArgs->is_mskin_fix = 'N';
-
- // if mid is empty, auto create mid
- if(!$request->module_id)
- {
- $randomMid = $this->_makeRandomMid();
- $request->module_id = $cmArgs->module.'_'.$randomMid;
- }
- $cmArgs->mid = $request->module_id;
-
- // check already created module instance
- $oModuleModel = &getModel('module');
- $output = $oModuleModel->getModuleInfoByMid($request->module_id);
- if($output->module_srl)
- {
- return new Object(-1, 'msg_module_name_exists');
- }
-
- $oModuleController = &getController('module');
- $output = $oModuleController->insertModule($cmArgs);
-
return $output;
}
- /**
- * Update an item to the menu, simple version
- * @return void
- */
- public function procMenuAdminUpdateItem()
+ $oModuleController = getController('module');
+ $oModuleModel = getModel('module');
+
+ foreach($output->data as $itemInfo)
{
- $request = Context::getRequestVars();
-
- if(!$request->menu_item_srl || !$request->menu_name)
+ if($itemInfo->is_shortcut != 'Y' && !preg_match('/^http/i',$itemInfo->url))
{
- return new Object(-1, 'msg_invalid_request');
- }
-
- // variables set
- if($request->menu_open_window != "Y") $request->menu_open_window = "N";
- if($request->menu_expand != "Y") $request->menu_expand = "N";
-
- // Get original information
- $oMenuAdminModel = &getAdminModel('menu');
- $itemInfo = $oMenuAdminModel->getMenuItemInfo($request->menu_item_srl);
- $args = $itemInfo;
-
- // if menu type is module, check exists module and update
- if($itemInfo->is_shortcut == 'Y')
- {
- // type is url
- if(preg_match('/^http/i', $request->shortcut_target))
- {
- $args->url = $request->shortcut_target;
- }
- // type is module short cut
- else if(is_numeric($request->shortcut_target))
- {
- // Get new original information
- $newItemInfo = $oMenuAdminModel->getMenuItemInfo($request->shortcut_target);
- if(!$newItemInfo->menu_item_srl)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- $args->url = $newItemInfo->url;
- $args->is_shortcut = 'Y';
- }
- else
- {
- return new Object(-1, 'msg_invalid_request');
- }
- }
- else
- {
- // check already created module instance
- $oModuleModel = &getModel('module');
- if($request->module_id != $itemInfo->url)
- {
- $output = $oModuleModel->getModuleInfoByMid($request->module_id);
- if($output->module_srl)
- {
- return new Object(-1, 'msg_module_name_exists');
- }
- }
-
- // if not exist module, return error
- $moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url);
- if(!$moduleInfo)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- $moduleInfo->mid = $request->module_id;
- $oModuleController = &getController('module');
- $oModuleController->updateModule($moduleInfo);
- $args->url = $request->module_id;
- }
-
- if($request->menu_name_key)
- {
- $args->name = $request->menu_name_key;
- }
- else
- {
- $args->name = $request->menu_name;
- }
-
- if(count($args->group_srls) == 0)
- {
- unset($args->group_srls);
- }
- $args->open_window = $request->menu_open_window;
- $args->expand = $request->menu_expand;
- $output = executeQuery('menu.updateMenuItem', $args);
-
- $this->makeXmlFile($args->menu_srl);
-
- $this->add('menu_item_srl', $args->menu_item_srl);
- $this->setMessage('success_updated', 'info');
- }
-
- /**
- * upload button
- * @retun void
- */
- public function procMenuAdminButtonUpload()
- {
- $args = Context::getRequestVars();
-
- $oMenuAdminModel = &getAdminModel('menu');
- $item_info = $oMenuAdminModel->getMenuItemInfo($args->menu_item_srl);
- $args->menu_srl = $item_info->menu_srl;
-
- $btnOutput = $this->_uploadButton($args);
-
- if($btnOutput['normal_btn'])
- {
- $this->add('normal_btn', $btnOutput['normal_btn']);
- $item_info->normal_btn = $btnOutput['normal_btn'];
- }
- if($btnOutput['hover_btn'])
- {
- $this->add('hover_btn', $btnOutput['hover_btn']);
- $item_info->hover_btn = $btnOutput['hover_btn'];
- }
- if($btnOutput['active_btn'])
- {
- $this->add('active_btn', $btnOutput['active_btn']);
- $item_info->active_btn = $btnOutput['active_btn'];
- }
-
- // group_srls check
- if(count($item_info->group_srls) == 0)
- {
- unset($item_info->group_srls);
- }
-
- // Button delete check
- if(!$btnOutput['normal_btn'] && $args->isNormalDelete == 'Y')
- {
- $item_info->normal_btn = '';
- }
- if(!$btnOutput['hover_btn'] && $args->isHoverDelete == 'Y')
- {
- $item_info->hover_btn = '';
- }
- if(!$btnOutput['active_btn'] && $args->isActiveDelete == 'Y')
- {
- $item_info->active_btn = '';
- }
-
- $output = executeQuery('menu.updateMenuItem', $item_info);
-
- // recreate menu cache file
- $this->makeXmlFile($args->menu_srl);
- }
-
- /**
- * Delete menu item(menu of the menu)
- * @return void|Object
- */
- function procMenuAdminDeleteItem() {
- // List variables
- $args = Context::getRequestVars();
-
- $oModuleModel = &getModel('module');
- $oMenuAdminModel = &getAdminModel('menu');
-
- // Get original information
- $itemInfo = $oMenuAdminModel->getMenuItemInfo($args->menu_item_srl);
- $args->menu_srl = $itemInfo->menu_srl;
-
- // Display an error that the category cannot be deleted if it has a child node 603
- if($args->is_force != 'Y')
- {
- $output = executeQuery('menu.getChildMenuCount', $args);
- if(!$output->toBool()) return $output;
- if($output->data->count > 0)
- {
- return new Object(-1001, 'msg_cannot_delete_for_child');
- }
- }
-
- // Get information of the menu
- $menuInfo = $oMenuAdminModel->getMenu($args->menu_srl);
- $menu_title = $menuInfo->title;
-
- // check admin menu delete
- $oAdmin = &getClass('admin');
- if($menu_title == $oAdmin->getAdminMenuName() && $itemInfo->parent_srl == 0)
- {
- return $this->stop('msg_cannot_delete_for_admin_topmenu');
- }
-
- if($itemInfo->parent_srl) $parent_srl = $itemInfo->parent_srl;
-
- // get menu properies with child menu
- $phpFile = sprintf("./files/cache/menu/%s.php", $args->menu_srl);
- $originMenu = NULL;
-
- if(is_readable(FileHandler::getRealPath($phpFile)))
- {
- @include(FileHandler::getRealPath($phpFile));
-
- if(is_array($menu->list))
- {
- $this->_searchMenu($menu->list, $args->menu_item_srl, $originMenu);
- }
- }
-
- // check home menu in originMenu
- $siteInfo = $oModuleModel->getSiteInfo($menuInfo->site_srl);
- $isStartmenuInclude = false;
- $this->_checkHomeMenuInOriginMenu($originMenu, $siteInfo->mid, $isStartmenuInclude);
- if($isStartmenuInclude)
- {
- return new Object(-1, 'msg_cannot_delete_homemenu');
- }
-
- $oDB = DB::getInstance();
- $oDB->begin();
-
- $this->_recursiveDeleteMenuItem($oDB, $menuInfo, $originMenu);
-
- $oDB->commit();
-
- // recreate menu cache file
- $this->makeXmlFile($args->menu_srl);
-
- $this->add('xml_file', $xml_file);
- $this->add('menu_title', $menu_title);
- $this->add('menu_item_srl', $parent_srl);
- $this->setMessage('success_deleted');
-
- $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
- $this->setRedirectUrl($returnUrl);
- }
-
- private function _checkHomeMenuInOriginMenu($originMenu, $startMid, &$isStartmenuInclude)
- {
- if($originMenu['url'] == $startMid)
- {
- $isStartmenuInclude = true;
- }
-
- if(!$isStartmenuInclude && is_array($originMenu['list']))
- {
- foreach($originMenu['list'] AS $key=>$value)
- {
- $this->_checkHomeMenuInOriginMenu($value, $startMid, $isStartmenuInclude);
- }
- }
- }
-
- private function _deleteMenuItem(&$oDB, &$menuInfo, $node)
- {
- // Remove from the DB
- $args->menu_srl = $menuSrl;
- $args->menu_item_srl = $node['node_srl'];
- $output = executeQuery("menu.deleteMenuItem", $args);
- if(!$output->toBool())
- {
- $oDB->rollback();
- return $output;
- }
-
- // Update the xml file and get its location
- $xml_file = $this->makeXmlFile($args->menu_srl);
- // Delete all of image buttons
- if($node['normal_btn']) FileHandler::removeFile($node['normal_btn']);
- if($node['hover_btn']) FileHandler::removeFile($node['hover_btn']);
- if($node['active_btn']) FileHandler::removeFile($node['active_btn']);
-
- // Delete module
- if($node['is_shortcut'] != 'Y' && !preg_match('/^http/i',$node['url']))
- {
- $oModuleController = getController('module');
- $oModuleModel = &getModel('module');
-
- // reference menu's url modify
- $args->url = $node['url'];
- $args->site_srl = $menuInfo->site_srl;
- $args->is_shortcut = 'Y';
- $output = executeQuery('menu.getMenuItemByUrl', $args);
- if($output->data->menu_item_srl)
- {
- $output->data->url = '';
- $referenceItem = $output->data;
- $output = executeQuery('menu.updateMenuItem', $referenceItem);
- if(!$output->toBool())
- {
- $oDB->rollback();
- return $output;
- }
- }
-
- $moduleInfo = $oModuleModel->getModuleInfoByMid($node['url'], $menuInfo->site_srl);
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url, $menuInfo->site_srl);
if($moduleInfo->module_srl)
{
$output = $oModuleController->deleteModule($moduleInfo->module_srl);
@@ -735,1167 +158,1791 @@
}
}
}
- return new Object(0, 'success');
}
- private function _recursiveDeleteMenuItem(&$oDB, &$menuInfo, $node)
+ // Delete menu items
+ $output = executeQuery("menu.deleteMenuItems", $args);
+ if(!$output->toBool())
{
- $output = $this->_deleteMenuItem($oDB, $menuInfo, $node);
- if(!$output->toBool())
- {
- return new Object(-1, $output->message);
- }
-
- if(is_array($node['list']))
- {
- foreach($node['list'] AS $key=>$value)
- {
- $this->_recursiveDeleteMenuItem($oDB, $menuInfo, $value);
- }
- }
+ $oDB->rollback();
+ return $output;
+ }
+ // Delete the menu
+ $output = executeQuery("menu.deleteMenu", $args);
+ if(!$output->toBool())
+ {
+ $oDB->rollback();
+ return $output;
}
- /**
- * Move menu items
- * @return void
- */
- function procMenuAdminMoveItem()
+ // Delete cache files
+ $cache_list = FileHandler::readDir("./files/cache/menu","",false,true);
+ if(count($cache_list))
{
- $mode = Context::get('mode'); //move
- $parent_srl = Context::get('parent_srl'); // Parent menu item serial number
- $source_srl = Context::get('source_srl'); // Same hierarchy's menu item serial number
- $target_srl = Context::get('target_srl'); // Self menu item serial number
-
- if(!$mode || !$parent_srl || !$target_srl) return new Object(-1,'msg_invalid_request');
-
- $oMenuAdminModel = &getAdminModel('menu');
-
- // get original menu item info for cache file recreate
- $originalItemInfo = $oMenuAdminModel->getMenuItemInfo($target_srl);
- if(!$originalItemInfo->menu_item_srl)
+ foreach($cache_list as $cache_file)
{
- return new Object(-1, 'msg_empty_menu_item');
+ $pos = strpos($cache_file, $menu_srl.'.');
+ if($pos>0)FileHandler::removeFile($cache_file);
}
+ }
+ // Delete images of menu buttons
+ $image_path = sprintf('./files/attach/menu_button/%s', $menu_srl);
+ FileHandler::removeDir($image_path);
- // get menu properies with child menu
- $phpFile = sprintf("./files/cache/menu/%s.php", $originalItemInfo->menu_srl);
- $originMenu = NULL;
+ $oDB->commit();
- if(is_readable(FileHandler::getRealPath($phpFile)))
+ return new Object(0,'success_deleted');
+ }
+
+ /**
+ * Add an item to the menu, simple version
+ * @return void
+ */
+ public function procMenuAdminInsertItem($request = NULL)
+ {
+ $isProc = false;
+ if(!$request)
+ {
+ $isProc = true;
+ $request = Context::getRequestVars();
+ }
+
+ if(!$request->parent_srl || !$request->menu_name)
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ $this->_setMenuSrl($request->parent_srl, $request->menu_srl);
+ if(!$request->menu_srl)
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ if($request->is_shortcut == 'Y')
+ {
+ $result = $this->_insertShortcut($request);
+ }
+ else
+ {
+ $result = $this->_insertMenu($request, $isProc);
+ }
+
+ if($result->error < 0)
+ {
+ return new Object($result->error, $result->message);
+ }
+
+ // recreate menu cache file
+ $this->makeXmlFile($request->menu_srl);
+
+ if(!$isProc)
+ {
+ return $args->menu_item_srl;
+ }
+ }
+
+ private function _setMenuSrl(&$parent_srl, &$menu_srl)
+ {
+ // set menu srl
+ $oMenuAdminModel = &getAdminModel('menu');
+ $itemInfo = $oMenuAdminModel->getMenuItemInfo($parent_srl);
+ // parent_srl is parent menu item's srl
+ if($itemInfo->menu_srl)
+ {
+ $menu_srl = $itemInfo->menu_srl;
+ }
+ // in this case, parent_srl is menu srl
+ else
+ {
+ $output = $oMenuAdminModel->getMenu($parent_srl);
+ if($output->menu_srl == $parent_srl)
{
- @include(FileHandler::getRealPath($phpFile));
-
- if(is_array($menu->list))
- {
- $this->_searchMenu($menu->list, $originalItemInfo->menu_item_srl, $originMenu);
- }
- }
-
- // get target menu info for move
- $targetMenuItemInfo = $oMenuAdminModel->getMenuItemInfo($parent_srl);
- // if move in same sitemap
- if($targetMenuItemInfo->menu_item_srl)
- {
- $menu_srl = $targetMenuItemInfo->menu_srl;
- }
- // if move to other sitemap
- else
- {
- $targetMenuInfo = $oMenuAdminModel->getMenu($parent_srl);
- $menu_srl = $targetMenuInfo->menu_srl;
+ $menu_srl = $output->menu_srl;
$parent_srl = 0;
}
-
- if(!$this->homeModuleMid)
- {
- $oModuleModel = &getModel('module');
- $oMenuAdminController = &getAdminController('menu');
- $columnList = array('modules.mid',);
- $output = $oModuleModel->getSiteInfo(0, $columnList);
- if($output->mid)
- {
- $this->homeModuleMid = $output->mid;
- }
- }
-
- $this->moveMenuItem($menu_srl, $parent_srl, $source_srl, $target_srl, $mode, $originMenu['is_shortcut'], $originMenu['url']);
- if(count($originMenu['list']) > 0)
- {
- $this->_recursiveUpdateMenuItem($originMenu['list'], $menu_srl);
- }
-
- //recreate original menu
- $xml_file = $this->makeXmlFile($originalItemInfo->menu_srl);
-
- //recreate target menu
- $xml_file = $this->makeXmlFile($menu_srl);
}
+ }
- private function _recursiveUpdateMenuItem($node, $menu_srl)
+ private function _insertShortcut(&$request)
+ {
+ $oDB = DB::getInstance();
+ $oDB->begin();
+
+ // type is url
+ if(preg_match('/^http/i', $request->shortcut_target))
{
- if(is_array($node))
- {
- foreach($node AS $key=>$node)
- {
- unset($args);
- $args->menu_srl = $menu_srl;
- $args->menu_item_srl = $node['node_srl'];
- $output = executeQuery('menu.updateMenuItemNode', $args);
+ // set menu variable
+ $args->menu_srl = $request->menu_srl;
+ $args->parent_srl = $request->parent_srl;
+ $args->open_window = $request->menu_open_window;
+ $args->expand = $request->menu_expand;
+ $args->expand = $request->menu_expand;
+ $args->is_shortcut = $request->is_shortcut;
+ $args->url = $request->shortcut_target;
- //module's menu_srl move also
- if($node['is_shortcut'] == 'N' && !empty($node['url']))
- {
- $oModuleModel = &getModel('module');
- $moduleInfo = $oModuleModel->getModuleInfoByMid($node['url']);
- if($menu_srl != $moduleInfo->menu_srl)
- {
- $moduleInfo->menu_srl = $menu_srl;
- $oModuleController = &getController('module');
- $output = $oModuleController->updateModule($moduleInfo);
- }
- }
+ if(!$args->open_window) $args->open_window = 'N';
+ if(!$args->expand) $args->expand = 'N';
+ if(!$args->is_shortcut) $args->is_shortcut = 'Y';
- if(count($node['list']) > 0)
- {
- $this->_recursiveUpdateMenuItem($node['list'], $menu_srl);
- }
- }
- }
+ if($request->menu_name_key) $args->name = $request->menu_name_key;
+ else $args->name = $request->menu_name;
}
-
- /**
- * cop menu item
- * @return void
- */
- public function procMenuAdminCopyItem()
- {
- $parentSrl = Context::get('parent_srl');
- $menuItemSrl = Context::get('menu_item_srl');
-
- $oMenuModel = &getAdminModel('menu');
- $itemInfo = $oMenuModel->getMenuItemInfo($menuItemSrl);
- $menuSrl = $itemInfo->menu_srl;
-
- // get menu properies with child menu
- $phpFile = sprintf("./files/cache/menu/%s.php", $menuSrl);
- $originMenu = NULL;
-
- if(is_readable(FileHandler::getRealPath($phpFile)))
- {
- @include(FileHandler::getRealPath($phpFile));
-
- if(is_array($menu->list))
- {
- $this->_searchMenu($menu->list, $menuItemSrl, $originMenu);
- }
- }
-
- // copy the menu item with recursively
- if(is_array($originMenu))
- {
- $this->_copyMenu($menuSrl, $parentSrl, $originMenu);
- }
- $this->add('insertedMenuItemSrlList', $this->insertedMenuItemSrlList);
- }
-
- /**
- * search menu_item in full menu with recursively
- * @param $menuList menu list
- * @param $menuItemSrl current menu item serial number
- * @param $originMenu find result menu
- * @return void
- */
- private function _searchMenu(&$menuList, $menuItemSrl, &$originMenu)
- {
- if(array_key_exists($menuItemSrl, $menuList))
- {
- $originMenu = $menuList[$menuItemSrl];
- return;
- }
-
- foreach($menuList AS $key=>$value)
- {
- if(count($value['list']) > 0)
- {
- $this->_searchMenu($value['list'], $menuItemSrl, $originMenu);
- }
- }
- }
-
- private function _copyMenu($menuSrl, $parentSrl, &$originMenu)
+ // type is module short cut
+ else if(is_numeric($request->shortcut_target))
{
+ // Get original information
$oMenuAdminModel = &getAdminModel('menu');
- $menuItemInfo = $oMenuAdminModel->getMenuItemInfo($originMenu['node_srl']);
-
- // default argument setting
- $args->menu_srl = $menuSrl;
- if($parentSrl == 0) $args->parent_srl = $menuSrl;
- else $args->parent_srl = $parentSrl;
- $args->menu_name_key = $originMenu['text'];
- $args->menu_name = $originMenu['text'];
- $args->menu_open_window = $originMenu['open_window'];
- $args->menu_expand = $originMenu['expand'];
- $args->normal_btn = $menuItemInfo->normal_btn;
- $args->hover_btn = $menuItemInfo->hover_btn;
- $args->active_btn = $menuItemInfo->active_btn;
- $args->is_shortcut = $menuItemInfo->is_shortcut;
-
- $isModuleCopySuccess = false;
- // if menu have a reference of module instance
- if($menuItemInfo->is_shortcut == 'N' && !preg_match('/^http/i', $originMenu['url']))
+ $itemInfo = $oMenuAdminModel->getMenuItemInfo($request->shortcut_target);
+ if(!$itemInfo->menu_item_srl)
{
- $oModuleModel = &getModel('module');
- $moduleInfo = $oModuleModel->getModuleInfoByMid($originMenu['url']);
-
- $args->module_type = $moduleInfo->module;
- $randomMid = $this->_makeRandomMid();
- $args->module_id = $moduleInfo->module.'_'.$randomMid;
- $args->layout_srl = $moduleInfo->layout_srl;
-
- $oModuleAdminController = &getAdminController('module');
- $copyArg->module_srl = $moduleInfo->module_srl;
- $copyArg->mid_1 = $args->module_id;
- $copyArg->browser_title_1 = $moduleInfo->browser_title;
- $copiedModuleSrl = $oModuleAdminController->procModuleAdminCopyModule($copyArg);
-
- $args->module_srl = $copiedModuleSrl;
-
- if($copiedModuleSrl)
- {
- $isModuleCopySuccess = true;
- }
- }
- // if menu type is shortcut
- else if($menuItemInfo->is_shortcut == 'Y')
- {
- $args->shortcut_target = $originMenu['url'];
- $isModuleCopySuccess = true;
+ return new Object(-1, 'msg_invalid_request');
}
- if($isModuleCopySuccess)
+ $args = $itemInfo;
+ if(count($args->group_srls) == 0)
{
- // if have a group permission
- if($menuItemInfo->group_srls)
+ unset($args->group_srls);
+ }
+ $args->menu_srl = $request->menu_srl;
+ $args->name = $request->menu_name;
+ $args->parent_srl = $request->parent_srl;
+ $args->is_shortcut = $request->is_shortcut;
+ }
+ // empty target shortcut
+ else
+ {
+ $args->menu_srl = $request->menu_srl;
+ $args->name = $request->menu_name;
+ $args->parent_srl = $request->parent_srl;
+ $args->is_shortcut = $request->is_shortcut;
+ }
+
+ $args->menu_item_srl = getNextSequence();
+ $args->listorder = -1*$args->menu_item_srl;
+ $output = executeQuery('menu.insertMenuItem', $args);
+ if(!$output->toBool()) return $output;
+
+ $oDB->commit();
+
+ $this->add('menu_item_srl', $args->menu_item_srl);
+ $this->setMessage('success_registed', 'info');
+ }
+
+ private function _insertMenu(&$request, $isProc)
+ {
+ $oDB = DB::getInstance();
+ $oDB->begin();
+
+ // set menu variable
+ $args->menu_srl = $request->menu_srl;
+ $args->parent_srl = $request->parent_srl;
+ $args->open_window = $request->menu_open_window;
+ $args->expand = $request->menu_expand;
+ $args->expand = $request->menu_expand;
+ $args->is_shortcut = $request->is_shortcut;
+
+ if(!$args->open_window) $args->open_window = 'N';
+ if(!$args->expand) $args->expand = 'N';
+ if(!$args->is_shortcut) $args->is_shortcut = 'N';
+
+ if($request->menu_name_key) $args->name = $request->menu_name_key;
+ else $args->name = $request->menu_name;
+
+ if($request->module_id && preg_match('/^http/i', $request->module_id))
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ // when menu copy, module already copied
+ if($isProc)
+ {
+ $result = $this->_insertModule($request, $args);
+ if(!$result->toBool())
+ {
+ return new Object(-1, $result->message);
+ }
+ }
+
+ // if setting button variables, set argument button variables for db insert. but not upload in this method
+ if($request->normal_btn) $args->normal_btn = $request->normal_btn;
+ if($request->hover_btn) $args->hover_btn = $request->hover_btn;
+ if($request->active_btn) $args->active_btn = $request->active_btn;
+
+ if(!$request->module_id)
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ $args->url = $request->module_id;
+ $args->menu_item_srl = getNextSequence();
+ $args->listorder = -1*$args->menu_item_srl;
+ $output = executeQuery('menu.insertMenuItem', $args);
+ if(!$output->toBool()) return $output;
+
+ $oDB->commit();
+
+ $this->add('menu_item_srl', $args->menu_item_srl);
+ $this->setMessage('success_registed', 'info');
+ }
+
+ /**
+ * insert module by men create value
+ * @request value of client request
+ * @args value for menu create
+ * @return bool result of create module
+ */
+ private function _insertModule(&$request, &$args)
+ {
+ switch ($request->module_type)
+ {
+ case 'WIDGET' :
+ case 'ARTICLE' :
+ case 'OUTSIDE' :
+ $cmArgs->module = 'page';
+ $cmArgs->page_type = $request->module_type;
+ break;
+ default:
+ $cmArgs->module = $request->module_type;
+ unset($cmArgs->page_type);
+ }
+
+ //module create
+ $site_module_info = Context::get('site_module_info');
+ $cmArgs->site_srl = (int)$site_module_info->site_srl;
+ $cmArgs->browser_title = $args->name;
+ $cmArgs->menu_srl = $request->menu_srl;
+ $cmArgs->layout_srl = -1;
+ $cmArgs->mlayout_srl = -1;
+ $cmArgs->is_skin_fix = 'N';
+ $cmArgs->is_mskin_fix = 'N';
+
+ // if mid is empty, auto create mid
+ if(!$request->module_id)
+ {
+ $randomMid = $this->_makeRandomMid();
+ $request->module_id = $cmArgs->module.'_'.$randomMid;
+ }
+ $cmArgs->mid = $request->module_id;
+
+ // check already created module instance
+ $oModuleModel = &getModel('module');
+ $output = $oModuleModel->getModuleInfoByMid($request->module_id);
+ if($output->module_srl)
+ {
+ return new Object(-1, 'msg_module_name_exists');
+ }
+
+ $oModuleController = &getController('module');
+ $output = $oModuleController->insertModule($cmArgs);
+
+ return $output;
+ }
+
+ /**
+ * Update an item to the menu, simple version
+ * @return void
+ */
+ public function procMenuAdminUpdateItem()
+ {
+ $request = Context::getRequestVars();
+
+ if(!$request->menu_item_srl || !$request->menu_name)
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ // variables set
+ if($request->menu_open_window != "Y") $request->menu_open_window = "N";
+ if($request->menu_expand != "Y") $request->menu_expand = "N";
+
+ // Get original information
+ $oMenuAdminModel = &getAdminModel('menu');
+ $itemInfo = $oMenuAdminModel->getMenuItemInfo($request->menu_item_srl);
+ $args = $itemInfo;
+
+ // if menu type is module, check exists module and update
+ if($itemInfo->is_shortcut == 'Y')
+ {
+ // type is url
+ if(preg_match('/^http/i', $request->shortcut_target))
+ {
+ $args->url = $request->shortcut_target;
+ }
+ // type is module short cut
+ else if(is_numeric($request->shortcut_target))
+ {
+ // Get new original information
+ $newItemInfo = $oMenuAdminModel->getMenuItemInfo($request->shortcut_target);
+ if(!$newItemInfo->menu_item_srl)
{
- $args->group_srls = $menuItemInfo->group_srls;
+ return new Object(-1, 'msg_invalid_request');
}
- // menu copy
- $output = $this->procMenuAdminInsertItem($args);
- /*if($output && !$output->toBool())
+ $args->url = $newItemInfo->url;
+ $args->is_shortcut = 'Y';
+ }
+ else
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+ }
+ else
+ {
+ // check already created module instance
+ $oModuleModel = &getModel('module');
+ if($request->module_id != $itemInfo->url)
+ {
+ $output = $oModuleModel->getModuleInfoByMid($request->module_id);
+ if($output->module_srl)
{
+ return new Object(-1, 'msg_module_name_exists');
+ }
+ }
+
+ // if not exist module, return error
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url);
+ if(!$moduleInfo)
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ $moduleInfo->mid = $request->module_id;
+ $oModuleController = &getController('module');
+ $oModuleController->updateModule($moduleInfo);
+ $args->url = $request->module_id;
+ }
+
+ if($request->menu_name_key)
+ {
+ $args->name = $request->menu_name_key;
+ }
+ else
+ {
+ $args->name = $request->menu_name;
+ }
+
+ if(count($args->group_srls) == 0)
+ {
+ unset($args->group_srls);
+ }
+ $args->open_window = $request->menu_open_window;
+ $args->expand = $request->menu_expand;
+ $output = executeQuery('menu.updateMenuItem', $args);
+
+ $this->makeXmlFile($args->menu_srl);
+
+ $this->add('menu_item_srl', $args->menu_item_srl);
+ $this->setMessage('success_updated', 'info');
+ }
+
+ /**
+ * upload button
+ * @retun void
+ */
+ public function procMenuAdminButtonUpload()
+ {
+ $args = Context::getRequestVars();
+
+ $oMenuAdminModel = &getAdminModel('menu');
+ $item_info = $oMenuAdminModel->getMenuItemInfo($args->menu_item_srl);
+ $args->menu_srl = $item_info->menu_srl;
+
+ $btnOutput = $this->_uploadButton($args);
+
+ if($btnOutput['normal_btn'])
+ {
+ $this->add('normal_btn', $btnOutput['normal_btn']);
+ $item_info->normal_btn = $btnOutput['normal_btn'];
+ }
+ if($btnOutput['hover_btn'])
+ {
+ $this->add('hover_btn', $btnOutput['hover_btn']);
+ $item_info->hover_btn = $btnOutput['hover_btn'];
+ }
+ if($btnOutput['active_btn'])
+ {
+ $this->add('active_btn', $btnOutput['active_btn']);
+ $item_info->active_btn = $btnOutput['active_btn'];
+ }
+
+ // group_srls check
+ if(count($item_info->group_srls) == 0)
+ {
+ unset($item_info->group_srls);
+ }
+
+ // Button delete check
+ if(!$btnOutput['normal_btn'] && $args->isNormalDelete == 'Y')
+ {
+ $item_info->normal_btn = '';
+ }
+ if(!$btnOutput['hover_btn'] && $args->isHoverDelete == 'Y')
+ {
+ $item_info->hover_btn = '';
+ }
+ if(!$btnOutput['active_btn'] && $args->isActiveDelete == 'Y')
+ {
+ $item_info->active_btn = '';
+ }
+
+ $output = executeQuery('menu.updateMenuItem', $item_info);
+
+ // recreate menu cache file
+ $this->makeXmlFile($args->menu_srl);
+ }
+
+ /**
+ * Delete menu item(menu of the menu)
+ * @return void|Object
+ */
+ function procMenuAdminDeleteItem()
+ {
+ // List variables
+ $args = Context::getRequestVars();
+
+ $oModuleModel = &getModel('module');
+ $oMenuAdminModel = &getAdminModel('menu');
+
+ // Get original information
+ $itemInfo = $oMenuAdminModel->getMenuItemInfo($args->menu_item_srl);
+ $args->menu_srl = $itemInfo->menu_srl;
+
+ // Display an error that the category cannot be deleted if it has a child node 603
+ if($args->is_force != 'Y')
+ {
+ $output = executeQuery('menu.getChildMenuCount', $args);
+ if(!$output->toBool()) return $output;
+ if($output->data->count > 0)
+ {
+ return new Object(-1001, 'msg_cannot_delete_for_child');
+ }
+ }
+
+ // Get information of the menu
+ $menuInfo = $oMenuAdminModel->getMenu($args->menu_srl);
+ $menu_title = $menuInfo->title;
+
+ // check admin menu delete
+ $oAdmin = &getClass('admin');
+ if($menu_title == $oAdmin->getAdminMenuName() && $itemInfo->parent_srl == 0)
+ {
+ return $this->stop('msg_cannot_delete_for_admin_topmenu');
+ }
+
+ if($itemInfo->parent_srl) $parent_srl = $itemInfo->parent_srl;
+
+ // get menu properies with child menu
+ $phpFile = sprintf("./files/cache/menu/%s.php", $args->menu_srl);
+ $originMenu = NULL;
+
+ if(is_readable(FileHandler::getRealPath($phpFile)))
+ {
+ @include(FileHandler::getRealPath($phpFile));
+
+ if(is_array($menu->list))
+ {
+ $this->_searchMenu($menu->list, $args->menu_item_srl, $originMenu);
+ }
+ }
+
+ // check home menu in originMenu
+ $siteInfo = $oModuleModel->getSiteInfo($menuInfo->site_srl);
+ $isStartmenuInclude = false;
+ $this->_checkHomeMenuInOriginMenu($originMenu, $siteInfo->mid, $isStartmenuInclude);
+ if($isStartmenuInclude)
+ {
+ return new Object(-1, 'msg_cannot_delete_homemenu');
+ }
+
+ $oDB = DB::getInstance();
+ $oDB->begin();
+
+ $this->_recursiveDeleteMenuItem($oDB, $menuInfo, $originMenu);
+
+ $oDB->commit();
+
+ // recreate menu cache file
+ $this->makeXmlFile($args->menu_srl);
+
+ $this->add('xml_file', $xml_file);
+ $this->add('menu_title', $menu_title);
+ $this->add('menu_item_srl', $parent_srl);
+ $this->setMessage('success_deleted');
+
+ $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
+ $this->setRedirectUrl($returnUrl);
+ }
+
+ private function _checkHomeMenuInOriginMenu($originMenu, $startMid, &$isStartmenuInclude)
+ {
+ if($originMenu['url'] == $startMid)
+ {
+ $isStartmenuInclude = true;
+ }
+
+ if(!$isStartmenuInclude && is_array($originMenu['list']))
+ {
+ foreach($originMenu['list'] AS $key=>$value)
+ {
+ $this->_checkHomeMenuInOriginMenu($value, $startMid, $isStartmenuInclude);
+ }
+ }
+ }
+
+ private function _deleteMenuItem(&$oDB, &$menuInfo, $node)
+ {
+ // Remove from the DB
+ $args->menu_srl = $menuSrl;
+ $args->menu_item_srl = $node['node_srl'];
+ $output = executeQuery("menu.deleteMenuItem", $args);
+ if(!$output->toBool())
+ {
+ $oDB->rollback();
+ return $output;
+ }
+
+ // Update the xml file and get its location
+ $xml_file = $this->makeXmlFile($args->menu_srl);
+ // Delete all of image buttons
+ if($node['normal_btn']) FileHandler::removeFile($node['normal_btn']);
+ if($node['hover_btn']) FileHandler::removeFile($node['hover_btn']);
+ if($node['active_btn']) FileHandler::removeFile($node['active_btn']);
+
+ // Delete module
+ if($node['is_shortcut'] != 'Y' && !preg_match('/^http/i',$node['url']))
+ {
+ $oModuleController = getController('module');
+ $oModuleModel = &getModel('module');
+
+ // reference menu's url modify
+ $args->url = $node['url'];
+ $args->site_srl = $menuInfo->site_srl;
+ $args->is_shortcut = 'Y';
+ $output = executeQuery('menu.getMenuItemByUrl', $args);
+ if($output->data->menu_item_srl)
+ {
+ $output->data->url = '';
+ $referenceItem = $output->data;
+ $output = executeQuery('menu.updateMenuItem', $referenceItem);
+ if(!$output->toBool())
+ {
+ $oDB->rollback();
return $output;
- }*/
-
- // if have a button, copy a button image also
- $insertedMenuItemSrl = $this->get('menu_item_srl');
- if($menuItemInfo->normal_btn || $menuItemInfo->hover_btn || $menuItemInfo->active_btn)
- {
- $this->_copyButton($insertedMenuItemSrl, $menuItemInfo);
- }
- array_push($this->insertedMenuItemSrlList, $insertedMenuItemSrl);
- }
-
- // if have a child menu, copy child menu also
- $childMenu = array_shift($originMenu['list']);
- if(count($childMenu) > 0)
- {
- $this->_copyMenu($menuSrl, $insertedMenuItemSrl, $childMenu);
- }
- }
-
- private function _makeRandomMid()
- {
- $time = time();
- $randomString = "";
- for($i=0;$i<4;$i++)
- {
- $case = rand(0, 1);
- if($case) $doc = rand(65, 90);
- else $doc = rand(97, 122);
-
- $randomString .= chr($doc);
- }
-
- return $randomString.substr($time, -2);
- }
-
- /**
- * Arrange menu items
- * @return void|object
- */
- function procMenuAdminArrangeItem()
- {
- $this->menuSrl = Context::get('menu_srl');
- $args->title = Context::get('title');
- $parentKeyList = Context::get('parent_key');
- $this->itemKeyList = Context::get('item_key');
-
- // menu name update
- $args->menu_srl = $this->menuSrl;
- $output = executeQuery('menu.updateMenu', $args);
- if(!$output->toBool()) return $output;
-
- $this->map = array();
- if(is_array($parentKeyList))
- {
- foreach($parentKeyList as $no=>$srl)
- {
- if ($srl === 0) continue;
- if (!is_array($this->map[$srl]))$this->map[$srl] = array();
- $this->map[$srl][] = $no;
}
}
- $result = array();
- if(is_array($this->itemKeyList))
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($node['url'], $menuInfo->site_srl);
+ if($moduleInfo->module_srl)
{
- foreach($this->itemKeyList as $srl)
+ $output = $oModuleController->deleteModule($moduleInfo->module_srl);
+ if(!$output->toBool())
{
- if (!$this->checked[$srl]){
- unset($target);
- $this->checked[$srl] = 1;
- $target->node = $srl;
- $target->child= array();
-
- while(count($this->map[$srl])){
- $this->_setParent($srl, array_shift($this->map[$srl]), $target);
- }
- $result[] = $target;
- }
+ $oDB->rollback();
+ return $output;
}
}
+ }
+ return new Object(0, 'success');
+ }
- if(is_array($result))
+ private function _recursiveDeleteMenuItem(&$oDB, &$menuInfo, $node)
+ {
+ $output = $this->_deleteMenuItem($oDB, $menuInfo, $node);
+ if(!$output->toBool())
+ {
+ return new Object(-1, $output->message);
+ }
+
+ if(is_array($node['list']))
+ {
+ foreach($node['list'] AS $key=>$value)
{
- $i = 0;
- foreach($result AS $key=>$node)
- {
- $this->moveMenuItem($this->menuSrl, 0, $i, $node->node, 'move'); //move parent node
- $this->_recursiveMoveMenuItem($node); //move child node
- $i = $node->node;
- }
+ $this->_recursiveDeleteMenuItem($oDB, $menuInfo, $value);
}
+ }
+ }
- $this->setMessage('success_updated', 'info');
+ /**
+ * Move menu items
+ * @return void
+ */
+ function procMenuAdminMoveItem()
+ {
+ $mode = Context::get('mode'); //move
+ $parent_srl = Context::get('parent_srl'); // Parent menu item serial number
+ $source_srl = Context::get('source_srl'); // Same hierarchy's menu item serial number
+ $target_srl = Context::get('target_srl'); // Self menu item serial number
- $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
- $this->setRedirectUrl($returnUrl);
+ if(!$mode || !$parent_srl || !$target_srl) return new Object(-1,'msg_invalid_request');
+
+ $oMenuAdminModel = &getAdminModel('menu');
+
+ // get original menu item info for cache file recreate
+ $originalItemInfo = $oMenuAdminModel->getMenuItemInfo($target_srl);
+ if(!$originalItemInfo->menu_item_srl)
+ {
+ return new Object(-1, 'msg_empty_menu_item');
}
- /**
- * Set parent number to child
- * @param int $parent_srl
- * @param int $child_index
- * @param object $target
- * @return void
- */
- function _setParent($parent_srl, $child_index, &$target)
+ // get menu properies with child menu
+ $phpFile = sprintf("./files/cache/menu/%s.php", $originalItemInfo->menu_srl);
+ $originMenu = NULL;
+
+ if(is_readable(FileHandler::getRealPath($phpFile)))
{
- $child_srl = $this->itemKeyList[$child_index];
- $this->checked[$child_srl] = 1;
+ @include(FileHandler::getRealPath($phpFile));
- $child_node->node = $child_srl;
- $child_node->parent_node = $parent_srl;
- $child_node->child = array();
- $target->child[] = $child_node;
-
- while(count($this->map[$child_srl])){
- $this->_setParent($child_srl, array_shift($this->map[$child_srl]), $child_node);
- }
- //return $target;
- }
-
- /**
- * move item with sub directory(recursive)
- * @param object $result
- * @return void
- */
- function _recursiveMoveMenuItem($result)
- {
- $i = 0;
- while(count($result->child))
+ if(is_array($menu->list))
{
- unset($node);
- $node = array_shift($result->child);
-
- $this->moveMenuItem($this->menuSrl, $node->parent_node, $i, $node->node, 'move');
- $this->_recursiveMoveMenuItem($node);
- $i = $node->node;
+ $this->_searchMenu($menu->list, $originalItemInfo->menu_item_srl, $originMenu);
}
}
- /**
- * move menu item
- * @param int $menu_srl
- * @param int $parent_srl
- * @param int $source_srl
- * @param int $target_srl
- * @param string $mode 'move' or 'insert'
- * @return void
- */
- function moveMenuItem($menu_srl, $parent_srl, $source_srl, $target_srl, $mode, $isShortcut='Y', $url=NULL)
+ // get target menu info for move
+ $targetMenuItemInfo = $oMenuAdminModel->getMenuItemInfo($parent_srl);
+ // if move in same sitemap
+ if($targetMenuItemInfo->menu_item_srl)
{
- // Get the original menus
- $oMenuAdminModel = &getAdminModel('menu');
+ $menu_srl = $targetMenuItemInfo->menu_srl;
+ }
+ // if move to other sitemap
+ else
+ {
+ $targetMenuInfo = $oMenuAdminModel->getMenu($parent_srl);
+ $menu_srl = $targetMenuInfo->menu_srl;
+ $parent_srl = 0;
+ }
- $target_item = $oMenuAdminModel->getMenuItemInfo($target_srl);
- if($target_item->menu_item_srl != $target_srl) return new Object(-1,'msg_invalid_request');
- // Move the menu location(change the order menu appears)
- if($mode == 'move') {
- $args->parent_srl = $parent_srl;
- $args->menu_srl = $menu_srl;
+ if(!$this->homeModuleMid)
+ {
+ $oModuleModel = &getModel('module');
+ $oMenuAdminController = &getAdminController('menu');
+ $columnList = array('modules.mid',);
+ $output = $oModuleModel->getSiteInfo(0, $columnList);
+ if($output->mid)
+ {
+ $this->homeModuleMid = $output->mid;
+ }
+ }
- if($source_srl) {
- $source_item = $oMenuAdminModel->getMenuItemInfo($source_srl);
- if($source_item->menu_item_srl != $source_srl) return new Object(-1,'msg_invalid_request');
- $args->listorder = $source_item->listorder-1;
- } else {
- $output = executeQuery('menu.getMaxListorder', $args);
- if(!$output->toBool()) return $output;
- $args->listorder = (int)$output->data->listorder;
- if(!$args->listorder) $args->listorder= 0;
- }
- $args->parent_srl = $parent_srl;
- $output = executeQuery('menu.updateMenuItemListorder', $args);
- if(!$output->toBool()) return $output;
+ $this->moveMenuItem($menu_srl, $parent_srl, $source_srl, $target_srl, $mode, $originMenu['is_shortcut'], $originMenu['url']);
+ if(count($originMenu['list']) > 0)
+ {
+ $this->_recursiveUpdateMenuItem($originMenu['list'], $menu_srl);
+ }
- $args->parent_srl = $parent_srl;
- $args->menu_item_srl = $target_srl;
- $output = executeQuery('menu.updateMenuItemNode', $args);
- if(!$output->toBool()) return $output;
+ //recreate original menu
+ $xml_file = $this->makeXmlFile($originalItemInfo->menu_srl);
+
+ //recreate target menu
+ $xml_file = $this->makeXmlFile($menu_srl);
+ }
+
+ private function _recursiveUpdateMenuItem($node, $menu_srl)
+ {
+ if(is_array($node))
+ {
+ foreach($node AS $key=>$node)
+ {
+ unset($args);
+ $args->menu_srl = $menu_srl;
+ $args->menu_item_srl = $node['node_srl'];
+ $output = executeQuery('menu.updateMenuItemNode', $args);
//module's menu_srl move also
- if($isShortcut == 'N' && !empty($url))
+ if($node['is_shortcut'] == 'N' && !empty($node['url']))
{
$oModuleModel = &getModel('module');
- $moduleInfo = $oModuleModel->getModuleInfoByMid($url);
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($node['url']);
if($menu_srl != $moduleInfo->menu_srl)
{
$moduleInfo->menu_srl = $menu_srl;
$oModuleController = &getController('module');
$output = $oModuleController->updateModule($moduleInfo);
}
+ }
- // change home menu cache file
- if($url == $this->homeModuleMid)
+ if(count($node['list']) > 0)
+ {
+ $this->_recursiveUpdateMenuItem($node['list'], $menu_srl);
+ }
+ }
+ }
+ }
+
+ /**
+ * cop menu item
+ * @return void
+ */
+ public function procMenuAdminCopyItem()
+ {
+ $parentSrl = Context::get('parent_srl');
+ $menuItemSrl = Context::get('menu_item_srl');
+
+ $oMenuModel = &getAdminModel('menu');
+ $itemInfo = $oMenuModel->getMenuItemInfo($menuItemSrl);
+ $menuSrl = $itemInfo->menu_srl;
+
+ // get menu properies with child menu
+ $phpFile = sprintf("./files/cache/menu/%s.php", $menuSrl);
+ $originMenu = NULL;
+
+ if(is_readable(FileHandler::getRealPath($phpFile)))
+ {
+ @include(FileHandler::getRealPath($phpFile));
+
+ if(is_array($menu->list))
+ {
+ $this->_searchMenu($menu->list, $menuItemSrl, $originMenu);
+ }
+ }
+
+ // copy the menu item with recursively
+ if(is_array($originMenu))
+ {
+ $this->_copyMenu($menuSrl, $parentSrl, $originMenu);
+ }
+ $this->add('insertedMenuItemSrlList', $this->insertedMenuItemSrlList);
+ }
+
+ /**
+ * search menu_item in full menu with recursively
+ * @param $menuList menu list
+ * @param $menuItemSrl current menu item serial number
+ * @param $originMenu find result menu
+ * @return void
+ */
+ private function _searchMenu(&$menuList, $menuItemSrl, &$originMenu)
+ {
+ if(array_key_exists($menuItemSrl, $menuList))
+ {
+ $originMenu = $menuList[$menuItemSrl];
+ return;
+ }
+
+ foreach($menuList AS $key=>$value)
+ {
+ if(count($value['list']) > 0)
+ {
+ $this->_searchMenu($value['list'], $menuItemSrl, $originMenu);
+ }
+ }
+ }
+
+ private function _copyMenu($menuSrl, $parentSrl, &$originMenu)
+ {
+ $oMenuAdminModel = &getAdminModel('menu');
+ $menuItemInfo = $oMenuAdminModel->getMenuItemInfo($originMenu['node_srl']);
+
+ // default argument setting
+ $args->menu_srl = $menuSrl;
+ if($parentSrl == 0) $args->parent_srl = $menuSrl;
+ else $args->parent_srl = $parentSrl;
+ $args->menu_name_key = $originMenu['text'];
+ $args->menu_name = $originMenu['text'];
+ $args->menu_open_window = $originMenu['open_window'];
+ $args->menu_expand = $originMenu['expand'];
+ $args->normal_btn = $menuItemInfo->normal_btn;
+ $args->hover_btn = $menuItemInfo->hover_btn;
+ $args->active_btn = $menuItemInfo->active_btn;
+ $args->is_shortcut = $menuItemInfo->is_shortcut;
+
+ $isModuleCopySuccess = false;
+ // if menu have a reference of module instance
+ if($menuItemInfo->is_shortcut == 'N' && !preg_match('/^http/i', $originMenu['url']))
+ {
+ $oModuleModel = &getModel('module');
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($originMenu['url']);
+
+ $args->module_type = $moduleInfo->module;
+ $randomMid = $this->_makeRandomMid();
+ $args->module_id = $moduleInfo->module.'_'.$randomMid;
+ $args->layout_srl = $moduleInfo->layout_srl;
+
+ $oModuleAdminController = &getAdminController('module');
+ $copyArg->module_srl = $moduleInfo->module_srl;
+ $copyArg->mid_1 = $args->module_id;
+ $copyArg->browser_title_1 = $moduleInfo->browser_title;
+ $copiedModuleSrl = $oModuleAdminController->procModuleAdminCopyModule($copyArg);
+
+ $args->module_srl = $copiedModuleSrl;
+
+ if($copiedModuleSrl)
+ {
+ $isModuleCopySuccess = true;
+ }
+ }
+ // if menu type is shortcut
+ else if($menuItemInfo->is_shortcut == 'Y')
+ {
+ $args->shortcut_target = $originMenu['url'];
+ $isModuleCopySuccess = true;
+ }
+
+ if($isModuleCopySuccess)
+ {
+ // if have a group permission
+ if($menuItemInfo->group_srls)
+ {
+ $args->group_srls = $menuItemInfo->group_srls;
+ }
+
+ // menu copy
+ $output = $this->procMenuAdminInsertItem($args);
+ /*if($output && !$output->toBool())
+ {
+ return $output;
+ }*/
+
+ // if have a button, copy a button image also
+ $insertedMenuItemSrl = $this->get('menu_item_srl');
+ if($menuItemInfo->normal_btn || $menuItemInfo->hover_btn || $menuItemInfo->active_btn)
+ {
+ $this->_copyButton($insertedMenuItemSrl, $menuItemInfo);
+ }
+ array_push($this->insertedMenuItemSrlList, $insertedMenuItemSrl);
+ }
+
+ // if have a child menu, copy child menu also
+ $childMenu = array_shift($originMenu['list']);
+ if(count($childMenu) > 0)
+ {
+ $this->_copyMenu($menuSrl, $insertedMenuItemSrl, $childMenu);
+ }
+ }
+
+ private function _makeRandomMid()
+ {
+ $time = time();
+ $randomString = "";
+ for($i=0;$i<4;$i++)
+ {
+ $case = rand(0, 1);
+ if($case) $doc = rand(65, 90);
+ else $doc = rand(97, 122);
+
+ $randomString .= chr($doc);
+ }
+
+ return $randomString.substr($time, -2);
+ }
+
+ /**
+ * Arrange menu items
+ * @return void|object
+ */
+ function procMenuAdminArrangeItem()
+ {
+ $this->menuSrl = Context::get('menu_srl');
+ $args->title = Context::get('title');
+ $parentKeyList = Context::get('parent_key');
+ $this->itemKeyList = Context::get('item_key');
+
+ // menu name update
+ $args->menu_srl = $this->menuSrl;
+ $output = executeQuery('menu.updateMenu', $args);
+ if(!$output->toBool()) return $output;
+
+ $this->map = array();
+ if(is_array($parentKeyList))
+ {
+ foreach($parentKeyList as $no=>$srl)
+ {
+ if($srl === 0) continue;
+ if(!is_array($this->map[$srl]))$this->map[$srl] = array();
+ $this->map[$srl][] = $no;
+ }
+ }
+
+ $result = array();
+ if(is_array($this->itemKeyList))
+ {
+ foreach($this->itemKeyList as $srl)
+ {
+ if(!$this->checked[$srl])
+ {
+ unset($target);
+ $this->checked[$srl] = 1;
+ $target->node = $srl;
+ $target->child= array();
+
+ while(count($this->map[$srl]))
{
- if(file_exists($this->homeMenuCacheFile))
- {
- @include($this->homeMenuCacheFile);
- }
- if(!$homeMenuSrl || $homeMenuSrl != $menu_srl)
- {
- $this->makeHomemenuCacheFile($menu_srl);
- }
+ $this->_setParent($srl, array_shift($this->map[$srl]), $target);
+ }
+ $result[] = $target;
+ }
+ }
+ }
+
+ if(is_array($result))
+ {
+ $i = 0;
+ foreach($result AS $key=>$node)
+ {
+ $this->moveMenuItem($this->menuSrl, 0, $i, $node->node, 'move'); //move parent node
+ $this->_recursiveMoveMenuItem($node); //move child node
+ $i = $node->node;
+ }
+ }
+
+ $this->setMessage('success_updated', 'info');
+
+ $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
+ $this->setRedirectUrl($returnUrl);
+ }
+
+ /**
+ * Set parent number to child
+ * @param int $parent_srl
+ * @param int $child_index
+ * @param object $target
+ * @return void
+ */
+ function _setParent($parent_srl, $child_index, &$target)
+ {
+ $child_srl = $this->itemKeyList[$child_index];
+ $this->checked[$child_srl] = 1;
+
+ $child_node->node = $child_srl;
+ $child_node->parent_node = $parent_srl;
+ $child_node->child = array();
+ $target->child[] = $child_node;
+
+ while(count($this->map[$child_srl]))
+ {
+ $this->_setParent($child_srl, array_shift($this->map[$child_srl]), $child_node);
+ }
+ //return $target;
+ }
+
+ /**
+ * move item with sub directory(recursive)
+ * @param object $result
+ * @return void
+ */
+ function _recursiveMoveMenuItem($result)
+ {
+ $i = 0;
+ while(count($result->child))
+ {
+ unset($node);
+ $node = array_shift($result->child);
+
+ $this->moveMenuItem($this->menuSrl, $node->parent_node, $i, $node->node, 'move');
+ $this->_recursiveMoveMenuItem($node);
+ $i = $node->node;
+ }
+ }
+
+ /**
+ * move menu item
+ * @param int $menu_srl
+ * @param int $parent_srl
+ * @param int $source_srl
+ * @param int $target_srl
+ * @param string $mode 'move' or 'insert'
+ * @return void
+ */
+ function moveMenuItem($menu_srl, $parent_srl, $source_srl, $target_srl, $mode, $isShortcut='Y', $url=NULL)
+ {
+ // Get the original menus
+ $oMenuAdminModel = &getAdminModel('menu');
+
+ $target_item = $oMenuAdminModel->getMenuItemInfo($target_srl);
+ if($target_item->menu_item_srl != $target_srl) return new Object(-1,'msg_invalid_request');
+ // Move the menu location(change the order menu appears)
+ if($mode == 'move')
+ {
+ $args->parent_srl = $parent_srl;
+ $args->menu_srl = $menu_srl;
+
+ if($source_srl)
+ {
+ $source_item = $oMenuAdminModel->getMenuItemInfo($source_srl);
+ if($source_item->menu_item_srl != $source_srl) return new Object(-1,'msg_invalid_request');
+ $args->listorder = $source_item->listorder-1;
+ }
+ else
+ {
+ $output = executeQuery('menu.getMaxListorder', $args);
+ if(!$output->toBool()) return $output;
+ $args->listorder = (int)$output->data->listorder;
+ if(!$args->listorder) $args->listorder= 0;
+ }
+ $args->parent_srl = $parent_srl;
+ $output = executeQuery('menu.updateMenuItemListorder', $args);
+ if(!$output->toBool()) return $output;
+
+ $args->parent_srl = $parent_srl;
+ $args->menu_item_srl = $target_srl;
+ $output = executeQuery('menu.updateMenuItemNode', $args);
+ if(!$output->toBool()) return $output;
+
+ //module's menu_srl move also
+ if($isShortcut == 'N' && !empty($url))
+ {
+ $oModuleModel = &getModel('module');
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($url);
+ if($menu_srl != $moduleInfo->menu_srl)
+ {
+ $moduleInfo->menu_srl = $menu_srl;
+ $oModuleController = &getController('module');
+ $output = $oModuleController->updateModule($moduleInfo);
+ }
+
+ // change home menu cache file
+ if($url == $this->homeModuleMid)
+ {
+ if(file_exists($this->homeMenuCacheFile))
+ {
+ @include($this->homeMenuCacheFile);
+ }
+ if(!$homeMenuSrl || $homeMenuSrl != $menu_srl)
+ {
+ $this->makeHomemenuCacheFile($menu_srl);
}
}
- // Add a child
- } elseif($mode == 'insert') {
- $args->menu_item_srl = $target_srl;
- $args->parent_srl = $parent_srl;
- $args->listorder = -1*getNextSequence();
- $output = executeQuery('menu.updateMenuItemNode', $args);
- if(!$output->toBool()) return $output;
- }
-
- $xml_file = $this->makeXmlFile($menu_srl);
- return $xml_file;
- }
-
- /**
- * Update xml file
- * XML file is not often generated after setting menus on the admin page\n
- * For this occasional cases, manually update was implemented. \n
- * It looks unnecessary at this moment however no need to eliminate the feature. Just leave it.
- * @return void
- */
- function procMenuAdminMakeXmlFile() {
- // Check input value
- $menu_srl = Context::get('menu_srl');
- // Get information of the menu
- $oMenuAdminModel = &getAdminModel('menu');
- $menu_info = $oMenuAdminModel->getMenu($menu_srl);
- $menu_title = $menu_info->title;
- // Re-generate the xml file
- $xml_file = $this->makeXmlFile($menu_srl);
- // Set return value
- $this->add('menu_title',$menu_title);
- $this->add('xml_file',$xml_file);
- }
-
- /**
- * Register a menu image button
- * @return void
- */
- function procMenuAdminUploadButton() {
- $menu_srl = Context::get('menu_srl');
- $menu_item_srl = Context::get('menu_item_srl');
- $target = Context::get('target');
- $target_file = Context::get($target);
- // Error occurs when the target is neither a uploaded file nor a valid file
- if(!$menu_srl || !$menu_item_srl || !$target_file || !is_uploaded_file($target_file['tmp_name']) || !preg_match('/\.(gif|jpeg|jpg|png)/i',$target_file['name'])) {
- Context::set('error_messge', Context::getLang('msg_invalid_request'));
- // Move the file to a specific director if the uploaded file meets requirement
- } else {
- $tmp_arr = explode('.',$target_file['name']);
- $ext = $tmp_arr[count($tmp_arr)-1];
-
- $path = sprintf('./files/attach/menu_button/%d/', $menu_srl);
- $filename = sprintf('%s%d.%s.%s', $path, $menu_item_srl, $target, $ext);
-
- if(!is_dir($path)) FileHandler::makeDir($path);
-
- move_uploaded_file($target_file['tmp_name'], $filename);
- Context::set('filename', $filename);
- }
-
-
- $this->setTemplatePath($this->module_path.'tpl');
- $this->setTemplateFile('menu_file_uploaded');
- }
-
- /**
- * Remove the menu image button
- * @return void
- */
- function procMenuAdminDeleteButton() {
- $menu_srl = Context::get('menu_srl');
- $menu_item_srl = Context::get('menu_item_srl');
- $target = Context::get('target');
- $filename = Context::get('filename');
- FileHandler::removeFile($filename);
-
- $this->add('target', $target);
- }
-
- /**
- * Get all act list for admin menu
- * @return void
- */
- function procMenuAdminAllActList() {
- $oModuleModel = &getModel('module');
- $installed_module_list = $oModuleModel->getModulesXmlInfo();
- if(is_array($installed_module_list))
- {
- $currentLang = Context::getLangType();
- $menuList = array();
- foreach($installed_module_list AS $key=>$value)
- {
- $info = $oModuleModel->getModuleActionXml($value->module);
- if($info->menu) $menuList[$value->module] = $info->menu;
- unset($info->menu);
- }
}
- $this->add('menuList', $menuList);
- }
-
- /**
- * Get all act list for admin menu
- * @return void|object
- */
- function procMenuAdminInsertItemForAdminMenu()
+ // Add a child
+ }
+ elseif($mode == 'insert')
{
- $requestArgs = Context::getRequestVars();
- $tmpMenuName = explode(':', $requestArgs->menu_name);
- $moduleName = $tmpMenuName[0];
- $menuName = $tmpMenuName[1];
-
- // variable setting
- $logged_info = Context::get('logged_info');
- //$oMenuAdminModel = &getAdminModel('menu');
- $oMemberModel = &getModel('member');
-
- //$parentMenuInfo = $oMenuAdminModel->getMenuItemInfo($requestArgs->parent_srl);
- $groupSrlList = $oMemberModel->getMemberGroups($logged_info->member_srl);
-
- //preg_match('/\{\$lang->menu_gnb\[(.*?)\]\}/i', $parentMenuInfo->name, $m);
- $oModuleModel = &getModel('module');
- //$info = $oModuleModel->getModuleInfoXml($moduleName);
- $info = $oModuleModel->getModuleActionXml($moduleName);
-
- $url = getNotEncodedFullUrl('', 'module', 'admin', 'act', $info->menu->{$menuName}->index);
- if(empty($url)) $url = getNotEncodedFullUrl('', 'module', 'admin', 'act', $info->admin_index_act);
- if(empty($url)) $url = getNotEncodedFullUrl('', 'module', 'admin');
- $dbInfo = Context::getDBInfo();
-
- $args->menu_item_srl = (!$requestArgs->menu_item_srl) ? getNextSequence() : $requestArgs->menu_item_srl;
- $args->parent_srl = $requestArgs->parent_srl;
- $args->menu_srl = $requestArgs->menu_srl;
- $args->name = sprintf('{$lang->menu_gnb_sub[\'%s\']}', $menuName);
- //if now page is https...
- if(strpos($url, 'https') !== false)
- {
- $args->url = str_replace('https'.substr($dbInfo->default_url, 4), '', $url);
- }
- else
- {
- $args->url = str_replace($dbInfo->default_url, '', $url);
- }
- $args->open_window = 'N';
- $args->expand = 'N';
- $args->normal_btn = '';
- $args->hover_btn = '';
- $args->active_btn = '';
- $args->group_srls = implode(',', array_keys($groupSrlList));
- $args->listorder = -1*$args->menu_item_srl;
-
- // Check if already exists
- $oMenuModel = &getAdminModel('menu');
- $item_info = $oMenuModel->getMenuItemInfo($args->menu_item_srl);
- // Update if exists
- if($item_info->menu_item_srl == $args->menu_item_srl) {
- $output = executeQuery('menu.updateMenuItem', $args);
- if(!$output->toBool()) return $output;
- }
- // Insert if not exist
- else {
- $args->listorder = -1*$args->menu_item_srl;
- $output = executeQuery('menu.insertMenuItem', $args);
- if(!$output->toBool()) return $output;
- }
- // Get information of the menu
- $menu_info = $oMenuModel->getMenu($args->menu_srl);
- $menu_title = $menu_info->title;
- // Update the xml file and get its location
- $xml_file = $this->makeXmlFile($args->menu_srl);
-
- $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdminSetup');
- $this->setRedirectUrl($returnUrl);
+ $args->menu_item_srl = $target_srl;
+ $args->parent_srl = $parent_srl;
+ $args->listorder = -1*getNextSequence();
+ $output = executeQuery('menu.updateMenuItemNode', $args);
+ if(!$output->toBool()) return $output;
}
- /**
- * Update menu auth (Exposure and Access)
- * @return void
- */
- public function procMenuAdminUpdateAuth()
+ $xml_file = $this->makeXmlFile($menu_srl);
+ return $xml_file;
+ }
+
+ /**
+ * Update xml file
+ * XML file is not often generated after setting menus on the admin page\n
+ * For this occasional cases, manually update was implemented. \n
+ * It looks unnecessary at this moment however no need to eliminate the feature. Just leave it.
+ * @return void
+ */
+ function procMenuAdminMakeXmlFile()
+ {
+ // Check input value
+ $menu_srl = Context::get('menu_srl');
+ // Get information of the menu
+ $oMenuAdminModel = &getAdminModel('menu');
+ $menu_info = $oMenuAdminModel->getMenu($menu_srl);
+ $menu_title = $menu_info->title;
+ // Re-generate the xml file
+ $xml_file = $this->makeXmlFile($menu_srl);
+ // Set return value
+ $this->add('menu_title',$menu_title);
+ $this->add('xml_file',$xml_file);
+ }
+
+ /**
+ * Register a menu image button
+ * @return void
+ */
+ function procMenuAdminUploadButton()
+ {
+ $menu_srl = Context::get('menu_srl');
+ $menu_item_srl = Context::get('menu_item_srl');
+ $target = Context::get('target');
+ $target_file = Context::get($target);
+ // Error occurs when the target is neither a uploaded file nor a valid file
+ if(!$menu_srl || !$menu_item_srl || !$target_file || !is_uploaded_file($target_file['tmp_name']) || !preg_match('/\.(gif|jpeg|jpg|png)/i',$target_file['name']))
{
- $menuItemSrl = Context::get('menu_item_srl');
- $exposure = Context::get('exposure');
- $htPerm = Context::get('htPerm');
-
- $oMenuModel = &getAdminModel('menu');
- $itemInfo = $oMenuModel->getMenuItemInfo($menuItemSrl);
- $args = $itemInfo;
-
- // Menu Exposure update
- // if exposure target is only login user...
- if(!$exposure)
- {
- $args->group_srls = '';
- }
- else
- {
- if(is_array($exposure))
- {
- $args->group_srls = implode(',', $exposure);
- }
- else if($exposure && in_array($exposure,array('-1','-3')))
- {
- $args->group_srls = $exposure;
- }
- }
-
- $output = executeQuery('menu.updateMenuItem', $args);
- if(!$output->toBool())
- {
- return $output;
- }
-
- // Module Access update
- unset($args);
- $oMenuAdminModel = &getAdminModel('menu');
- $menuInfo = $oMenuAdminModel->getMenu($itemInfo->menu_srl);
-
- $oModuleModel = &getModel('module');
- $moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url, $menuInfo->site_srl);
-
- $xml_info = $oModuleModel->getModuleActionXML($moduleInfo->module);
-
- $grantList = $xml_info->grant;
- $grantList->access->default = 'guest';
- $grantList->manager->default = 'manager';
-
- foreach($grantList AS $grantName=>$grantInfo)
- {
- if(!$htPerm[$grantName])
- {
- continue;
- }
-
- // users in a particular group
- if(is_array($htPerm[$grantName]))
- {
- $grant->{$grantName} = $htPerm[$grantName];
- continue;
- }
- // -1 = Log-in user only, -2 = site members only, 0 = all users
- else
- {
- $grant->{$grantName}[] = $htPerm[$grantName];
- continue;
- }
- $grant->{$group_srls} = array();
- }
- if(count($grant))
- {
- $oModuleController = getController('module');
- $oModuleController->insertModuleGrants($moduleInfo->module_srl, $grant);
- }
-
- // recreate menu cache file
- $this->makeXmlFile($itemInfo->menu_srl);
+ Context::set('error_messge', Context::getLang('msg_invalid_request'));
+ // Move the file to a specific director if the uploaded file meets requirement
}
-
- /**
- * Generate XML file for menu and return its location
- * @param int $menu_srl
- * @return string
- */
- function makeXmlFile($menu_srl) {
- // Return if there is no information when creating the xml file
- if(!$menu_srl) return;
- // Get menu informaton
- $args->menu_srl = $menu_srl;
- $output = executeQuery('menu.getMenu', $args);
- if(!$output->toBool() || !$output->data) return $output;
- $site_srl = (int)$output->data->site_srl;
-
- if($site_srl) {
- $oModuleModel = &getModel('module');
- $columnList = array('sites.domain');
- $site_info = $oModuleModel->getSiteInfo($site_srl, $columnList);
- $domain = $site_info->domain;
- }
- // Get a list of menu items corresponding to menu_srl by listorder
- $args->menu_srl = $menu_srl;
- $args->sort_index = 'listorder';
- $output = executeQuery('menu.getMenuItems', $args);
- if(!$output->toBool()) return;
- // Specify the name of the cache file
- $xml_file = sprintf("./files/cache/menu/%s.xml.php", $menu_srl);
- $php_file = sprintf("./files/cache/menu/%s.php", $menu_srl);
- // If no data found, generate an XML file without node data
- $list = $output->data;
- if(!$list) {
- $xml_buff = "";
- FileHandler::writeFile($xml_file, $xml_buff);
- FileHandler::writeFile($php_file, '');
- return $xml_file;
- }
- // Change to an array if only a single data is obtained
- if(!is_array($list)) $list = array($list);
- // Create a tree for loop
- $list_count = count($list);
- for($i=0;$i<$list_count;$i++) {
- $node = $list[$i];
- $menu_item_srl = $node->menu_item_srl;
- $parent_srl = $node->parent_srl;
-
- $tree[$parent_srl][$menu_item_srl] = $node;
- }
- // A common header to set permissions of the cache file and groups
- $header_script =
- '$lang_type = Context::getLangType(); '.
- '$is_logged = Context::get(\'is_logged\'); '.
- '$logged_info = Context::get(\'logged_info\'); '.
- '$site_srl = '.$site_srl.';'.
- '$site_admin = false;'.
- 'if($site_srl) { '.
- '$oModuleModel = &getModel(\'module\');'.
- '$site_module_info = $oModuleModel->getSiteInfo($site_srl); '.
- 'if($site_module_info) Context::set(\'site_module_info\',$site_module_info);'.
- 'else $site_module_info = Context::get(\'site_module_info\');'.
- '$grant = $oModuleModel->getGrant($site_module_info, $logged_info); '.
- 'if($grant->manager ==1) $site_admin = true;'.
- '}'.
- 'if($is_logged) {'.
- 'if($logged_info->is_admin=="Y") $is_admin = true; '.
- 'else $is_admin = false; '.
- '$group_srls = array_keys($logged_info->group_list); '.
- '} else { '.
- '$is_admin = false; '.
- '$group_srls = array(); '.
- '}';
- // Create the xml cache file (a separate session is needed for xml cache)
- $xml_buff = sprintf(
- 'init(); '.
- 'header("Content-Type: text/xml; charset=UTF-8"); '.
- 'header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); '.
- 'header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); '.
- 'header("Cache-Control: no-store, no-cache, must-revalidate"); '.
- 'header("Cache-Control: post-check=0, pre-check=0", false); '.
- 'header("Pragma: no-cache"); '.
- '%s '.
- '$oContext->close(); '.
- '?>'.
- '%s',
- $header_script,
- $this->getXmlTree($tree[0], $tree, $site_srl, $domain)
- );
- // Create php cache file
- $php_output = $this->getPhpCacheCode($tree[0], $tree, $site_srl, $domain);
- $php_buff = sprintf(
- 'list = array(%s); '.
- 'Context::set("included_menu", $menu); '.
- '?>',
- $header_script,
- $php_output['name'],
- $php_output['buff']
- );
- // Save File
- FileHandler::writeFile($xml_file, $xml_buff);
- FileHandler::writeFile($php_file, $php_buff);
- return $xml_file;
- }
-
- /**
- * Create xml data recursively looping for array nodes by referencing to parent_srl
- * menu xml file uses a tag named "node" and this XML configures menus on admin page.
- * (Implement tree menu by reading the xml file in tree_menu.js)
- * @param array $source_node
- * @param array $tree
- * @param int $site_srl
- * @param string $domain
- * @return string
- */
- function getXmlTree($source_node, $tree, $site_srl, $domain) {
- if(!$source_node) return;
-
- $oMenuAdminModel = &getAdminModel('menu');
-
- foreach($source_node as $menu_item_srl => $node) {
- $child_buff = "";
- // Get data of the child nodes
- if($menu_item_srl&&$tree[$menu_item_srl]) $child_buff = $this->getXmlTree($tree[$menu_item_srl], $tree, $site_srl, $domain);
- // List variables
- $names = $oMenuAdminModel->getMenuItemNames($node->name, $site_srl);
- foreach($names as $key => $val) {
- $name_arr_str .= sprintf('"%s"=>"%s",',$key, str_replace('\\','\\\\',htmlspecialchars($val)));
- }
- $name_str = sprintf('$_names = array(%s); print $_names[$lang_type];', $name_arr_str);
-
- $url = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->url);
- if(preg_match('/^([0-9a-zA-Z\_\-]+)$/', $node->url)) {
- $href = getSiteUrl($domain, '','mid',$node->url);
- $pos = strpos($href, $_SERVER['HTTP_HOST']);
- if($pos !== false) $href = substr($href, $pos+strlen($_SERVER['HTTP_HOST']));
- } else $href = $url;
- $is_shortcut = $node->is_shortcut;
- $open_window = $node->open_window;
- $expand = $node->expand;
-
- $normal_btn = $node->normal_btn;
- if($normal_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$normal_btn)) $normal_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$normal_btn);
- else $normal_btn = '';
- $hover_btn = $node->hover_btn;
- if($hover_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$hover_btn)) $hover_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$hover_btn);
- else $hover_btn = '';
- $active_btn = $node->active_btn;
- if($active_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$active_btn)) $active_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$active_btn);
- else $active_btn = '';
-
- $group_srls = $node->group_srls;
-
- if($normal_btn) {
- if(preg_match('/\.png$/',$normal_btn)) $classname = 'class="iePngFix"';
- else $classname = '';
- if($hover_btn) $hover_str = sprintf('onmouseover="this.src=\'%s\'"', $hover_btn); else $hover_str = '';
- if($active_btn) $active_str = sprintf('onmousedown="this.src=\'%s\'"', $active_btn); else $active_str = '';
- $link = sprintf('<img src="%s" onmouseout="this.src=\'%s\'" alt="" %s %s %s />', $normal_btn, $normal_btn, $hover_str, $active_str, $classname);
- } else {
- $link = '';
- }
- // If the value of node->group_srls exists
- if($group_srls)$group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s))))||($is_logged&&%s))',$group_srls,$group_srls == -1?1:0);
- else $group_check_code = "true";
- $attribute = sprintf(
- 'node_srl="%s" parent_srl="%s" menu_name_key=\'%s\' text="" url="" href="" is_shortcut="%s" open_window="%s" expand="%s" normal_btn="%s" hover_btn="%s" active_btn="%s" link="%s"',
- $menu_item_srl,
- $node->parent_srl,
- addslashes($node->name),
- $group_check_code,
- $name_str,
- $group_check_code,
- $url,
- $group_check_code,
- $href,
- $is_shortcut,
- $open_window,
- $expand,
- $normal_btn,
- $hover_btn,
- $active_btn,
- $group_check_code,
- $link
- );
-
- if($child_buff) $buff .= sprintf('%s', $attribute, $child_buff);
- else $buff .= sprintf('', $attribute);
- }
- return $buff;
- }
-
- /**
- * Return php code converted from nodes in an array
- * Although xml data can be used for tpl, menu to menu, it needs to use javascript separately
- * By creating cache file in php and then you can get menu information without DB
- * This cache includes in ModuleHandler::displayContent() and then Context::set()
- * @param array $source_node
- * @param array $tree
- * @param int $site_srl
- * @param string $domain
- * @return array
- */
- function getPhpCacheCode($source_node, $tree, $site_srl, $domain) {
- $output = array("buff"=>"", "url_list"=>array());
- if(!$source_node) return $output;
-
- $oMenuAdminModel = &getAdminModel('menu');
-
- foreach($source_node as $menu_item_srl => $node) {
- // Get data from child nodes if exist.
- if($menu_item_srl&&$tree[$menu_item_srl]) $child_output = $this->getPhpCacheCode($tree[$menu_item_srl], $tree, $site_srl, $domain);
- else $child_output = array("buff"=>"", "url_list"=>array());
- // List variables
- $names = $oMenuAdminModel->getMenuItemNames($node->name, $site_srl);
- unset($name_arr_str);
- foreach($names as $key => $val) {
- $name_arr_str .= sprintf('"%s"=>"%s",',$key, str_replace(array('\\','"'),array('\\\\','"'),$val));
- }
- $name_str = sprintf('$_menu_names[%d] = array(%s); %s', $node->menu_item_srl, $name_arr_str, $child_output['name']);
- // If url value is not empty in the current node, put the value into an array url_list
- if($node->url) $child_output['url_list'][] = $node->url;
- $output['url_list'] = array_merge($output['url_list'], $child_output['url_list']);
- // If node->group_srls value exists
- if($node->group_srls)$group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s))))||($is_logged && %s))',$node->group_srls,$node->group_srls == -1?1:0);
- else $group_check_code = "true";
- // List variables
- $href = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->href);
- $url = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->url);
- if(preg_match('/^([0-9a-zA-Z\_\-]+)$/i', $node->url)) {
- $href = getSiteUrl($domain, '','mid',$node->url);
- $pos = strpos($href, $_SERVER['HTTP_HOST']);
- if($pos !== false) $href = substr($href, $pos+strlen($_SERVER['HTTP_HOST']));
- } else $href = $url;
- $is_shortcut = $node->is_shortcut;
- $open_window = $node->open_window;
- $normal_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->normal_btn);
- $hover_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->hover_btn);
- $active_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->active_btn);
-
- foreach($child_output['url_list'] as $key =>$val)
- {
- $child_output['url_list'][$key] = addslashes($val);
- }
-
- $selected = '"'.implode('","',$child_output['url_list']).'"';
- $child_buff = $child_output['buff'];
- $expand = $node->expand;
-
- $normal_btn = $node->normal_btn;
- if($normal_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$normal_btn)) $normal_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$normal_btn);
- else $normal_btn = '';
-
- $hover_btn = $node->hover_btn;
- if($hover_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$hover_btn)) $hover_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$hover_btn);
- else $hover_btn = '';
-
- $active_btn = $node->active_btn;
- if($active_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$active_btn)) $active_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$active_btn);
- else $active_btn = '';
-
- $group_srls = $node->group_srls;
-
- if($normal_btn) {
- if(preg_match('/\.png$/',$normal_btn)) $classname = 'class=\"iePngFix\"';
- else $classname = '';
- if($hover_btn) $hover_str = sprintf('onmouseover=\"this.src=\'%s\'\"', $hover_btn); else $hover_str = '';
- if($active_btn) $active_str = sprintf('onmousedown=\"this.src=\'%s\'\"', $active_btn); else $active_str = '';
- $link = sprintf('"
"', $normal_btn, $normal_btn, $node->menu_item_srl, $hover_str, $active_str, $classname);
- if($active_btn) $link_active = sprintf('"
"', $active_btn, $node->menu_item_srl, $classname);
- else $link_active = $link;
- } else {
- $link_active = $link = sprintf('$_menu_names[%d][$lang_type]', $node->menu_item_srl);
- }
- // Create properties (check if it belongs to the menu node by url_list. It looks a trick but fast and powerful)
- $attribute = sprintf(
- '"node_srl"=>"%s","parent_srl"=>"%s","menu_name_key"=>\'%s\',"text"=>(%s?$_menu_names[%d][$lang_type]:""),"href"=>(%s?"%s":""),"url"=>(%s?"%s":""),"is_shortcut"=>"%s","open_window"=>"%s","normal_btn"=>"%s","hover_btn"=>"%s","active_btn"=>"%s","selected"=>(array(%s)&&in_array(Context::get("mid"),array(%s))?1:0),"expand"=>"%s", "list"=>array(%s), "link"=>(%s? ( array(%s)&&in_array(Context::get("mid"),array(%s)) ?%s:%s):""),',
- $node->menu_item_srl,
- $node->parent_srl,
- addslashes($node->name),
- $group_check_code,
- $node->menu_item_srl,
- $group_check_code,
- $href,
- $group_check_code,
- $url,
- $is_shortcut,
- $open_window,
- $normal_btn,
- $hover_btn,
- $active_btn,
- $selected,
- $selected,
- $expand,
- $child_buff,
- $group_check_code,
- $selected,
- $selected,
- $link_active,
- $link
- );
- // Generate buff data
- $output['buff'] .= sprintf('%s=>array(%s),', $node->menu_item_srl, $attribute);
- $output['name'] .= $name_str;
- }
- return $output;
- }
-
- /**
- * Mapping menu and layout
- * When setting menu on the layout, map the default layout
- * @param int $layout_srl
- * @param array $menu_srl_list
- */
- function updateMenuLayout($layout_srl, $menu_srl_list) {
- if(!count($menu_srl_list)) return;
- // Delete the value of menu_srls
- $args->menu_srls = implode(',',$menu_srl_list);
- $output = executeQuery('menu.deleteMenuLayout', $args);
- if(!$output->toBool()) return $output;
-
- $args->layout_srl = $layout_srl;
- // Mapping menu_srls, layout_srl
- for($i=0;$imenu_srl = $menu_srl_list[$i];
- $output = executeQuery('menu.insertMenuLayout', $args);
- if(!$output->toBool()) return $output;
- }
- }
-
- /**
- * Register a menu image button
- * @param object $args
- * @return array
- */
- function _uploadButton($args)
+ else
{
- // path setting
- $path = sprintf('./files/attach/menu_button/%d/', $args->menu_srl);
- if($args->menu_normal_btn || $args->menu_hover_btn || $args->menu_active_btn && !is_dir($path))
- {
- FileHandler::makeDir($path);
- }
-
- if($args->isNormalDelete == 'Y' || $args->isHoverDelete == 'Y' || $args->isActiveDelete == 'Y')
- {
- $oMenuModel = &getAdminModel('menu');
- $itemInfo = $oMenuModel->getMenuItemInfo($args->menu_item_srl);
-
- if($args->isNormalDelete == 'Y' && $itemInfo->normal_btn) FileHandler::removeFile($itemInfo->normal_btn);
- if($args->isHoverDelete == 'Y' && $itemInfo->hover_btn) FileHandler::removeFile($itemInfo->hover_btn);
- if($args->isActiveDelete == 'Y' && $itemInfo->active_btn) FileHandler::removeFile($itemInfo->active_btn);
- }
-
- $returnArray = array();
- $date = date('YmdHis');
- // normal button
- if($args->menu_normal_btn)
- {
- $tmp_arr = explode('.',$args->menu_normal_btn['name']);
- $ext = $tmp_arr[count($tmp_arr)-1];
-
- $filename = sprintf('%s%d.%s.%s.%s', $path, $args->menu_item_srl, $date, 'menu_normal_btn', $ext);
- move_uploaded_file($args->menu_normal_btn['tmp_name'], $filename);
- $returnArray['normal_btn'] = $filename;
- }
-
- // hover button
- if($args->menu_hover_btn)
- {
- $tmp_arr = explode('.',$args->menu_hover_btn['name']);
- $ext = $tmp_arr[count($tmp_arr)-1];
-
- $filename = sprintf('%s%d.%s.%s.%s', $path, $args->menu_item_srl, $date, 'menu_hover_btn', $ext);
- move_uploaded_file($args->menu_hover_btn['tmp_name'], $filename);
- $returnArray['hover_btn'] = $filename;
- }
-
- // active button
- if($args->menu_active_btn)
- {
- $tmp_arr = explode('.',$args->menu_active_btn['name']);
- $ext = $tmp_arr[count($tmp_arr)-1];
-
- $filename = sprintf('%s%d.%s.%s.%s', $path, $args->menu_item_srl, $date, 'menu_active_btn', $ext);
- move_uploaded_file($args->menu_active_btn['tmp_name'], $filename);
- $returnArray['active_btn'] = $filename;
- }
- return $returnArray;
- }
-
- /**
- * When copy a menu, button copied also.
- * @param $args menuItemInfo with button values
- */
- private function _copyButton($insertedMenuItemSrl, &$menuItemInfo)
- {
- //normal_btn
- if($menuItemInfo->normal_btn)
- {
- $originFile = FileHandler::getRealPath($menuItemInfo->normal_btn);
- $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->normal_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'normal');
-
- FileHandler::copyFile($originFile, $targetFile);
- }
-
- //hover_btn
- if($menuItemInfo->hover_btn)
- {
- $originFile = FileHandler::getRealPath($menuItemInfo->hover_btn);
- $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->hover_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'hover');
-
- FileHandler::copyFile($originFile, $targetFile);
- }
-
- //active_btn
- if($menuItemInfo->active_btn)
- {
- $originFile = FileHandler::getRealPath($menuItemInfo->active_btn);
- $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->active_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'active');
-
- FileHandler::copyFile($originFile, $targetFile);
- }
- }
-
- private function _changeMenuItemSrlInButtonPath($buttonPath, $menuSrl, $menuItemSrl, $mode)
- {
- $path = sprintf('./files/attach/menu_button/%d/', $menuSrl);
- $tmp_arr = explode('.', $buttonPath);
+ $tmp_arr = explode('.',$target_file['name']);
$ext = $tmp_arr[count($tmp_arr)-1];
- return sprintf('%s%d.%s.%s', $path, $menuItemSrl, 'menu_'.$mode.'_btn', $ext);
+
+ $path = sprintf('./files/attach/menu_button/%d/', $menu_srl);
+ $filename = sprintf('%s%d.%s.%s', $path, $menu_item_srl, $target, $ext);
+
+ if(!is_dir($path)) FileHandler::makeDir($path);
+
+ move_uploaded_file($target_file['tmp_name'], $filename);
+ Context::set('filename', $filename);
}
- public function makeHomemenuCacheFile($menuSrl)
+ $this->setTemplatePath($this->module_path.'tpl');
+ $this->setTemplateFile('menu_file_uploaded');
+ }
+
+ /**
+ * Remove the menu image button
+ * @return void
+ */
+ function procMenuAdminDeleteButton()
+ {
+ $menu_srl = Context::get('menu_srl');
+ $menu_item_srl = Context::get('menu_item_srl');
+ $target = Context::get('target');
+ $filename = Context::get('filename');
+ FileHandler::removeFile($filename);
+
+ $this->add('target', $target);
+ }
+
+ /**
+ * Get all act list for admin menu
+ * @return void
+ */
+ function procMenuAdminAllActList()
+ {
+ $oModuleModel = &getModel('module');
+ $installed_module_list = $oModuleModel->getModulesXmlInfo();
+ if(is_array($installed_module_list))
{
- $cacheBuff .= sprintf('homeMenuCacheFile, $cacheBuff);
+ $currentLang = Context::getLangType();
+ $menuList = array();
+ foreach($installed_module_list AS $key=>$value)
+ {
+ $info = $oModuleModel->getModuleActionXml($value->module);
+ if($info->menu) $menuList[$value->module] = $info->menu;
+ unset($info->menu);
+ }
}
+ $this->add('menuList', $menuList);
+ }
- public function getHomeMenuCacheFile()
+ /**
+ * Get all act list for admin menu
+ * @return void|object
+ */
+ function procMenuAdminInsertItemForAdminMenu()
+ {
+ $requestArgs = Context::getRequestVars();
+ $tmpMenuName = explode(':', $requestArgs->menu_name);
+ $moduleName = $tmpMenuName[0];
+ $menuName = $tmpMenuName[1];
+
+ // variable setting
+ $logged_info = Context::get('logged_info');
+ //$oMenuAdminModel = &getAdminModel('menu');
+ $oMemberModel = &getModel('member');
+
+ //$parentMenuInfo = $oMenuAdminModel->getMenuItemInfo($requestArgs->parent_srl);
+ $groupSrlList = $oMemberModel->getMemberGroups($logged_info->member_srl);
+
+ //preg_match('/\{\$lang->menu_gnb\[(.*?)\]\}/i', $parentMenuInfo->name, $m);
+ $oModuleModel = &getModel('module');
+ //$info = $oModuleModel->getModuleInfoXml($moduleName);
+ $info = $oModuleModel->getModuleActionXml($moduleName);
+
+ $url = getNotEncodedFullUrl('', 'module', 'admin', 'act', $info->menu->{$menuName}->index);
+ if(empty($url)) $url = getNotEncodedFullUrl('', 'module', 'admin', 'act', $info->admin_index_act);
+ if(empty($url)) $url = getNotEncodedFullUrl('', 'module', 'admin');
+ $dbInfo = Context::getDBInfo();
+
+ $args->menu_item_srl = (!$requestArgs->menu_item_srl) ? getNextSequence() : $requestArgs->menu_item_srl;
+ $args->parent_srl = $requestArgs->parent_srl;
+ $args->menu_srl = $requestArgs->menu_srl;
+ $args->name = sprintf('{$lang->menu_gnb_sub[\'%s\']}', $menuName);
+ //if now page is https...
+ if(strpos($url, 'https') !== false)
{
- return $this->homeMenuCacheFile;
+ $args->url = str_replace('https'.substr($dbInfo->default_url, 4), '', $url);
}
- }
-?>
+ else
+ {
+ $args->url = str_replace($dbInfo->default_url, '', $url);
+ }
+ $args->open_window = 'N';
+ $args->expand = 'N';
+ $args->normal_btn = '';
+ $args->hover_btn = '';
+ $args->active_btn = '';
+ $args->group_srls = implode(',', array_keys($groupSrlList));
+ $args->listorder = -1*$args->menu_item_srl;
+
+ // Check if already exists
+ $oMenuModel = &getAdminModel('menu');
+ $item_info = $oMenuModel->getMenuItemInfo($args->menu_item_srl);
+ // Update if exists
+ if($item_info->menu_item_srl == $args->menu_item_srl)
+ {
+ $output = executeQuery('menu.updateMenuItem', $args);
+ if(!$output->toBool()) return $output;
+ }
+ // Insert if not exist
+ else
+ {
+ $args->listorder = -1*$args->menu_item_srl;
+ $output = executeQuery('menu.insertMenuItem', $args);
+ if(!$output->toBool()) return $output;
+ }
+ // Get information of the menu
+ $menu_info = $oMenuModel->getMenu($args->menu_srl);
+ $menu_title = $menu_info->title;
+ // Update the xml file and get its location
+ $xml_file = $this->makeXmlFile($args->menu_srl);
+
+ $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdminSetup');
+ $this->setRedirectUrl($returnUrl);
+ }
+
+ /**
+ * Update menu auth (Exposure and Access)
+ * @return void
+ */
+ public function procMenuAdminUpdateAuth()
+ {
+ $menuItemSrl = Context::get('menu_item_srl');
+ $exposure = Context::get('exposure');
+ $htPerm = Context::get('htPerm');
+
+ $oMenuModel = &getAdminModel('menu');
+ $itemInfo = $oMenuModel->getMenuItemInfo($menuItemSrl);
+ $args = $itemInfo;
+
+ // Menu Exposure update
+ // if exposure target is only login user...
+ if(!$exposure)
+ {
+ $args->group_srls = '';
+ }
+ else
+ {
+ if(is_array($exposure))
+ {
+ $args->group_srls = implode(',', $exposure);
+ }
+ else if($exposure && in_array($exposure,array('-1','-3')))
+ {
+ $args->group_srls = $exposure;
+ }
+ }
+
+ $output = executeQuery('menu.updateMenuItem', $args);
+ if(!$output->toBool())
+ {
+ return $output;
+ }
+
+ // Module Access update
+ unset($args);
+ $oMenuAdminModel = &getAdminModel('menu');
+ $menuInfo = $oMenuAdminModel->getMenu($itemInfo->menu_srl);
+
+ $oModuleModel = &getModel('module');
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url, $menuInfo->site_srl);
+
+ $xml_info = $oModuleModel->getModuleActionXML($moduleInfo->module);
+
+ $grantList = $xml_info->grant;
+ $grantList->access->default = 'guest';
+ $grantList->manager->default = 'manager';
+
+ foreach($grantList AS $grantName=>$grantInfo)
+ {
+ if(!$htPerm[$grantName])
+ {
+ continue;
+ }
+
+ // users in a particular group
+ if(is_array($htPerm[$grantName]))
+ {
+ $grant->{$grantName} = $htPerm[$grantName];
+ continue;
+ }
+ // -1 = Log-in user only, -2 = site members only, 0 = all users
+ else
+ {
+ $grant->{$grantName}[] = $htPerm[$grantName];
+ continue;
+ }
+ $grant->{$group_srls} = array();
+ }
+ if(count($grant))
+ {
+ $oModuleController = getController('module');
+ $oModuleController->insertModuleGrants($moduleInfo->module_srl, $grant);
+ }
+
+ // recreate menu cache file
+ $this->makeXmlFile($itemInfo->menu_srl);
+ }
+
+ /**
+ * Generate XML file for menu and return its location
+ * @param int $menu_srl
+ * @return string
+ */
+ function makeXmlFile($menu_srl)
+ {
+ // Return if there is no information when creating the xml file
+ if(!$menu_srl) return;
+ // Get menu informaton
+ $args->menu_srl = $menu_srl;
+ $output = executeQuery('menu.getMenu', $args);
+ if(!$output->toBool() || !$output->data) return $output;
+ $site_srl = (int)$output->data->site_srl;
+
+ if($site_srl)
+ {
+ $oModuleModel = &getModel('module');
+ $columnList = array('sites.domain');
+ $site_info = $oModuleModel->getSiteInfo($site_srl, $columnList);
+ $domain = $site_info->domain;
+ }
+ // Get a list of menu items corresponding to menu_srl by listorder
+ $args->menu_srl = $menu_srl;
+ $args->sort_index = 'listorder';
+ $output = executeQuery('menu.getMenuItems', $args);
+ if(!$output->toBool()) return;
+ // Specify the name of the cache file
+ $xml_file = sprintf("./files/cache/menu/%s.xml.php", $menu_srl);
+ $php_file = sprintf("./files/cache/menu/%s.php", $menu_srl);
+ // If no data found, generate an XML file without node data
+ $list = $output->data;
+ if(!$list)
+ {
+ $xml_buff = "";
+ FileHandler::writeFile($xml_file, $xml_buff);
+ FileHandler::writeFile($php_file, '');
+ return $xml_file;
+ }
+ // Change to an array if only a single data is obtained
+ if(!is_array($list)) $list = array($list);
+ // Create a tree for loop
+ $list_count = count($list);
+ for($i=0;$i<$list_count;$i++)
+ {
+ $node = $list[$i];
+ $menu_item_srl = $node->menu_item_srl;
+ $parent_srl = $node->parent_srl;
+
+ $tree[$parent_srl][$menu_item_srl] = $node;
+ }
+ // A common header to set permissions of the cache file and groups
+ $header_script =
+ '$lang_type = Context::getLangType(); '.
+ '$is_logged = Context::get(\'is_logged\'); '.
+ '$logged_info = Context::get(\'logged_info\'); '.
+ '$site_srl = '.$site_srl.';'.
+ '$site_admin = false;'.
+ 'if($site_srl) { '.
+ '$oModuleModel = &getModel(\'module\');'.
+ '$site_module_info = $oModuleModel->getSiteInfo($site_srl); '.
+ 'if($site_module_info) Context::set(\'site_module_info\',$site_module_info);'.
+ 'else $site_module_info = Context::get(\'site_module_info\');'.
+ '$grant = $oModuleModel->getGrant($site_module_info, $logged_info); '.
+ 'if($grant->manager ==1) $site_admin = true;'.
+ '}'.
+ 'if($is_logged) {'.
+ 'if($logged_info->is_admin=="Y") $is_admin = true; '.
+ 'else $is_admin = false; '.
+ '$group_srls = array_keys($logged_info->group_list); '.
+ '} else { '.
+ '$is_admin = false; '.
+ '$group_srls = array(); '.
+ '}';
+ // Create the xml cache file (a separate session is needed for xml cache)
+ $xml_buff = sprintf(
+ 'init(); '.
+ 'header("Content-Type: text/xml; charset=UTF-8"); '.
+ 'header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); '.
+ 'header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); '.
+ 'header("Cache-Control: no-store, no-cache, must-revalidate"); '.
+ 'header("Cache-Control: post-check=0, pre-check=0", false); '.
+ 'header("Pragma: no-cache"); '.
+ '%s '.
+ '$oContext->close(); '.
+ '?>'.
+ '%s',
+ $header_script,
+ $this->getXmlTree($tree[0], $tree, $site_srl, $domain)
+ );
+ // Create php cache file
+ $php_output = $this->getPhpCacheCode($tree[0], $tree, $site_srl, $domain);
+ $php_buff = sprintf(
+ 'list = array(%s); '.
+ 'Context::set("included_menu", $menu); '.
+ '?>',
+ $header_script,
+ $php_output['name'],
+ $php_output['buff']
+ );
+ // Save File
+ FileHandler::writeFile($xml_file, $xml_buff);
+ FileHandler::writeFile($php_file, $php_buff);
+ return $xml_file;
+ }
+
+ /**
+ * Create xml data recursively looping for array nodes by referencing to parent_srl
+ * menu xml file uses a tag named "node" and this XML configures menus on admin page.
+ * (Implement tree menu by reading the xml file in tree_menu.js)
+ * @param array $source_node
+ * @param array $tree
+ * @param int $site_srl
+ * @param string $domain
+ * @return string
+ */
+ function getXmlTree($source_node, $tree, $site_srl, $domain)
+ {
+ if(!$source_node) return;
+
+ $oMenuAdminModel = &getAdminModel('menu');
+
+ foreach($source_node as $menu_item_srl => $node)
+ {
+ $child_buff = "";
+ // Get data of the child nodes
+ if($menu_item_srl&&$tree[$menu_item_srl]) $child_buff = $this->getXmlTree($tree[$menu_item_srl], $tree, $site_srl, $domain);
+ // List variables
+ $names = $oMenuAdminModel->getMenuItemNames($node->name, $site_srl);
+ foreach($names as $key => $val)
+ {
+ $name_arr_str .= sprintf('"%s"=>"%s",',$key, str_replace('\\','\\\\',htmlspecialchars($val)));
+ }
+ $name_str = sprintf('$_names = array(%s); print $_names[$lang_type];', $name_arr_str);
+
+ $url = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->url);
+ if(preg_match('/^([0-9a-zA-Z\_\-]+)$/', $node->url))
+ {
+ $href = getSiteUrl($domain, '','mid',$node->url);
+ $pos = strpos($href, $_SERVER['HTTP_HOST']);
+ if($pos !== false) $href = substr($href, $pos+strlen($_SERVER['HTTP_HOST']));
+ }
+ else $href = $url;
+ $is_shortcut = $node->is_shortcut;
+ $open_window = $node->open_window;
+ $expand = $node->expand;
+
+ $normal_btn = $node->normal_btn;
+ if($normal_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$normal_btn)) $normal_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$normal_btn);
+ else $normal_btn = '';
+ $hover_btn = $node->hover_btn;
+ if($hover_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$hover_btn)) $hover_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$hover_btn);
+ else $hover_btn = '';
+ $active_btn = $node->active_btn;
+ if($active_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$active_btn)) $active_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$active_btn);
+ else $active_btn = '';
+
+ $group_srls = $node->group_srls;
+
+ if($normal_btn)
+ {
+ if(preg_match('/\.png$/',$normal_btn)) $classname = 'class="iePngFix"';
+ else $classname = '';
+ if($hover_btn) $hover_str = sprintf('onmouseover="this.src=\'%s\'"', $hover_btn); else $hover_str = '';
+ if($active_btn) $active_str = sprintf('onmousedown="this.src=\'%s\'"', $active_btn); else $active_str = '';
+ $link = sprintf('<img src="%s" onmouseout="this.src=\'%s\'" alt="" %s %s %s />', $normal_btn, $normal_btn, $hover_str, $active_str, $classname);
+ }
+ else
+ {
+ $link = '';
+ }
+ // If the value of node->group_srls exists
+ if($group_srls)$group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s))))||($is_logged&&%s))',$group_srls,$group_srls == -1?1:0);
+ else $group_check_code = "true";
+ $attribute = sprintf(
+ 'node_srl="%s" parent_srl="%s" menu_name_key=\'%s\' text="" url="" href="" is_shortcut="%s" open_window="%s" expand="%s" normal_btn="%s" hover_btn="%s" active_btn="%s" link="%s"',
+ $menu_item_srl,
+ $node->parent_srl,
+ addslashes($node->name),
+ $group_check_code,
+ $name_str,
+ $group_check_code,
+ $url,
+ $group_check_code,
+ $href,
+ $is_shortcut,
+ $open_window,
+ $expand,
+ $normal_btn,
+ $hover_btn,
+ $active_btn,
+ $group_check_code,
+ $link
+ );
+
+ if($child_buff) $buff .= sprintf('%s', $attribute, $child_buff);
+ else $buff .= sprintf('', $attribute);
+ }
+ return $buff;
+ }
+
+ /**
+ * Return php code converted from nodes in an array
+ * Although xml data can be used for tpl, menu to menu, it needs to use javascript separately
+ * By creating cache file in php and then you can get menu information without DB
+ * This cache includes in ModuleHandler::displayContent() and then Context::set()
+ * @param array $source_node
+ * @param array $tree
+ * @param int $site_srl
+ * @param string $domain
+ * @return array
+ */
+ function getPhpCacheCode($source_node, $tree, $site_srl, $domain)
+ {
+ $output = array("buff"=>"", "url_list"=>array());
+ if(!$source_node) return $output;
+
+ $oMenuAdminModel = &getAdminModel('menu');
+
+ foreach($source_node as $menu_item_srl => $node)
+ {
+ // Get data from child nodes if exist.
+ if($menu_item_srl&&$tree[$menu_item_srl]) $child_output = $this->getPhpCacheCode($tree[$menu_item_srl], $tree, $site_srl, $domain);
+ else $child_output = array("buff"=>"", "url_list"=>array());
+ // List variables
+ $names = $oMenuAdminModel->getMenuItemNames($node->name, $site_srl);
+ unset($name_arr_str);
+ foreach($names as $key => $val)
+ {
+ $name_arr_str .= sprintf('"%s"=>"%s",',$key, str_replace(array('\\','"'),array('\\\\','"'),$val));
+ }
+ $name_str = sprintf('$_menu_names[%d] = array(%s); %s', $node->menu_item_srl, $name_arr_str, $child_output['name']);
+ // If url value is not empty in the current node, put the value into an array url_list
+ if($node->url) $child_output['url_list'][] = $node->url;
+ $output['url_list'] = array_merge($output['url_list'], $child_output['url_list']);
+ // If node->group_srls value exists
+ if($node->group_srls)$group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s))))||($is_logged && %s))',$node->group_srls,$node->group_srls == -1?1:0);
+ else $group_check_code = "true";
+ // List variables
+ $href = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->href);
+ $url = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->url);
+ if(preg_match('/^([0-9a-zA-Z\_\-]+)$/i', $node->url))
+ {
+ $href = getSiteUrl($domain, '','mid',$node->url);
+ $pos = strpos($href, $_SERVER['HTTP_HOST']);
+ if($pos !== false) $href = substr($href, $pos+strlen($_SERVER['HTTP_HOST']));
+ }
+ else $href = $url;
+ $is_shortcut = $node->is_shortcut;
+ $open_window = $node->open_window;
+ $normal_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->normal_btn);
+ $hover_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->hover_btn);
+ $active_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->active_btn);
+
+ foreach($child_output['url_list'] as $key =>$val)
+ {
+ $child_output['url_list'][$key] = addslashes($val);
+ }
+
+ $selected = '"'.implode('","',$child_output['url_list']).'"';
+ $child_buff = $child_output['buff'];
+ $expand = $node->expand;
+
+ $normal_btn = $node->normal_btn;
+ if($normal_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$normal_btn)) $normal_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$normal_btn);
+ else $normal_btn = '';
+
+ $hover_btn = $node->hover_btn;
+ if($hover_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$hover_btn)) $hover_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$hover_btn);
+ else $hover_btn = '';
+
+ $active_btn = $node->active_btn;
+ if($active_btn && preg_match('/^\.\/files\/attach\/menu_button/i',$active_btn)) $active_btn = str_replace(array('&','"','<','>'),array('&','"','<','>'),$active_btn);
+ else $active_btn = '';
+
+ $group_srls = $node->group_srls;
+
+ if($normal_btn)
+ {
+ if(preg_match('/\.png$/',$normal_btn)) $classname = 'class=\"iePngFix\"';
+ else $classname = '';
+ if($hover_btn) $hover_str = sprintf('onmouseover=\"this.src=\'%s\'\"', $hover_btn); else $hover_str = '';
+ if($active_btn) $active_str = sprintf('onmousedown=\"this.src=\'%s\'\"', $active_btn); else $active_str = '';
+ $link = sprintf('"
"', $normal_btn, $normal_btn, $node->menu_item_srl, $hover_str, $active_str, $classname);
+ if($active_btn) $link_active = sprintf('"
"', $active_btn, $node->menu_item_srl, $classname);
+ else $link_active = $link;
+ }
+ else
+ {
+ $link_active = $link = sprintf('$_menu_names[%d][$lang_type]', $node->menu_item_srl);
+ }
+ // Create properties (check if it belongs to the menu node by url_list. It looks a trick but fast and powerful)
+ $attribute = sprintf(
+ '"node_srl"=>"%s","parent_srl"=>"%s","menu_name_key"=>\'%s\',"text"=>(%s?$_menu_names[%d][$lang_type]:""),"href"=>(%s?"%s":""),"url"=>(%s?"%s":""),"is_shortcut"=>"%s","open_window"=>"%s","normal_btn"=>"%s","hover_btn"=>"%s","active_btn"=>"%s","selected"=>(array(%s)&&in_array(Context::get("mid"),array(%s))?1:0),"expand"=>"%s", "list"=>array(%s), "link"=>(%s? ( array(%s)&&in_array(Context::get("mid"),array(%s)) ?%s:%s):""),',
+ $node->menu_item_srl,
+ $node->parent_srl,
+ addslashes($node->name),
+ $group_check_code,
+ $node->menu_item_srl,
+ $group_check_code,
+ $href,
+ $group_check_code,
+ $url,
+ $is_shortcut,
+ $open_window,
+ $normal_btn,
+ $hover_btn,
+ $active_btn,
+ $selected,
+ $selected,
+ $expand,
+ $child_buff,
+ $group_check_code,
+ $selected,
+ $selected,
+ $link_active,
+ $link
+ );
+ // Generate buff data
+ $output['buff'] .= sprintf('%s=>array(%s),', $node->menu_item_srl, $attribute);
+ $output['name'] .= $name_str;
+ }
+ return $output;
+ }
+
+ /**
+ * Mapping menu and layout
+ * When setting menu on the layout, map the default layout
+ * @param int $layout_srl
+ * @param array $menu_srl_list
+ */
+ function updateMenuLayout($layout_srl, $menu_srl_list)
+ {
+ if(!count($menu_srl_list)) return;
+ // Delete the value of menu_srls
+ $args->menu_srls = implode(',',$menu_srl_list);
+ $output = executeQuery('menu.deleteMenuLayout', $args);
+ if(!$output->toBool()) return $output;
+
+ $args->layout_srl = $layout_srl;
+ // Mapping menu_srls, layout_srl
+ for($i=0;$imenu_srl = $menu_srl_list[$i];
+ $output = executeQuery('menu.insertMenuLayout', $args);
+ if(!$output->toBool()) return $output;
+ }
+ }
+
+ /**
+ * Register a menu image button
+ * @param object $args
+ * @return array
+ */
+ function _uploadButton($args)
+ {
+ // path setting
+ $path = sprintf('./files/attach/menu_button/%d/', $args->menu_srl);
+ if($args->menu_normal_btn || $args->menu_hover_btn || $args->menu_active_btn && !is_dir($path))
+ {
+ FileHandler::makeDir($path);
+ }
+
+ if($args->isNormalDelete == 'Y' || $args->isHoverDelete == 'Y' || $args->isActiveDelete == 'Y')
+ {
+ $oMenuModel = &getAdminModel('menu');
+ $itemInfo = $oMenuModel->getMenuItemInfo($args->menu_item_srl);
+
+ if($args->isNormalDelete == 'Y' && $itemInfo->normal_btn) FileHandler::removeFile($itemInfo->normal_btn);
+ if($args->isHoverDelete == 'Y' && $itemInfo->hover_btn) FileHandler::removeFile($itemInfo->hover_btn);
+ if($args->isActiveDelete == 'Y' && $itemInfo->active_btn) FileHandler::removeFile($itemInfo->active_btn);
+ }
+
+ $returnArray = array();
+ $date = date('YmdHis');
+ // normal button
+ if($args->menu_normal_btn)
+ {
+ $tmp_arr = explode('.',$args->menu_normal_btn['name']);
+ $ext = $tmp_arr[count($tmp_arr)-1];
+
+ $filename = sprintf('%s%d.%s.%s.%s', $path, $args->menu_item_srl, $date, 'menu_normal_btn', $ext);
+ move_uploaded_file($args->menu_normal_btn['tmp_name'], $filename);
+ $returnArray['normal_btn'] = $filename;
+ }
+
+ // hover button
+ if($args->menu_hover_btn)
+ {
+ $tmp_arr = explode('.',$args->menu_hover_btn['name']);
+ $ext = $tmp_arr[count($tmp_arr)-1];
+
+ $filename = sprintf('%s%d.%s.%s.%s', $path, $args->menu_item_srl, $date, 'menu_hover_btn', $ext);
+ move_uploaded_file($args->menu_hover_btn['tmp_name'], $filename);
+ $returnArray['hover_btn'] = $filename;
+ }
+
+ // active button
+ if($args->menu_active_btn)
+ {
+ $tmp_arr = explode('.',$args->menu_active_btn['name']);
+ $ext = $tmp_arr[count($tmp_arr)-1];
+
+ $filename = sprintf('%s%d.%s.%s.%s', $path, $args->menu_item_srl, $date, 'menu_active_btn', $ext);
+ move_uploaded_file($args->menu_active_btn['tmp_name'], $filename);
+ $returnArray['active_btn'] = $filename;
+ }
+ return $returnArray;
+ }
+
+ /**
+ * When copy a menu, button copied also.
+ * @param $args menuItemInfo with button values
+ */
+ private function _copyButton($insertedMenuItemSrl, &$menuItemInfo)
+ {
+ //normal_btn
+ if($menuItemInfo->normal_btn)
+ {
+ $originFile = FileHandler::getRealPath($menuItemInfo->normal_btn);
+ $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->normal_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'normal');
+
+ FileHandler::copyFile($originFile, $targetFile);
+ }
+
+ //hover_btn
+ if($menuItemInfo->hover_btn)
+ {
+ $originFile = FileHandler::getRealPath($menuItemInfo->hover_btn);
+ $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->hover_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'hover');
+
+ FileHandler::copyFile($originFile, $targetFile);
+ }
+
+ //active_btn
+ if($menuItemInfo->active_btn)
+ {
+ $originFile = FileHandler::getRealPath($menuItemInfo->active_btn);
+ $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->active_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'active');
+
+ FileHandler::copyFile($originFile, $targetFile);
+ }
+ }
+
+ private function _changeMenuItemSrlInButtonPath($buttonPath, $menuSrl, $menuItemSrl, $mode)
+ {
+ $path = sprintf('./files/attach/menu_button/%d/', $menuSrl);
+ $tmp_arr = explode('.', $buttonPath);
+ $ext = $tmp_arr[count($tmp_arr)-1];
+ return sprintf('%s%d.%s.%s', $path, $menuItemSrl, 'menu_'.$mode.'_btn', $ext);
+ }
+
+ public function makeHomemenuCacheFile($menuSrl)
+ {
+ $cacheBuff .= sprintf('homeMenuCacheFile, $cacheBuff);
+ }
+
+ public function getHomeMenuCacheFile()
+ {
+ return $this->homeMenuCacheFile;
+ }
+}
+/* End of file menu.admin.controller.php */
+/* Location: ./modules/menu/menu.admin.controller.php */
diff --git a/modules/menu/menu.admin.model.php b/modules/menu/menu.admin.model.php
index 3952c7374..f0171b9b6 100644
--- a/modules/menu/menu.admin.model.php
+++ b/modules/menu/menu.admin.model.php
@@ -1,556 +1,576 @@
site_srl) {
- $site_module_info = Context::get('site_module_info');
- $obj->site_srl = (int)$site_module_info->site_srl;
- }
- $args->site_srl = $obj->site_srl;
- $args->sort_index = $obj->sort_index;
- $args->page = $obj->page?$obj->page:1;
- $args->list_count = $obj->list_count?$obj->list_count:20;
- $args->page_count = $obj->page_count?$obj->page_count:10;
- // document.getDocumentList query execution
- $output = executeQuery('menu.getMenuList', $args);
- // Return if no result or an error occurs
- if(!$output->toBool()||!count($output->data)) return $output;
-
- return $output;
- }
-
- /**
- * Return all menus
- * @param int $site_srl
- * @return array
- */
- function getMenus($site_srl = null) {
- if(!isset($site_srl)) {
- $site_module_info = Context::get('site_module_info');
- $site_srl = (int)$site_module_info->site_srl;
- }
- // Get information from the DB
- $args->site_srl = $site_srl ;
- $args->menu_srl = $menu_srl;
- $output = executeQueryArray('menu.getMenus', $args);
- if(!$output->data) return;
- $menus = $output->data;
- return $menus;
- }
-
- /**
- * Get information of a new menu from the DB
- * Return DB and XML information of the menu
- * @param int $menu_srl
- * @return object
- */
- function getMenu($menu_srl) {
- // Get information from the DB
- $args->menu_srl = $menu_srl;
- $output = executeQuery('menu.getMenu', $args);
- if(!$output->data) return;
-
- $menu_info = $output->data;
- $menu_info->xml_file = sprintf('./files/cache/menu/%s.xml.php',$menu_srl);
- $menu_info->php_file = sprintf('./files/cache/menu/%s.php',$menu_srl);
- return $menu_info;
- }
-
- /**
- * Get information of a new menu from the DB, search condition is menu title
- * Return DB and XML information of the menu
- * @param string $title
- * @return object
- */
- function getMenuByTitle($title) {
- // Get information from the DB
- $args->title = $title;
- $output = executeQuery('menu.getMenuByTitle', $args);
- if(!$output->data) return;
-
- if(is_array($output->data)) $menu_info = $output->data[0];
- else $menu_info = $output->data;
-
- if($menu_info->menu_srl)
- {
- $menu_info->xml_file = sprintf('./files/cache/menu/%s.xml.php',$menu_info->menu_srl);
- $menu_info->php_file = sprintf('./files/cache/menu/%s.php',$menu_info->menu_srl);
- }
- return $menu_info;
- }
-
- /**
- * Return item information of the menu_srl
- * group_srls uses a seperator with comma(,) and converts to an array by explode
- * @param int $menu_item_srl
- * @return object
- */
- function getMenuItemInfo($menu_item_srl) {
- // Get the menu information if menu_item_srl exists
- $args->menu_item_srl = $menu_item_srl;
- $output = executeQuery('menu.getMenuItem', $args);
- $node = $output->data;
- settype($node,'object');
- if($node->group_srls) $node->group_srls = explode(',',$node->group_srls);
- else $node->group_srls = array();
-
- $tmp_name = unserialize($node->name);
- if($tmp_name && count($tmp_name) ) {
- $selected_lang = array();
- $rand_name = $tmp_name[Context::getLangType()];
- if(!$rand_name) $rand_name = array_shift($tmp_name);
- $node->name = $rand_name;
- }
- return $node;
- }
-
- /**
- * Return item information of the menu_srl
- * @return void
- */
- function getMenuAdminItemInfo()
+ /**
+ * Get a list of all menus
+ * @param object $obj
+ * @return object
+ */
+ function getMenuList($obj)
+ {
+ if(!$obj->site_srl)
{
- $menuItemSrl = Context::get('menu_item_srl');
- $menuItem = $this->getMenuItemInfo($menuItemSrl);
-
- if(!$menuItem->url)
- {
- $menuItem->moduleType = null;
- }
- else if(!preg_match('/^http/i',$menuItem->url))
- {
- $oModuleModel = &getModel('module');
- $moduleInfo = $oModuleModel->getModuleInfoByMid($menuItem->url, 0);
- if(!$moduleInfo) $menuItem->moduleType = 'url';
- else
- {
- if($moduleInfo->mid == $menuItem->url) {
- $menuItem->moduleType = $moduleInfo->module;
- $menuItem->pageType = $moduleInfo->page_type;
- $menuItem->layoutSrl = $moduleInfo->layout_srl;
- }
- }
- }
- else $menuItem->moduleType = 'url';
-
- // grant setting
- if(is_array($menuItem->group_srls) && count($menuItem->group_srls) > 0)
- {
- if($menuItem->group_srls[0] == -1)
- {
- $menuItem->grant = 'member';
- }
- else if($menuItem->group_srls[0] == -3)
- {
- $menuItem->grant = 'manager';
- }
- else
- {
- $menuItem->grant = 'group';
- }
- }
-
- // get groups
- $oMemberModel = &getModel('member');
- $oModuleAdminModel = &getAdminModel('module');
- $output = $oMemberModel->getGroups();
- if(is_array($output))
- {
- $groupList = array();
- foreach($output AS $key=>$value)
- {
-
- $groupList[$value->group_srl]->group_srl = $value->group_srl;
- if(substr($value->title,0,12)=='$user_lang->') {
- $tmp = $oModuleAdminModel->getLangCode(0, $value->title);
- $groupList[$value->group_srl]->title = $tmp[Context::getLangType()];
- }
- else $groupList[$value->group_srl]->title = $value->title;
-
- if(in_array($key, $menuItem->group_srls)) $groupList[$value->group_srl]->isChecked = true;
- else $groupList[$value->group_srl]->isChecked = false;
- }
- }
- $menuItem->groupList = $groupList;
-
- $oModuleController = &getController('module');
- $menuItem->name_key = $menuItem->name;
- $oModuleController->replaceDefinedLangCode($menuItem->name);
-
- $this->add('menu_item', $menuItem);
- }
-
- /**
- * Return menu item list by menu number
- * @param int $menu_srl
- * @param int $parent_srl
- * @param array $columnList
- * @return object
- */
- function getMenuItems($menu_srl, $parent_srl = null, $columnList = array())
- {
- $args->menu_srl = $menu_srl;
- $args->parent_srl = $parent_srl;
-
- $output = executeQueryArray('menu.getMenuItems', $args, $columnList);
- return $output;
+ $site_module_info = Context::get('site_module_info');
+ $obj->site_srl = (int)$site_module_info->site_srl;
}
+ $args->site_srl = $obj->site_srl;
+ $args->sort_index = $obj->sort_index;
+ $args->page = $obj->page?$obj->page:1;
+ $args->list_count = $obj->list_count?$obj->list_count:20;
+ $args->page_count = $obj->page_count?$obj->page_count:10;
+ // document.getDocumentList query execution
+ $output = executeQuery('menu.getMenuList', $args);
+ // Return if no result or an error occurs
+ if(!$output->toBool()||!count($output->data)) return $output;
- /**
- * Return menu name in each language to support multi-language
- * @param string $source_name
- * @param int $site_srl
- * @return array
- */
- function getMenuItemNames($source_name, $site_srl = null) {
- if(!$site_srl) {
- $site_module_info = Context::get('site_module_info');
- $site_srl = (int)$site_module_info->site_srl;
- }
- // Get language code
- $oModuleAdminModel = &getAdminModel('module');
- return $oModuleAdminModel->getLangCode($site_srl, $source_name);
- }
+ return $output;
+ }
- /**
- * Get a template by using the menu_srl and retrun.
- * Return html after compiling tpl on the server in order to add menu information on the admin page
- * @return void
- */
- function getMenuAdminTplInfo() {
- // Get information on the menu for the parameter settings
- $menu_item_srl = Context::get('menu_item_srl');
- $parent_srl = Context::get('parent_srl');
- // Get a list of member groups
- $oMemberModel = &getModel('member');
- $group_list = $oMemberModel->getGroups();
- Context::set('group_list', $group_list);
- // Add a sub-menu if there is parent_srl but not menu_item_srl
- if(!$menu_item_srl && $parent_srl) {
- // Get information of the parent menu
- $parent_info = $this->getMenuItemInfo($parent_srl);
- // Default parameter settings for a new menu
- $item_info->menu_item_srl = getNextSequence();
- $item_info->parent_srl = $parent_srl;
- $item_info->parent_menu_name = $parent_info->name;
- // In case of modifying the existing menu or addting a new menu to the root
- } else {
- // Get information of the menu if menu_item_srl exists
- if($menu_item_srl) $item_info = $this->getMenuItemInfo($menu_item_srl);
- // Get only menu_item_srl if no values found, considering it as adding a new menu
- if(!$item_info->menu_item_srl) {
- $item_info->menu_item_srl = getNextSequence();
- }
- }
- Context::set('item_info', $item_info);
- //Security
- $security = new Security();
- $security->encodeHTML('group_list..title');
- $security->encodeHTML('item_info.url');
- $security->encodeHTML('item_info.name');
-
- // Compile the template file into tpl variable and then return it
- $oTemplate = &TemplateHandler::getInstance();
- $tpl = $oTemplate->compile($this->module_path.'tpl', 'menu_item_info');
-
- $this->add('tpl', str_replace("\n"," ",$tpl));
- }
-
- /**
- * get installed menu type api
- */
- function getMenuAdminInstalledMenuType()
+ /**
+ * Return all menus
+ * @param int $site_srl
+ * @return array
+ */
+ function getMenus($site_srl = null)
+ {
+ if(!isset($site_srl))
{
- $this->add('menu_types', $this->getModuleListInSitemap(0));
+ $site_module_info = Context::get('site_module_info');
+ $site_srl = (int)$site_module_info->site_srl;
}
+ // Get information from the DB
+ $args->site_srl = $site_srl ;
+ $args->menu_srl = $menu_srl;
+ $output = executeQueryArray('menu.getMenus', $args);
+ if(!$output->data) return;
+ $menus = $output->data;
+ return $menus;
+ }
- /**
- * @brief when menu add in sitemap, select module list
- * this menu showing with trigger
- * @param int $site_srl
- * @return array
- */
- function getModuleListInSitemap($site_srl = 0)
+ /**
+ * Get information of a new menu from the DB
+ * Return DB and XML information of the menu
+ * @param int $menu_srl
+ * @return object
+ */
+ function getMenu($menu_srl)
+ {
+ // Get information from the DB
+ $args->menu_srl = $menu_srl;
+ $output = executeQuery('menu.getMenu', $args);
+ if(!$output->data) return;
+
+ $menu_info = $output->data;
+ $menu_info->xml_file = sprintf('./files/cache/menu/%s.xml.php',$menu_srl);
+ $menu_info->php_file = sprintf('./files/cache/menu/%s.php',$menu_srl);
+ return $menu_info;
+ }
+
+ /**
+ * Get information of a new menu from the DB, search condition is menu title
+ * Return DB and XML information of the menu
+ * @param string $title
+ * @return object
+ */
+ function getMenuByTitle($title)
+ {
+ // Get information from the DB
+ $args->title = $title;
+ $output = executeQuery('menu.getMenuByTitle', $args);
+ if(!$output->data) return;
+
+ if(is_array($output->data)) $menu_info = $output->data[0];
+ else $menu_info = $output->data;
+
+ if($menu_info->menu_srl)
+ {
+ $menu_info->xml_file = sprintf('./files/cache/menu/%s.xml.php',$menu_info->menu_srl);
+ $menu_info->php_file = sprintf('./files/cache/menu/%s.php',$menu_info->menu_srl);
+ }
+ return $menu_info;
+ }
+
+ /**
+ * Return item information of the menu_srl
+ * group_srls uses a seperator with comma(,) and converts to an array by explode
+ * @param int $menu_item_srl
+ * @return object
+ */
+ function getMenuItemInfo($menu_item_srl)
+ {
+ // Get the menu information if menu_item_srl exists
+ $args->menu_item_srl = $menu_item_srl;
+ $output = executeQuery('menu.getMenuItem', $args);
+ $node = $output->data;
+ settype($node,'object');
+ if($node->group_srls) $node->group_srls = explode(',',$node->group_srls);
+ else $node->group_srls = array();
+
+ $tmp_name = unserialize($node->name);
+ if($tmp_name && count($tmp_name))
+ {
+ $selected_lang = array();
+ $rand_name = $tmp_name[Context::getLangType()];
+ if(!$rand_name) $rand_name = array_shift($tmp_name);
+ $node->name = $rand_name;
+ }
+ return $node;
+ }
+
+ /**
+ * Return item information of the menu_srl
+ * @return void
+ */
+ function getMenuAdminItemInfo()
+ {
+ $menuItemSrl = Context::get('menu_item_srl');
+ $menuItem = $this->getMenuItemInfo($menuItemSrl);
+
+ if(!$menuItem->url)
+ {
+ $menuItem->moduleType = null;
+ }
+ else if(!preg_match('/^http/i',$menuItem->url))
{
$oModuleModel = &getModel('module');
- $columnList = array('module');
- $moduleList = array('page');
-
- $output = $oModuleModel->getModuleListByInstance($site_srl, $columnList);
- if(is_array($output->data))
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($menuItem->url, 0);
+ if(!$moduleInfo) $menuItem->moduleType = 'url';
+ else
{
- foreach($output->data AS $key=>$value)
+ if($moduleInfo->mid == $menuItem->url)
{
- array_push($moduleList, $value->module);
+ $menuItem->moduleType = $moduleInfo->module;
+ $menuItem->pageType = $moduleInfo->page_type;
+ $menuItem->layoutSrl = $moduleInfo->layout_srl;
}
}
-
- // after trigger
- $output = ModuleHandler::triggerCall('menu.getModuleListInSitemap', 'after', $moduleList);
- if(!$output->toBool()) return $output;
-
- $moduleList = array_unique($moduleList);
-
- $oAutoinstallModel = getModel('autoinstall');
-
- $moduleInfoList = array();
- Context::loadLang('modules/page/lang');
- if(is_array($moduleList))
- {
- foreach($moduleList AS $key=>$value)
- {
- $moduleInfo = $oModuleModel->getModuleInfoXml($value);
- $defaultSkin = $oModuleModel->getModuleDefaultSkin($value, 'P');
- $defaultMobileSkin = $oModuleModel->getModuleDefaultSkin($value, 'M');
- $skinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($value), $defaultSkin);
- $mobileSkinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($value), $defaultMobileSkin);
- $moduleInfo->defaultSkin = new stdClass();
- $moduleInfo->defaultSkin->skin = $defaultSkin;
- $moduleInfo->defaultSkin->title = $skinInfo->title ? $skinInfo->title : $defaultSkin;
- $moduleInfo->defaultMobileSkin = new stdClass();
- $moduleInfo->defaultMobileSkin->skin = $defaultMobileSkin;
- $moduleInfo->defaultMobileSkin->title = $mobileSkinInfo->title ? $mobileSkinInfo->title : $defaultMobileSkin;
-
- $moduleInfo->package_srl = $oAutoinstallModel->getPackageSrlByPath('./modules/' . $value);
- $moduleInfo->url = _XE_LOCATION_SITE_ . '?mid=download&package_srl=' . $moduleInfo->package_srl;
-
- if($value == 'page')
- {
- $pageTypeName = Context::getLang('page_type_name');
- $moduleInfo->title = $pageTypeName['ARTICLE'];
- $moduleInfoList['ARTICLE'] = $moduleInfo;
- $wModuleInfo = clone $moduleInfo;
- unset($wModuleInfo->default_skin);
- unset($wModuleInfo->default_mskin);
- $wModuleInfo->title = $pageTypeName['WIDGET'];
- $wModuleInfo->no_skin = 'Y';
- $moduleInfoList['WIDGET'] = $wModuleInfo;
- $oModuleInfo = clone $moduleInfo;
- unset($oModuleInfo->default_skin);
- unset($oModuleInfo->default_mskin);
- $oModuleInfo->title = $pageTypeName['OUTSIDE'];
- $oModuleInfo->no_skin = 'Y';
- $moduleInfoList['OUTSIDE'] = $oModuleInfo;
- }
- else
- {
- $moduleInfoList[$value] = $moduleInfo;
- }
- }
- }
-
- return $moduleInfoList;
}
+ else $menuItem->moduleType = 'url';
- public function getMenuAdminSiteMap()
+ // grant setting
+ if(is_array($menuItem->group_srls) && count($menuItem->group_srls) > 0)
{
- $menuSrl = Context::get('menu_srl');
-
- $oModuleModel = &getModel('module');
- $oMenuAdminController = &getAdminController('menu');
- $columnList = array('modules.mid', 'modules.browser_title', 'sites.index_module_srl');
- $start_module = $oModuleModel->getSiteInfo(0, $columnList);
-
- $menuList = array();
- if($menuSrl)
+ if($menuItem->group_srls[0] == -1)
{
- $isMenuFixed = false;
- $output = $this->getMenu($menuSrl);
- $php_file = sprintf('./files/cache/menu/%s.php',$output->menu_srl);
- if(file_exists($php_file)) @include($php_file);
- else
- {
- $oMenuAdminController->makeXmlFile($menuSrl);
- }
-
- if(count($menu->list)>0)
- {
- foreach($menu->list AS $key=>$value)
- {
- $this->_menuInfoSetting($menu->list[$key], $start_module, $isMenuFixed, $menuSrl);
- }
- }
-
- // menu recreate
- if($isMenuFixed)
- {
- $oMenuAdminController->makeXmlFile($menuSrl);
- }
-
- $menuItems->menuSrl = $output->menu_srl;
- $menuItems->title = $output->title;
- $menuItems->menuItems = $menu;
- array_push($menuList, $menuItems);
+ $menuItem->grant = 'member';
+ }
+ else if($menuItem->group_srls[0] == -3)
+ {
+ $menuItem->grant = 'manager';
}
else
{
- $menuListFromDB = $this->getMenus();
- if(is_array($menuListFromDB))
+ $menuItem->grant = 'group';
+ }
+ }
+
+ // get groups
+ $oMemberModel = &getModel('member');
+ $oModuleAdminModel = &getAdminModel('module');
+ $output = $oMemberModel->getGroups();
+ if(is_array($output))
+ {
+ $groupList = array();
+ foreach($output AS $key=>$value)
+ {
+
+ $groupList[$value->group_srl]->group_srl = $value->group_srl;
+ if(substr($value->title,0,12)=='$user_lang->')
{
- $oAdmin = &getClass('admin');
- foreach($menuListFromDB AS $key=>$value)
+ $tmp = $oModuleAdminModel->getLangCode(0, $value->title);
+ $groupList[$value->group_srl]->title = $tmp[Context::getLangType()];
+ }
+ else $groupList[$value->group_srl]->title = $value->title;
+
+ if(in_array($key, $menuItem->group_srls)) $groupList[$value->group_srl]->isChecked = true;
+ else $groupList[$value->group_srl]->isChecked = false;
+ }
+ }
+ $menuItem->groupList = $groupList;
+
+ $oModuleController = &getController('module');
+ $menuItem->name_key = $menuItem->name;
+ $oModuleController->replaceDefinedLangCode($menuItem->name);
+
+ $this->add('menu_item', $menuItem);
+ }
+
+ /**
+ * Return menu item list by menu number
+ * @param int $menu_srl
+ * @param int $parent_srl
+ * @param array $columnList
+ * @return object
+ */
+ function getMenuItems($menu_srl, $parent_srl = null, $columnList = array())
+ {
+ $args->menu_srl = $menu_srl;
+ $args->parent_srl = $parent_srl;
+
+ $output = executeQueryArray('menu.getMenuItems', $args, $columnList);
+ return $output;
+ }
+
+ /**
+ * Return menu name in each language to support multi-language
+ * @param string $source_name
+ * @param int $site_srl
+ * @return array
+ */
+ function getMenuItemNames($source_name, $site_srl = null)
+ {
+ if(!$site_srl)
+ {
+ $site_module_info = Context::get('site_module_info');
+ $site_srl = (int)$site_module_info->site_srl;
+ }
+ // Get language code
+ $oModuleAdminModel = &getAdminModel('module');
+ return $oModuleAdminModel->getLangCode($site_srl, $source_name);
+ }
+
+ /**
+ * Get a template by using the menu_srl and retrun.
+ * Return html after compiling tpl on the server in order to add menu information on the admin page
+ * @return void
+ */
+ function getMenuAdminTplInfo()
+ {
+ // Get information on the menu for the parameter settings
+ $menu_item_srl = Context::get('menu_item_srl');
+ $parent_srl = Context::get('parent_srl');
+ // Get a list of member groups
+ $oMemberModel = &getModel('member');
+ $group_list = $oMemberModel->getGroups();
+ Context::set('group_list', $group_list);
+ // Add a sub-menu if there is parent_srl but not menu_item_srl
+ if(!$menu_item_srl && $parent_srl)
+ {
+ // Get information of the parent menu
+ $parent_info = $this->getMenuItemInfo($parent_srl);
+ // Default parameter settings for a new menu
+ $item_info->menu_item_srl = getNextSequence();
+ $item_info->parent_srl = $parent_srl;
+ $item_info->parent_menu_name = $parent_info->name;
+ // In case of modifying the existing menu or addting a new menu to the root
+ }
+ else
+ {
+ // Get information of the menu if menu_item_srl exists
+ if($menu_item_srl) $item_info = $this->getMenuItemInfo($menu_item_srl);
+ // Get only menu_item_srl if no values found, considering it as adding a new menu
+ if(!$item_info->menu_item_srl)
+ {
+ $item_info->menu_item_srl = getNextSequence();
+ }
+ }
+ Context::set('item_info', $item_info);
+ //Security
+ $security = new Security();
+ $security->encodeHTML('group_list..title');
+ $security->encodeHTML('item_info.url');
+ $security->encodeHTML('item_info.name');
+
+ // Compile the template file into tpl variable and then return it
+ $oTemplate = &TemplateHandler::getInstance();
+ $tpl = $oTemplate->compile($this->module_path.'tpl', 'menu_item_info');
+
+ $this->add('tpl', str_replace("\n"," ",$tpl));
+ }
+
+ /**
+ * get installed menu type api
+ */
+ function getMenuAdminInstalledMenuType()
+ {
+ $this->add('menu_types', $this->getModuleListInSitemap(0));
+ }
+
+ /**
+ * @brief when menu add in sitemap, select module list
+ * this menu showing with trigger
+ * @param int $site_srl
+ * @return array
+ */
+ function getModuleListInSitemap($site_srl = 0)
+ {
+ $oModuleModel = &getModel('module');
+ $columnList = array('module');
+ $moduleList = array('page');
+
+ $output = $oModuleModel->getModuleListByInstance($site_srl, $columnList);
+ if(is_array($output->data))
+ {
+ foreach($output->data AS $key=>$value)
+ {
+ array_push($moduleList, $value->module);
+ }
+ }
+
+ // after trigger
+ $output = ModuleHandler::triggerCall('menu.getModuleListInSitemap', 'after', $moduleList);
+ if(!$output->toBool()) return $output;
+
+ $moduleList = array_unique($moduleList);
+
+ $oAutoinstallModel = getModel('autoinstall');
+
+ $moduleInfoList = array();
+ Context::loadLang('modules/page/lang');
+ if(is_array($moduleList))
+ {
+ foreach($moduleList AS $key=>$value)
+ {
+ $moduleInfo = $oModuleModel->getModuleInfoXml($value);
+ $defaultSkin = $oModuleModel->getModuleDefaultSkin($value, 'P');
+ $defaultMobileSkin = $oModuleModel->getModuleDefaultSkin($value, 'M');
+ $skinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($value), $defaultSkin);
+ $mobileSkinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($value), $defaultMobileSkin);
+ $moduleInfo->defaultSkin = new stdClass();
+ $moduleInfo->defaultSkin->skin = $defaultSkin;
+ $moduleInfo->defaultSkin->title = $skinInfo->title ? $skinInfo->title : $defaultSkin;
+ $moduleInfo->defaultMobileSkin = new stdClass();
+ $moduleInfo->defaultMobileSkin->skin = $defaultMobileSkin;
+ $moduleInfo->defaultMobileSkin->title = $mobileSkinInfo->title ? $mobileSkinInfo->title : $defaultMobileSkin;
+
+ $moduleInfo->package_srl = $oAutoinstallModel->getPackageSrlByPath('./modules/' . $value);
+ $moduleInfo->url = _XE_LOCATION_SITE_ . '?mid=download&package_srl=' . $moduleInfo->package_srl;
+
+ if($value == 'page')
+ {
+ $pageTypeName = Context::getLang('page_type_name');
+ $moduleInfo->title = $pageTypeName['ARTICLE'];
+ $moduleInfoList['ARTICLE'] = $moduleInfo;
+ $wModuleInfo = clone $moduleInfo;
+ unset($wModuleInfo->default_skin);
+ unset($wModuleInfo->default_mskin);
+ $wModuleInfo->title = $pageTypeName['WIDGET'];
+ $wModuleInfo->no_skin = 'Y';
+ $moduleInfoList['WIDGET'] = $wModuleInfo;
+ $oModuleInfo = clone $moduleInfo;
+ unset($oModuleInfo->default_skin);
+ unset($oModuleInfo->default_mskin);
+ $oModuleInfo->title = $pageTypeName['OUTSIDE'];
+ $oModuleInfo->no_skin = 'Y';
+ $moduleInfoList['OUTSIDE'] = $oModuleInfo;
+ }
+ else
+ {
+ $moduleInfoList[$value] = $moduleInfo;
+ }
+ }
+ }
+
+ return $moduleInfoList;
+ }
+
+ public function getMenuAdminSiteMap()
+ {
+ $menuSrl = Context::get('menu_srl');
+
+ $oModuleModel = &getModel('module');
+ $oMenuAdminController = &getAdminController('menu');
+ $columnList = array('modules.mid', 'modules.browser_title', 'sites.index_module_srl');
+ $start_module = $oModuleModel->getSiteInfo(0, $columnList);
+
+ $menuList = array();
+ if($menuSrl)
+ {
+ $isMenuFixed = false;
+ $output = $this->getMenu($menuSrl);
+ $php_file = sprintf('./files/cache/menu/%s.php',$output->menu_srl);
+ if(file_exists($php_file)) @include($php_file);
+ else
+ {
+ $oMenuAdminController->makeXmlFile($menuSrl);
+ }
+
+ if(count($menu->list)>0)
+ {
+ foreach($menu->list AS $key=>$value)
+ {
+ $this->_menuInfoSetting($menu->list[$key], $start_module, $isMenuFixed, $menuSrl);
+ }
+ }
+
+ // menu recreate
+ if($isMenuFixed)
+ {
+ $oMenuAdminController->makeXmlFile($menuSrl);
+ }
+
+ $menuItems->menuSrl = $output->menu_srl;
+ $menuItems->title = $output->title;
+ $menuItems->menuItems = $menu;
+ array_push($menuList, $menuItems);
+ }
+ else
+ {
+ $menuListFromDB = $this->getMenus();
+ if(is_array($menuListFromDB))
+ {
+ $oAdmin = &getClass('admin');
+ foreach($menuListFromDB AS $key=>$value)
+ {
+ if($value->title == $oAdmin->getAdminMenuName()) unset($output[$key]);
+ else
{
- if($value->title == $oAdmin->getAdminMenuName()) unset($output[$key]);
+ unset($menu);
+ unset($menuItems);
+ $value->php_file = sprintf('./files/cache/menu/%s.php',$value->menu_srl);
+ if(file_exists($value->php_file)) @include($value->php_file);
else
{
- unset($menu);
- unset($menuItems);
- $value->php_file = sprintf('./files/cache/menu/%s.php',$value->menu_srl);
- if(file_exists($value->php_file)) @include($value->php_file);
- else
- {
- $oMenuAdminController->makeXmlFile($value->menu_srl);
- }
+ $oMenuAdminController->makeXmlFile($value->menu_srl);
+ }
- $isMenuFixed = false;
- if(count($menu->list)>0)
+ $isMenuFixed = false;
+ if(count($menu->list)>0)
+ {
+ foreach($menu->list AS $key2=>$value2)
{
- foreach($menu->list AS $key2=>$value2)
- {
- $this->_menuInfoSetting($menu->list[$key2], $start_module, $isMenuFixed, $value->menu_srl);
- }
+ $this->_menuInfoSetting($menu->list[$key2], $start_module, $isMenuFixed, $value->menu_srl);
}
+ }
- // menu recreate
- if($isMenuFixed)
- {
- $oMenuAdminController->makeXmlFile($value->menu_srl);
- }
+ // menu recreate
+ if($isMenuFixed)
+ {
+ $oMenuAdminController->makeXmlFile($value->menu_srl);
+ }
- $menuItems->menuSrl = $value->menu_srl;
- $menuItems->title = $value->title;
- $menuItems->menuItems = $menu;
+ $menuItems->menuSrl = $value->menu_srl;
+ $menuItems->title = $value->title;
+ $menuItems->menuItems = $menu;
- if($value->menu_srl == $this->menuSrlWithinHome)
- {
- $menuList[-1] = $menuItems;
- }
- else
- {
- array_push($menuList, $menuItems);
- }
+ if($value->menu_srl == $this->menuSrlWithinHome)
+ {
+ $menuList[-1] = $menuItems;
+ }
+ else
+ {
+ array_push($menuList, $menuItems);
}
}
}
}
- ksort($menuList);
-
- $this->add('menuList', $menuList);
}
+ ksort($menuList);
- /**
- * Get module's detail setup contents
- * @return void
- */
- public function getMenuAdminDetailSetup()
+ $this->add('menuList', $menuList);
+ }
+
+ /**
+ * Get module's detail setup contents
+ * @return void
+ */
+ public function getMenuAdminDetailSetup()
+ {
+ $menuItemSrl = Context::get('menu_item_srl');
+ if(!$menuItemSrl)
{
- $menuItemSrl = Context::get('menu_item_srl');
- if(!$menuItemSrl)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- $menuItemInfo = $this->getMenuItemInfo($menuItemSrl);
-
- // if menu is shortcut
- if($menuItemInfo->is_shortcut == 'Y')
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- // get module info
- $oModuleModel = &getModel('module');
- $moduleInfo = $oModuleModel->getModuleInfoByMid($menuItemInfo->url);
-
- // get xml info
- $moduleConfInfo = $oModuleModel->getModuleInfoXml($moduleInfo->module);
-
- $setupUrl = sprintf('index.php?module=admin&act=%s&module_srl=%s&isLayoutDrop=1', $moduleConfInfo->setup_index_act, $moduleInfo->module_srl);
- $this->add('setupUrl', $setupUrl);
-
- $this->setRedirectUrl($setupUrl);
+ return new Object(-1, 'msg_invalid_request');
}
- /**
- * Setting menu information(recursive)
- * @param array $menu
- * @return void
- */
- private function _menuInfoSetting(&$menu, &$start_module, &$isMenuFixed, $menuSrl)
+ $menuItemInfo = $this->getMenuItemInfo($menuItemSrl);
+
+ // if menu is shortcut
+ if($menuItemInfo->is_shortcut == 'Y')
{
- $oModuleModel = &getModel('module');
- // if url is empty and is_shortcut is 'N', change to is_shortcut 'Y'
- if(!$menu['url'] && $menu['is_shortcut'] == 'N')
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ // get module info
+ $oModuleModel = &getModel('module');
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($menuItemInfo->url);
+
+ // get xml info
+ $moduleConfInfo = $oModuleModel->getModuleInfoXml($moduleInfo->module);
+
+ $setupUrl = sprintf('index.php?module=admin&act=%s&module_srl=%s&isLayoutDrop=1', $moduleConfInfo->setup_index_act, $moduleInfo->module_srl);
+ $this->add('setupUrl', $setupUrl);
+
+ $this->setRedirectUrl($setupUrl);
+ }
+
+ /**
+ * Setting menu information(recursive)
+ * @param array $menu
+ * @return void
+ */
+ private function _menuInfoSetting(&$menu, &$start_module, &$isMenuFixed, $menuSrl)
+ {
+ $oModuleModel = &getModel('module');
+ // if url is empty and is_shortcut is 'N', change to is_shortcut 'Y'
+ if(!$menu['url'] && $menu['is_shortcut'] == 'N')
+ {
+ $menu['is_shortcut'] = 'Y';
+
+ unset($args);
+ $args->menu_item_srl = $menu['node_srl'];
+ $args->is_shortcut = 'Y';
+ if($menu['menu_name_key']) $args->name = $menu['menu_name_key'];
+ else $args->name = $menu['menu_name'];
+ $output = executeQuery('menu.updateMenuItem', $args);
+
+ $isMenuFixed = true;
+ }
+
+ //if menu type is module menu
+ if(!empty($menu['url']) && !preg_match('/^http/i', $menu['url']))
+ {
+ unset($midInfo);
+ unset($moduleInfo);
+ $midInfo = $oModuleModel->getModuleInfoByMid($menu['url'], 0);
+ $moduleInfo = $oModuleModel->getModuleInfoXml($midInfo->module);
+ if($moduleInfo->setup_index_act)
{
- $menu['is_shortcut'] = 'Y';
-
- unset($args);
- $args->menu_item_srl = $menu['node_srl'];
- $args->is_shortcut = 'Y';
- if($menu['menu_name_key']) $args->name = $menu['menu_name_key'];
- else $args->name = $menu['menu_name'];
- $output = executeQuery('menu.updateMenuItem', $args);
-
- $isMenuFixed = true;
+ $menu['module_srl'] = $midInfo->module_srl;
+ $menu['module'] = $midInfo->module;
+ if($midInfo->page_type)
+ {
+ $menu['module_type'] = $midInfo->page_type;
+ }
+ else
+ {
+ $menu['module_type'] = $midInfo->module;
+ }
+ $menu['setup_index_act'] = $moduleInfo->setup_index_act;
}
-
- //if menu type is module menu
- if(!empty($menu['url']) && !preg_match('/^http/i', $menu['url']))
+ if($menu['is_shortcut'] == 'N' && $midInfo->mid == $start_module->mid)
{
- unset($midInfo);
- unset($moduleInfo);
- $midInfo = $oModuleModel->getModuleInfoByMid($menu['url'], 0);
- $moduleInfo = $oModuleModel->getModuleInfoXml($midInfo->module);
- if($moduleInfo->setup_index_act)
- {
- $menu['module_srl'] = $midInfo->module_srl;
- $menu['module'] = $midInfo->module;
- if($midInfo->page_type)
- {
- $menu['module_type'] = $midInfo->page_type;
- }
- else
- {
- $menu['module_type'] = $midInfo->module;
- }
- $menu['setup_index_act'] = $moduleInfo->setup_index_act;
- }
- if($menu['is_shortcut'] == 'N' && $midInfo->mid == $start_module->mid)
- {
- $menu['is_start_module'] = true;
- $this->menuSrlWithinHome = $menuSrl;
- }
- // setting layout srl for layout management
- $menu['layout_srl'] = $midInfo->layout_srl;
+ $menu['is_start_module'] = true;
+ $this->menuSrlWithinHome = $menuSrl;
}
- if(count($menu['list']) > 0)
+ // setting layout srl for layout management
+ $menu['layout_srl'] = $midInfo->layout_srl;
+ }
+ if(count($menu['list']) > 0)
+ {
+ foreach($menu['list'] AS $key=>$value)
{
- foreach($menu['list'] AS $key=>$value)
- {
- $this->_menuInfoSetting($menu['list'][$key], &$start_module, $isMenuFixed, $menuSrl);
- }
+ $this->_menuInfoSetting($menu['list'][$key], $start_module, $isMenuFixed, $menuSrl);
}
}
- }
-?>
+ }
+}
+/* End of file menu.admin.model.php */
+/* Location: ./modules/menu/menu.admin.model.php */
diff --git a/modules/menu/menu.admin.view.php b/modules/menu/menu.admin.view.php
index 9519f7095..58e262c01 100644
--- a/modules/menu/menu.admin.view.php
+++ b/modules/menu/menu.admin.view.php
@@ -1,324 +1,331 @@
setTemplatePath($this->module_path.'tpl');
+ }
- /**
- * Initialization
- * @return void
- */
- function init() {
- $this->setTemplatePath($this->module_path.'tpl');
- }
+ /**
+ * The first page of the menu admin
+ * @return void
+ */
+ function dispMenuAdminContent()
+ {
+ // Get a list of registered menus
+ $obj->page = Context::get('page');
+ $obj->sort_index = 'listorder';
+ $obj->list_count = 20;
+ $obj->page_count = 20;
- /**
- * The first page of the menu admin
- * @return void
- */
- function dispMenuAdminContent() {
- // Get a list of registered menus
- $obj->page = Context::get('page');
- $obj->sort_index = 'listorder';
- $obj->list_count = 20;
- $obj->page_count = 20;
+ $oMenuModel = &getAdminModel('menu');
+ $output = $oMenuModel->getMenuList($obj);
- $oMenuModel = &getAdminModel('menu');
- $output = $oMenuModel->getMenuList($obj);
+ Context::set('total_count', $output->total_count);
+ Context::set('total_page', $output->total_page);
+ Context::set('page', $output->page);
+ Context::set('menu_list', $output->data);
+ Context::set('page_navigation', $output->page_navigation);
- Context::set('total_count', $output->total_count);
- Context::set('total_page', $output->total_page);
- Context::set('page', $output->page);
- Context::set('menu_list', $output->data);
- Context::set('page_navigation', $output->page_navigation);
+ //Security
+ $security = new Security();
+ $security->encodeHTML('menu_list..title');
- //Security
- $security = new Security();
- $security->encodeHTML('menu_list..title');
+ $this->setTemplateFile('index');
+ }
- $this->setTemplateFile('index');
- }
+ /**
+ * Page to insert a menu
+ * @return void
+ */
+ function dispMenuAdminInsert()
+ {
+ // Set the menu with menu information
+ $menu_srl = Context::get('menu_srl');
- /**
- * Page to insert a menu
- * @return void
- */
- function dispMenuAdminInsert() {
- // Set the menu with menu information
- $menu_srl = Context::get('menu_srl');
-
- if($menu_srl) {
- // Get information of the menu
- $oMenuModel = &getAdminModel('menu');
- $menu_info = $oMenuModel->getMenu($menu_srl);
- if($menu_info->menu_srl == $menu_srl) Context::set('menu_info', $menu_info);
- }
-
- $this->setTemplateFile('menu_insert');
- }
-
- /**
- * Menu admin page
- * @return void
- */
- function dispMenuAdminManagement() {
- // Get information of the menu
- $menu_srl = Context::get('menu_srl');
-
- if(!$menu_srl) return $this->dispMenuAdminContent();
- // Get information of the menu
- $oMenuModel = &getAdminModel('menu');
- $menu_info = $oMenuModel->getMenu($menu_srl);
- if($menu_info->menu_srl != $menu_srl) return $this->dispMenuAdminContent();
-
- Context::set('menu_info', $menu_info);
-
- //Security
- $security = new Security();
- $security->encodeHTML('menu_info..title');
-
- // Set the layout to be pop-up
- $this->setTemplateFile('menu_management');
- }
-
-
- /**
- * Display a mid list to be able to select on the menu
- * Perphaps this method not use
- * @return void
- */
- function dispMenuAdminMidList() {
- $oModuleModel = &getModel('module');
- // Get a list of module categories
- $module_category = $oModuleModel->getModuleCategories();
- Context::set('module_category', $module_category);
- // Get a list of modules
- $module_list = $oModuleModel->getModuleList();
- Context::set('module_list', $module_list);
- // Get a list of mid
- $args->module_category_srl = Context::get('module_category_srl');
- $args->module = Context::get('target_module');
- $columnList = array('module_srl', 'module', 'module_category_srl', 'browser_title');
- $mid_list = $oModuleModel->getMidList($args, $columnList);
- Context::set('mid_list', $mid_list);
- // Set the menu as a pop-up
- $this->setLayoutFile('popup_layout');
- //Security
- $security = new Security();
- $security->encodeHTML('module_category..title');
- $security->encodeHTML('module_list..module');
- $security->encodeHTML('mid_list..module');
- $security->encodeHTML('mid_list..browser_title');
-
- // Set a template file
- $this->setTemplateFile('mid_list');
- }
-
- /**
- * Site map admin menu index page
- * @return void
- */
- function dispMenuAdminSiteMap()
+ if($menu_srl)
{
- Context::loadLang(_XE_PATH_.'modules/document/lang/');
- Context::loadLang(_XE_PATH_.'modules/layout/lang/');
- Context::loadLang(_XE_PATH_.'modules/autoinstall/lang/');
- $site_srl = Context::get('site_srl');
- $site_module_info = Context::get('site_module_info');
+ // Get information of the menu
+ $oMenuModel = &getAdminModel('menu');
+ $menu_info = $oMenuModel->getMenu($menu_srl);
+ if($menu_info->menu_srl == $menu_srl) Context::set('menu_info', $menu_info);
+ }
- if(!$site_srl)
+ $this->setTemplateFile('menu_insert');
+ }
+
+ /**
+ * Menu admin page
+ * @return void
+ */
+ function dispMenuAdminManagement()
+ {
+ // Get information of the menu
+ $menu_srl = Context::get('menu_srl');
+
+ if(!$menu_srl) return $this->dispMenuAdminContent();
+ // Get information of the menu
+ $oMenuModel = &getAdminModel('menu');
+ $menu_info = $oMenuModel->getMenu($menu_srl);
+ if($menu_info->menu_srl != $menu_srl) return $this->dispMenuAdminContent();
+
+ Context::set('menu_info', $menu_info);
+
+ //Security
+ $security = new Security();
+ $security->encodeHTML('menu_info..title');
+
+ // Set the layout to be pop-up
+ $this->setTemplateFile('menu_management');
+ }
+
+ /**
+ * Display a mid list to be able to select on the menu
+ * Perphaps this method not use
+ * @return void
+ */
+ function dispMenuAdminMidList()
+ {
+ $oModuleModel = &getModel('module');
+ // Get a list of module categories
+ $module_category = $oModuleModel->getModuleCategories();
+ Context::set('module_category', $module_category);
+ // Get a list of modules
+ $module_list = $oModuleModel->getModuleList();
+ Context::set('module_list', $module_list);
+ // Get a list of mid
+ $args->module_category_srl = Context::get('module_category_srl');
+ $args->module = Context::get('target_module');
+ $columnList = array('module_srl', 'module', 'module_category_srl', 'browser_title');
+ $mid_list = $oModuleModel->getMidList($args, $columnList);
+ Context::set('mid_list', $mid_list);
+ // Set the menu as a pop-up
+ $this->setLayoutFile('popup_layout');
+ //Security
+ $security = new Security();
+ $security->encodeHTML('module_category..title');
+ $security->encodeHTML('module_list..module');
+ $security->encodeHTML('mid_list..module');
+ $security->encodeHTML('mid_list..browser_title');
+
+ // Set a template file
+ $this->setTemplateFile('mid_list');
+ }
+
+ /**
+ * Site map admin menu index page
+ * @return void
+ */
+ function dispMenuAdminSiteMap()
+ {
+ Context::loadLang(_XE_PATH_.'modules/document/lang/');
+ Context::loadLang(_XE_PATH_.'modules/layout/lang/');
+ Context::loadLang(_XE_PATH_.'modules/autoinstall/lang/');
+ $site_srl = Context::get('site_srl');
+ $site_module_info = Context::get('site_module_info');
+
+ if(!$site_srl)
+ {
+ if($logged_info->is_admin == 'Y' && !$site_keyword) $site_srl = 0;
+ else $site_srl = (int)$site_module_info->site_srl;
+ }
+
+ $oAdmin = &getClass('admin');
+
+ $oMenuAdminModel = &getAdminModel('menu');
+ $menuListFromDB = $oMenuAdminModel->getMenus();
+ if(is_array($menuListFromDB)) $output = array_reverse($menuListFromDB);
+
+ $menuList = array();
+ if(is_array($output))
+ {
+ $menuItems = array();
+ foreach($output AS $key=>$value)
{
- if($logged_info->is_admin == 'Y' && !$site_keyword) $site_srl = 0;
- else $site_srl = (int)$site_module_info->site_srl;
- }
-
- $oAdmin = &getClass('admin');
-
- $oMenuAdminModel = &getAdminModel('menu');
- $menuListFromDB = $oMenuAdminModel->getMenus();
- if(is_array($menuListFromDB)) $output = array_reverse($menuListFromDB);
-
- $menuList = array();
- if(is_array($output))
- {
- $menuItems = array();
- foreach($output AS $key=>$value)
+ if($value->title == $oAdmin->getAdminMenuName()) unset($output[$key]);
+ else
{
- if($value->title == $oAdmin->getAdminMenuName()) unset($output[$key]);
- else
- {
- unset($menu);
- unset($menuItems);
- //$value->xml_file = sprintf('./files/cache/menu/%s.xml.php',$value->menu_srl);
- $value->php_file = sprintf('./files/cache/menu/%s.php',$value->menu_srl);
- if(file_exists($value->php_file)) @include($value->php_file);
+ unset($menu);
+ unset($menuItems);
+ //$value->xml_file = sprintf('./files/cache/menu/%s.xml.php',$value->menu_srl);
+ $value->php_file = sprintf('./files/cache/menu/%s.php',$value->menu_srl);
+ if(file_exists($value->php_file)) @include($value->php_file);
- if(count($menu->list)>0)
+ if(count($menu->list)>0)
+ {
+ foreach($menu->list AS $key2=>$value2)
{
- foreach($menu->list AS $key2=>$value2)
- {
- $this->_menuInfoSetting($menu->list[$key2]);
- }
+ $this->_menuInfoSetting($menu->list[$key2]);
}
-
- //array_push($menuList, $value->xml_file);
- $menuItems->menuSrl = $value->menu_srl;
- $menuItems->title = $value->title;
- $menuItems->menuItems = $menu;
- array_push($menuList, $menuItems);
}
+
+ //array_push($menuList, $value->xml_file);
+ $menuItems->menuSrl = $value->menu_srl;
+ $menuItems->title = $value->title;
+ $menuItems->menuItems = $menu;
+ array_push($menuList, $menuItems);
}
}
- Context::set('menu_list', $menuList);
-
- // get installed module list
- $oPageController = &getController('page'); //for lang
- $resultModuleList = $oMenuAdminModel->getModuleListInSitemap($site_srl);
- Context::set('module_list', $resultModuleList);
-
- $oLayoutModel = &getModel('layout');
- $layoutList = $oLayoutModel->getLayoutList();
- Context::set('layout_list', $layoutList);
-
- // choice theme file
- $theme_file = _XE_PATH_.'files/theme/theme_info.php';
- if(is_readable($theme_file))
- {
- @include($theme_file);
- Context::set('current_layout', $theme_info->layout);
- }
- else
- {
- $oModuleModel = &getModel('module');
- $default_mid = $oModuleModel->getDefaultMid();
- Context::set('current_layout', $default_mid->layout_srl);
- }
-
- // get default group list
- $oMemberModel = &getModel('member');
- $output = $oMemberModel->getGroups();
- if(is_array($output))
- {
- $groupList = array();
- foreach($output AS $key=>$value)
- {
- $groupList[$value->group_srl]->group_srl = $value->group_srl;
- $groupList[$value->group_srl]->title = $value->title;
- }
- }
- Context::set('group_list', $groupList);
-
- $this->setTemplateFile('sitemap');
}
+ Context::set('menu_list', $menuList);
- /**
- * Site design admin page
- * @return void
- */
- public function dispMenuAdminSiteDesign()
+ // get installed module list
+ $oPageController = &getController('page'); //for lang
+ $resultModuleList = $oMenuAdminModel->getModuleListInSitemap($site_srl);
+ Context::set('module_list', $resultModuleList);
+
+ $oLayoutModel = &getModel('layout');
+ $layoutList = $oLayoutModel->getLayoutList();
+ Context::set('layout_list', $layoutList);
+
+ // choice theme file
+ $theme_file = _XE_PATH_.'files/theme/theme_info.php';
+ if(is_readable($theme_file))
{
- $this->setTemplateFile('sitemap');
+ @include($theme_file);
+ Context::set('current_layout', $theme_info->layout);
}
-
- /**
- * Module skin setup common page
- * @return void
- */
- public function dispMenuAdminSkinSetup()
- {
- $menuItemSrl = Context::get('menu_item_srl');
- if(!$menuItemSrl)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- $oMenuAdminModel = &getAdminModel('menu');
- $menuItemInfo = $oMenuAdminModel->getMenuItemInfo($menuItemSrl);
- if(!$menuItemInfo->menu_item_srl)
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- // If menu type is not module
- if(empty($menuItemInfo->url) || preg_match('/^http/i', $menuItemInfo->url))
- {
- return new Object(-1, 'msg_invalid_request');
- }
-
- $oModuleModel = &getModel('module');
- $moduleInfo = $oModuleModel->getModuleInfoByMid($menuItemInfo->url);
-
- // get the grant infotmation from admin module
- $oModuleAdminModel = &getAdminModel('module');
- $skin_content = $oModuleAdminModel->getModuleSkinHTML($moduleInfo->module_srl);
- Context::set('skin_content', $skin_content);
-
- $this->setLayoutPath('common/tpl');
- $this->setLayoutFile('default_layout');
- $this->setTemplateFile('skin_info');
- }
-
- /**
- * Setting menu information(recursive)
- * @param array $menu
- * @return void
- */
- function _menuInfoSetting(&$menu)
+ else
{
$oModuleModel = &getModel('module');
- if($menu['url'] && !preg_match('/^http/i', $menu['url']))
- {
- unset($midInfo);
- unset($moduleInfo);
- $midInfo = $oModuleModel->getModuleInfoByMid($menu['url'], 0);
- $moduleInfo = $oModuleModel->getModuleInfoXml($midInfo->module);
- if($moduleInfo->setup_index_act)
- {
- $menu['module_srl'] = $midInfo->module_srl;
- $menu['setup_index_act'] = $moduleInfo->setup_index_act;
- }
- // setting layout srl for layout management
- $menu['layout_srl'] = $midInfo->layout_srl;
- }
- if(count($menu['list']) > 0)
- {
- foreach($menu['list'] AS $key=>$value)
- {
- $this->_menuInfoSetting($menu['list'][$key]);
- }
- }
+ $default_mid = $oModuleModel->getDefaultMid();
+ Context::set('current_layout', $default_mid->layout_srl);
}
- /**
- * Tree-shaped sorting
- * @param array $menuItems
- * @return array
- */
- function _arrangeMenuItem($menuItems)
+ // get default group list
+ $oMemberModel = &getModel('member');
+ $output = $oMemberModel->getGroups();
+ if(is_array($output))
{
- if(is_array($menuItems))
+ $groupList = array();
+ foreach($output AS $key=>$value)
{
- $arrangedMenuItemList = array();
- foreach($menuItems AS $key=>$value)
- {
- if($value->parent_srl == 0)
- {
- $arrangedMenuItemList[$value->menu_item_srl] = array('name'=>$value->name, 'subMenu'=>array());
- }
+ $groupList[$value->group_srl]->group_srl = $value->group_srl;
+ $groupList[$value->group_srl]->title = $value->title;
+ }
+ }
+ Context::set('group_list', $groupList);
- if($value->parent_srl > 0 && isset($arrangedMenuItemList[$value->parent_srl]))
- {
- $arrangedMenuItemList[$value->parent_srl]['subMenu'][$value->menu_item_srl] = $value;
- }
+ $this->setTemplateFile('sitemap');
+ }
+
+ /**
+ * Site design admin page
+ * @return void
+ */
+ public function dispMenuAdminSiteDesign()
+ {
+ $this->setTemplateFile('sitemap');
+ }
+
+ /**
+ * Module skin setup common page
+ * @return void
+ */
+ public function dispMenuAdminSkinSetup()
+ {
+ $menuItemSrl = Context::get('menu_item_srl');
+ if(!$menuItemSrl)
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ $oMenuAdminModel = &getAdminModel('menu');
+ $menuItemInfo = $oMenuAdminModel->getMenuItemInfo($menuItemSrl);
+ if(!$menuItemInfo->menu_item_srl)
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ // If menu type is not module
+ if(empty($menuItemInfo->url) || preg_match('/^http/i', $menuItemInfo->url))
+ {
+ return new Object(-1, 'msg_invalid_request');
+ }
+
+ $oModuleModel = &getModel('module');
+ $moduleInfo = $oModuleModel->getModuleInfoByMid($menuItemInfo->url);
+
+ // get the grant infotmation from admin module
+ $oModuleAdminModel = &getAdminModel('module');
+ $skin_content = $oModuleAdminModel->getModuleSkinHTML($moduleInfo->module_srl);
+ Context::set('skin_content', $skin_content);
+
+ $this->setLayoutPath('common/tpl');
+ $this->setLayoutFile('default_layout');
+ $this->setTemplateFile('skin_info');
+ }
+
+ /**
+ * Setting menu information(recursive)
+ * @param array $menu
+ * @return void
+ */
+ function _menuInfoSetting(&$menu)
+ {
+ $oModuleModel = &getModel('module');
+ if($menu['url'] && !preg_match('/^http/i', $menu['url']))
+ {
+ unset($midInfo);
+ unset($moduleInfo);
+ $midInfo = $oModuleModel->getModuleInfoByMid($menu['url'], 0);
+ $moduleInfo = $oModuleModel->getModuleInfoXml($midInfo->module);
+ if($moduleInfo->setup_index_act)
+ {
+ $menu['module_srl'] = $midInfo->module_srl;
+ $menu['setup_index_act'] = $moduleInfo->setup_index_act;
+ }
+ // setting layout srl for layout management
+ $menu['layout_srl'] = $midInfo->layout_srl;
+ }
+ if(count($menu['list']) > 0)
+ {
+ foreach($menu['list'] AS $key=>$value)
+ {
+ $this->_menuInfoSetting($menu['list'][$key]);
+ }
+ }
+ }
+
+ /**
+ * Tree-shaped sorting
+ * @param array $menuItems
+ * @return array
+ */
+ function _arrangeMenuItem($menuItems)
+ {
+ if(is_array($menuItems))
+ {
+ $arrangedMenuItemList = array();
+ foreach($menuItems AS $key=>$value)
+ {
+ if($value->parent_srl == 0)
+ {
+ $arrangedMenuItemList[$value->menu_item_srl] = array('name'=>$value->name, 'subMenu'=>array());
+ }
+
+ if($value->parent_srl > 0 && isset($arrangedMenuItemList[$value->parent_srl]))
+ {
+ $arrangedMenuItemList[$value->parent_srl]['subMenu'][$value->menu_item_srl] = $value;
}
}
- return $arrangedMenuItemList;
}
- }
-?>
+ return $arrangedMenuItemList;
+ }
+}
+/* End of file menu.admin.view.php */
+/* Location: ./modules/menu/menu.admin.view.php */
diff --git a/modules/menu/menu.class.php b/modules/menu/menu.class.php
index 9519dfbde..9c6d6600b 100644
--- a/modules/menu/menu.class.php
+++ b/modules/menu/menu.class.php
@@ -1,113 +1,116 @@
isColumnExists('menu', 'site_srl')) return true;
+ /**
+ * A method to check if successfully installed
+ * @return bool
+ */
+ function checkUpdate()
+ {
+ $oDB = &DB::getInstance();
+ // 2009. 02. 11 menu added to the table site_srl
+ if(!$oDB->isColumnExists('menu', 'site_srl')) return true;
- // 2012. 02. 01 title index check
- if(!$oDB->isIndexExists("menu", "idx_title")) return true;
+ // 2012. 02. 01 title index check
+ if(!$oDB->isIndexExists("menu", "idx_title")) return true;
- if(!$oDB->isColumnExists('menu_item', 'is_shortcut'))
+ if(!$oDB->isColumnExists('menu_item', 'is_shortcut'))
+ {
+ return TRUE;
+ }
+ return false;
+ }
+
+ /**
+ * Execute update
+ * @return Object
+ */
+ function moduleUpdate() {
+ $oDB = &DB::getInstance();
+ // 2009. 02. 11 menu added to the table site_srl
+ if(!$oDB->isColumnExists('menu', 'site_srl'))
+ {
+ $oDB->addColumn('menu','site_srl','number',11,0,true);
+ }
+
+ // 2012. 02. 01 title index check
+ if(!$oDB->isIndexExists("menu","idx_title"))
+ {
+ $oDB->addIndex('menu', 'idx_title', array('title'));
+ }
+
+ if(!$oDB->isColumnExists('menu_item', 'is_shortcut'))
+ {
+ $oDB->addColumn('menu_item', 'is_shortcut', 'char', 1, 'N');
+
+ // check empty url and change shortcut type
+ $oMenuAdminModel = &getAdminModel('menu');
+ $output = $oMenuAdminModel->getMenus();
+
+ if(is_array($output))
{
- return TRUE;
- }
- return false;
- }
-
- /**
- * Execute update
- * @return Object
- }
-
- /**
- * Execute update
- * @return Object
- */
- function moduleUpdate() {
- $oDB = &DB::getInstance();
- // 2009. 02. 11 menu added to the table site_srl
- if(!$oDB->isColumnExists('menu', 'site_srl')) {
- $oDB->addColumn('menu','site_srl','number',11,0,true);
- }
-
- // 2012. 02. 01 title index check
- if(!$oDB->isIndexExists("menu","idx_title")) {
- $oDB->addIndex('menu', 'idx_title', array('title'));
- }
-
- if(!$oDB->isColumnExists('menu_item', 'is_shortcut'))
- {
- $oDB->addColumn('menu_item', 'is_shortcut', 'char', 1, 'N');
-
- // check empty url and change shortcut type
- $oMenuAdminModel = &getAdminModel('menu');
- $output = $oMenuAdminModel->getMenus();
-
- if(is_array($output))
+ foreach($output AS $key=>$value)
{
- foreach($output AS $key=>$value)
+ unset($args);
+ $args->menu_srl = $value->menu_srl;
+ $output2 = executeQueryArray('menu.getMenuItems', $args);
+ if(is_array($output2->data))
{
- unset($args);
- $args->menu_srl = $value->menu_srl;
- $output2 = executeQueryArray('menu.getMenuItems', $args);
- if(is_array($output2->data))
+ foreach($output2->data AS $key2=>$value2)
{
- foreach($output2->data AS $key2=>$value2)
+ if($value2->is_shortcut == 'N' && !$value2->url)
{
- if($value2->is_shortcut == 'N' && !$value2->url)
- {
- $value2->is_shortcut = 'Y';
+ $value2->is_shortcut = 'Y';
- $output3 = executeQuery('menu.updateMenuItem', $value2);
- }
+ $output3 = executeQuery('menu.updateMenuItem', $value2);
}
}
}
}
}
+ }
- return new Object(0, 'success_updated');
- }
+ return new Object(0, 'success_updated');
+ }
- /**
- * Re-generate the cache file
- * @return void
- */
- function recompileCache() {
- $oMenuAdminController = &getAdminController('menu');
- // Wanted list of all the blog module
- $output = executeQueryArray("menu.getMenus");
- $list = $output->data;
- if(!count($list)) return;
- // The menu module is used in the re-create all the menu list
- foreach($list as $menu_item) {
- $menu_srl = $menu_item->menu_srl;
- $oMenuAdminController->makeXmlFile($menu_srl);
- }
- }
- }
-?>
+ /**
+ * Re-generate the cache file
+ * @return void
+ */
+ function recompileCache()
+ {
+ $oMenuAdminController = &getAdminController('menu');
+ // Wanted list of all the blog module
+ $output = executeQueryArray("menu.getMenus");
+ $list = $output->data;
+ if(!count($list)) return;
+ // The menu module is used in the re-create all the menu list
+ foreach($list as $menu_item)
+ {
+ $menu_srl = $menu_item->menu_srl;
+ $oMenuAdminController->makeXmlFile($menu_srl);
+ }
+ }
+}
+/* End of file menu.class.php */
+/* Location: ./modules/menu/menu.class.php */
diff --git a/modules/menu/menu.mobile.php b/modules/menu/menu.mobile.php
index b2f9201cb..714c23859 100644
--- a/modules/menu/menu.mobile.php
+++ b/modules/menu/menu.mobile.php
@@ -7,7 +7,8 @@
* @package /modules/menu
* @version 0.1
*/
-class menuMobile extends moduleObject {
+class menuMobile extends moduleObject
+{
/**
* Result data list
* @var array
@@ -36,7 +37,8 @@ class menuMobile extends moduleObject {
* Display menu
* @return void
*/
- function dispMenuMenu() {
+ function dispMenuMenu()
+ {
$menu_srl = Context::get('menu_srl');
$oAdminModel =& getAdminModel('menu');
$menu_info = $oAdminModel->getMenu($menu_srl);
@@ -50,7 +52,7 @@ class menuMobile extends moduleObject {
$this->setTemplatePath(sprintf("%stpl/",$this->module_path));
$this->setTemplateFile('menu.html');
-
}
}
-?>
+/* End of file menu.mobile.php */
+/* Location: ./modules/menu/menu.mobile.php */
diff --git a/modules/message/message.admin.controller.php b/modules/message/message.admin.controller.php
index e472b5621..3d169e9d0 100644
--- a/modules/message/message.admin.controller.php
+++ b/modules/message/message.admin.controller.php
@@ -1,33 +1,35 @@
insertModuleConfig('message',$args);
+ if(!$output->toBool()) return $output;
- /**
- * @brief Initialization
- **/
- function init() {
- }
+ $this->setMessage('success_updated');
- /**
- * @brief Configuration
- **/
- function procMessageAdminInsertConfig() {
- // Get information
- $args = Context::gets('skin', 'mskin');
- // Create a module Controller object
- $oModuleController = &getController('module');
- $output = $oModuleController->insertModuleConfig('message',$args);
- if(!$output->toBool()) return $output;
-
- $this->setMessage('success_updated');
-
- $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMessageAdminConfig');
- $this->setRedirectUrl($returnUrl);
- }
- }
-?>
+ $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMessageAdminConfig');
+ $this->setRedirectUrl($returnUrl);
+ }
+}
+/* End of file message.admin.controller.php */
+/* Location: ./modules/message/message.admin.controller.php */
diff --git a/modules/message/message.admin.view.php b/modules/message/message.admin.view.php
index bf6893536..502494a3a 100644
--- a/modules/message/message.admin.view.php
+++ b/modules/message/message.admin.view.php
@@ -1,45 +1,45 @@
getskins($this->module_path);
+ Context::set('skin_list', $skin_list);
- /**
- * @brief Configuration
- **/
- function dispMessageAdminConfig() {
- // Get a list of skins(themes)
- $oModuleModel = &getModel('module');
+ $mskin_list = $oModuleModel->getSkins($this->module_path, "m.skins");
+ Context::set('mskin_list', $mskin_list);
- $skin_list = $oModuleModel->getskins($this->module_path);
- Context::set('skin_list', $skin_list);
+ // Get configurations (using module model object)
+ $config = $oModuleModel->getModuleConfig('message');
+ Context::set('config',$config);
- $mskin_list = $oModuleModel->getSkins($this->module_path, "m.skins");
- Context::set('mskin_list', $mskin_list);
+ // Set a template file
+ $this->setTemplatePath($this->module_path.'tpl');
- // Get configurations (using module model object)
- $config = $oModuleModel->getModuleConfig('message');
- Context::set('config',$config);
+ //Security
+ $security = new Security();
+ $security->encodeHTML('skin_list..title', 'mskin_list..title');
- // Set a template file
- $this->setTemplatePath($this->module_path.'tpl');
-
-
- //Security
- $security = new Security();
- $security->encodeHTML('skin_list..title', 'mskin_list..title');
-
- $this->setTemplateFile('config');
- }
-
- }
-?>
+ $this->setTemplateFile('config');
+ }
+}
+/* End of file message.admin.view.php */
+/* Location: ./modules/message/message.admin.view.php */
diff --git a/modules/message/message.class.php b/modules/message/message.class.php
index 9635a7cd2..dcae16cc6 100644
--- a/modules/message/message.class.php
+++ b/modules/message/message.class.php
@@ -1,68 +1,70 @@
getModuleConfig('message');
- /**
- * @brief Implement if additional tasks are necessary when installing
- **/
- function moduleInstall() {
- return new Object();
- }
-
- /**
- * @brief a method to check if successfully installed
- **/
- function checkUpdate()
+ if($config->skin)
{
- $oModuleModel = &getModel('module');
- $config = $oModuleModel->getModuleConfig('message');
-
- if($config->skin)
+ $config_parse = explode('.', $config->skin);
+ if (count($config_parse) > 1)
{
- $config_parse = explode('.', $config->skin);
- if (count($config_parse) > 1)
+ $template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
+ if(is_dir($template_path)) return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @brief Execute update
+ */
+ function moduleUpdate()
+ {
+ $oModuleModel = &getModel('module');
+ $config = $oModuleModel->getModuleConfig('message');
+
+ if($config->skin)
+ {
+ $config_parse = explode('.', $config->skin);
+ if (count($config_parse) > 1)
+ {
+ $template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
+ if(is_dir($template_path))
{
- $template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
- if(is_dir($template_path)) return true;
+ $config->skin = implode('|@|', $config_parse);
+ $oModuleController = &getController('module');
+ $oModuleController->updateModuleConfig('message', $config);
}
}
- return false;
- }
+ }
+ return new Object();
+ }
- /**
- * @brief Execute update
- **/
- function moduleUpdate()
- {
- $oModuleModel = &getModel('module');
- $config = $oModuleModel->getModuleConfig('message');
-
- if($config->skin)
- {
- $config_parse = explode('.', $config->skin);
- if (count($config_parse) > 1)
- {
- $template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
- if(is_dir($template_path))
- {
- $config->skin = implode('|@|', $config_parse);
- $oModuleController = &getController('module');
- $oModuleController->updateModuleConfig('message', $config);
- }
- }
- }
- return new Object();
- }
-
- /**
- * @brief Re-generate the cache file
- **/
- function recompileCache() {
- }
- }
-?>
+ /**
+ * @brief Re-generate the cache file
+ */
+ function recompileCache()
+ {
+ }
+}
+/* End of file message.class.php */
+/* Location: ./modules/message/message.class.php */
diff --git a/modules/message/message.mobile.php b/modules/message/message.mobile.php
index afbdeb42a..c57c02a14 100644
--- a/modules/message/message.mobile.php
+++ b/modules/message/message.mobile.php
@@ -1,43 +1,45 @@
getModuleConfig('message');
+ if(!$config->mskin) $config->mskin = 'default';
+ // Set the template path
+ $template_path = sprintf('%sm.skins/%s', $this->module_path, $config->mskin);
+ // Get the member configuration
+ $oModuleModel = &getModel('module');
+ $member_config = $oModuleModel->getModuleConfig('member');
+ Context::set('member_config', $member_config);
+ // Set a flag to check if the https connection is made when using SSL and create https url
+ $ssl_mode = false;
+ if($member_config->enable_ssl == 'Y')
+ {
+ if(preg_match('/^https:\/\//i',Context::getRequestUri())) $ssl_mode = true;
+ }
+ Context::set('ssl_mode',$ssl_mode);
- /**
- * @brief Initialization
- **/
- function init() {
- }
+ Context::set('system_message', nl2br($this->getMessage()));
- /**
- * @brief Message output
- **/
- function dispMessage() {
- // Get configurations (using module model object)
- $oModuleModel = &getModel('module');
- $config = $oModuleModel->getModuleConfig('message');
- if(!$config->mskin) $config->mskin = 'default';
- // Set the template path
- $template_path = sprintf('%sm.skins/%s', $this->module_path, $config->mskin);
- // Get the member configuration
- $oModuleModel = &getModel('module');
- $member_config = $oModuleModel->getModuleConfig('member');
- Context::set('member_config', $member_config);
- // Set a flag to check if the https connection is made when using SSL and create https url
- $ssl_mode = false;
- if($member_config->enable_ssl == 'Y') {
- if(preg_match('/^https:\/\//i',Context::getRequestUri())) $ssl_mode = true;
- }
- Context::set('ssl_mode',$ssl_mode);
+ Context::set('act', 'procMemberLogin');
+ Context::set('mid', '');
- Context::set('system_message', nl2br($this->getMessage()));
-
- Context::set('act', 'procMemberLogin');
- Context::set('mid', '');
-
- $this->setTemplatePath($template_path);
- $this->setTemplateFile('system_message');
- }
-
- }
-?>
+ $this->setTemplatePath($template_path);
+ $this->setTemplateFile('system_message');
+ }
+}
+/* End of file message.mobile.php */
+/* Location: ./modules/message/message.mobile.php */
diff --git a/modules/message/message.view.php b/modules/message/message.view.php
index 99e90b111..190b5f652 100644
--- a/modules/message/message.view.php
+++ b/modules/message/message.view.php
@@ -3,27 +3,25 @@
* @class messageView
* @author NHN (developers@xpressengine.com)
* @brief view class of the message module
- **/
-
-class messageView extends message {
-
+ */
+class messageView extends message
+{
/**
* @brief Initialization
- **/
- function init()
+ */
+ function init()
{
-
}
/**
* @brief Display messages
- **/
- function dispMessage()
+ */
+ function dispMessage()
{
// Get configurations (using module model object)
$oModuleModel = &getModel('module');
$this->module_config = $config = $oModuleModel->getModuleConfig('message', $this->module_info->site_srl);
-
+
if(!$config->skin)
{
$config->skin = 'default';
@@ -50,7 +48,8 @@ class messageView extends message {
Context::set('member_config', $member_config);
// Set a flag to check if the https connection is made when using SSL and create https url
$ssl_mode = false;
- if($member_config->enable_ssl == 'Y') {
+ if($member_config->enable_ssl == 'Y')
+ {
if(preg_match('/^https:\/\//i',Context::getRequestUri())) $ssl_mode = true;
}
Context::set('ssl_mode',$ssl_mode);
@@ -60,4 +59,5 @@ class messageView extends message {
$this->setTemplateFile('system_message');
}
}
-?>
+/* End of file message.view.php */
+/* Location: ./modules/message/message.view.php */