merge from 1.5.3 (~r10943)

git-svn-id: http://xe-core.googlecode.com/svn/trunk@10951 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
flyskyko 2012-07-27 02:47:10 +00:00
parent 7aa4798373
commit 54e3a72065
334 changed files with 13011 additions and 5561 deletions

View file

@ -24,6 +24,10 @@
<value xml:lang="tr"><![CDATA[Menü Yönetimi]]></value>
<value xml:lang="vi"><![CDATA[Quản lý Menu]]></value>
</item>
<item name="cmd_module_manangement">
<value xml:lang="ko"><![CDATA[모듈 설정]]></value>
<value xml:lang="en"><![CDATA[Module Setting]]></value>
</item>
<item name="menu_count">
<value xml:lang="ko"><![CDATA[메뉴 수]]></value>
<value xml:lang="en"><![CDATA[No. of menus]]></value>

View file

@ -1,25 +1,45 @@
<?php
/**
* @class menuAdminController
* @author NHN (developers@xpressengine.com)
* @brief admin controller class of the menu module
**/
/**
* menuAdminController class
* admin controller class of the menu module
*
* @author NHN (developers@xpressengine.com)
* @package /modules/menu
* @version 0.1
*/
class menuAdminController extends menu {
/**
* menu number
* @var int
*/
var $menuSrl = null;
/**
* item key list
* @var array
*/
var $itemKeyList = array();
/**
* map
* @var array
*/
var $map = array();
/**
* checked
* @var array
*/
var $checked = array();
/**
* @brief Initialization
**/
/**
* Initialization
* @return void
*/
function init() {
}
/**
* @brief Add a menu
**/
/**
* Add a menu
* @return void|object
*/
function procMenuAdminInsert() {
// List variables
$site_module_info = Context::get('site_module_info');
@ -34,16 +54,14 @@
$this->add('menu_srl', $args->menu_srl);
$this->setMessage('success_registed');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminContent');
$this->setRedirectUrl($returnUrl);
return;
}
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminContent');
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Change the menu title
**/
/**
* Change the menu title
* @return void|object
*/
function procMenuAdminUpdate() {
// List variables
$args->title = Context::get('title');
@ -53,17 +71,15 @@
if(!$output->toBool()) return $output;
$this->setMessage('success_registed');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
header('location:'.$returnUrl);
return;
}
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Delete menu
* Delete menu_item and xml cache files
**/
/**
* Delete menu process method
* @return void|Object
*/
function procMenuAdminDelete() {
$menu_srl = Context::get('menu_srl');
@ -76,13 +92,16 @@
$this->deleteMenu($menu_srl);
$this->setMessage('success_deleted', 'info');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminSiteMap');
$this->setRedirectUrl($returnUrl);
return;
}
$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) {
// Delete cache files
$cache_list = FileHandler::readDir("./files/cache/menu","",false,true);
@ -107,12 +126,14 @@
return new Object(0,'success_deleted');
}
/**
* @brief Add an item to the menu
**/
/**
* Add an item to the menu
* @return void
*/
function procMenuAdminInsertItem() {
// List variables to insert
$source_args = Context::getRequestVars();
unset($source_args->module);
unset($source_args->act);
if($source_args->menu_open_window!="Y") $source_args->menu_open_window = "N";
@ -148,12 +169,16 @@
$args->group_srls = $source_args->group_srls;
// if cType is CREATE, create module
if($source_args->cType == 'CREATE')
if($source_args->cType == 'CREATE' || $source_args->cType == 'SELECT')
{
$site_module_info = Context::get('site_module_info');
$cmArgs->site_srl = (int)$site_module_info->site_srl;
$cmArgs->mid = $source_args->create_menu_url;
$cmArgs->browser_title = $args->name;
$cmArgs->menu_srl = $source_args->menu_srl;
if($source_args->layout_srl)
{
$cmArgs->layout_srl = $source_args->layout_srl;
}
switch ($source_args->module_type){
case 'WIDGET' :
@ -167,9 +192,26 @@
unset($cmArgs->page_type);
}
$cmArgs->menu_srl = $source_args->menu_srl;
$oModuleController = &getController('module');
$output = $oModuleController->insertModule($cmArgs);
if($source_args->cType == 'CREATE')
{
$cmArgs->mid = $source_args->create_menu_url;
$output = $oModuleController->insertModule($cmArgs);
}
else
{
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($source_args->module_srl);
if($cmArgs->layout_srl)
{
$module_info->layout_srl = $cmArgs->layout_srl;
}
$cmArgs = $module_info;
$cmArgs->mid = $source_args->select_menu_url;
$cmArgs->module_srl = $source_args->module_srl;
$output = $oModuleController->updateModule($cmArgs);
}
if(!$output->toBool()) return new Object(-1, $output->message);
}
@ -226,16 +268,15 @@
$this->add('parent_srl', $args->parent_srl);
$this->setMessage($message, 'info');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminSiteMap', 'menu_srl', $args->menu_srl);
$this->setRedirectUrl($returnUrl);
return;
}
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminSiteMap', 'menu_srl', $args->menu_srl);
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Delete menu item(menu of the menu)
**/
/**
* Delete menu item(menu of the menu)
* @return void|Object
*/
function procMenuAdminDeleteItem() {
// List variables
$args = Context::gets('menu_srl','menu_item_srl');
@ -271,16 +312,14 @@
$this->add('menu_item_srl', $parent_srl);
$this->setMessage('success_deleted');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
$this->setRedirectUrl($returnUrl);
return;
}
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Move menu items
**/
/**
* Move menu items
* @return void
*/
function procMenuAdminMoveItem() {
$menu_srl = Context::get('menu_srl');
$mode = Context::get('mode');
@ -292,9 +331,10 @@
$this->moveMenuItem($menu_srl,$parent_srl,$source_srl,$target_srl,$mode);
}
/**
* @brief Arrange menu items
**/
/**
* Arrange menu items
* @return void|object
*/
function procMenuAdminArrangeItem()
{
$this->menuSrl = Context::get('menu_srl');
@ -349,13 +389,18 @@
}
$this->setMessage('success_updated', 'info');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
$this->setRedirectUrl($returnUrl);
return;
}
$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];
@ -372,6 +417,11 @@
//return $target;
}
/**
* move item with sub directory(recursive)
* @param object $result
* @return void
*/
function _recursiveMoveMenuItem($result)
{
$i = 0;
@ -386,6 +436,15 @@
}
}
/**
* 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){
// Get the original menus
$oMenuAdminModel = &getAdminModel('menu');
@ -428,12 +487,13 @@
return $xml_file;
}
/**
* @brief 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.
**/
/**
* 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');
@ -448,9 +508,10 @@
$this->add('xml_file',$xml_file);
}
/**
* @brief Register a menu image button
**/
/**
* Register a menu image button
* @return void
*/
function procMenuAdminUploadButton() {
$menu_srl = Context::get('menu_srl');
$menu_item_srl = Context::get('menu_item_srl');
@ -478,9 +539,10 @@
$this->setTemplateFile('menu_file_uploaded');
}
/**
* @brief Remove the menu image button
**/
/**
* Remove the menu image button
* @return void
*/
function procMenuAdminDeleteButton() {
$menu_srl = Context::get('menu_srl');
$menu_item_srl = Context::get('menu_item_srl');
@ -491,9 +553,10 @@
$this->add('target', $target);
}
/**
* @brief get all act list for admin menu
**/
/**
* Get all act list for admin menu
* @return void
*/
function procMenuAdminAllActList() {
$oModuleModel = &getModel('module');
$installed_module_list = $oModuleModel->getModulesXmlInfo();
@ -511,9 +574,10 @@
$this->add('menuList', $menuList);
}
/**
* @brief get all act list for admin menu
**/
/**
* Get all act list for admin menu
* @return void|object
*/
function procMenuAdminInsertItemForAdminMenu()
{
$requestArgs = Context::getRequestVars();
@ -571,16 +635,15 @@
// Update the xml file and get its location
$xml_file = $this->makeXmlFile($args->menu_srl);
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdminSetup');
$this->setRedirectUrl($returnUrl);
return;
}
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdminSetup');
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Generate XML file for menu and return its location
**/
/**
* 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;
@ -686,11 +749,16 @@
return $xml_file;
}
/**
* @brief 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)
**/
/**
* 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;
@ -765,12 +833,17 @@
return $buff;
}
/**
* @brief 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()
**/
/**
* 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;
@ -806,6 +879,12 @@
$normal_btn = str_replace(array('&','"','<','>'),array('&amp;','&quot;','&lt;','&gt;'),$node->normal_btn);
$hover_btn = str_replace(array('&','"','<','>'),array('&amp;','&quot;','&lt;','&gt;'),$node->hover_btn);
$active_btn = str_replace(array('&','"','<','>'),array('&amp;','&quot;','&lt;','&gt;'),$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;
@ -867,10 +946,12 @@
return $output;
}
/**
* @brief Mapping menu and layout
* When setting menu on the layout, map the default layout
**/
/**
* 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
@ -887,9 +968,11 @@
}
}
/**
* @brief Register a menu image button
**/
/**
* Register a menu image button
* @param object $args
* @return array
*/
function _uploadButton($args)
{
// path setting

View file

@ -1,22 +1,25 @@
<?php
/**
* @class menuAdminModel
* @author NHN (developers@xpressengine.com)
* @version 0.1
* @brief admin model class of the menu module
**/
/**
* @class menuAdminModel
* @brief admin model class of the menu module
*
* @author NHN (developers@xpressengine.com)
* @package /modules/menu
* @version 0.1
*/
class menuAdminModel extends menu {
/**
* @brief Initialization
**/
/**
* Initialization
* @return void
*/
function init() {
}
/**
* @brief Get a list of all menus
**/
/**
* Get a list of all menus
* @param object $obj
* @return object
*/
function getMenuList($obj) {
if(!$obj->site_srl) {
$site_module_info = Context::get('site_module_info');
@ -35,9 +38,11 @@
return $output;
}
/**
* @brief Return all menus
**/
/**
* 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');
@ -52,10 +57,12 @@
return $menus;
}
/**
* @brief Get information of a new menu from the DB
* Return DB and XML information of the menu
**/
/**
* 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;
@ -68,10 +75,12 @@
return $menu_info;
}
/**
* @brief Get information of a new menu from the DB, search condition is menu title
* Return DB and XML information of the menu
**/
/**
* 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;
@ -89,10 +98,12 @@
return $menu_info;
}
/**
* @brief Return item information of the menu_srl
* group_srls uses a seperator with comma(,) and converts to an array by explode
**/
/**
* 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;
@ -112,9 +123,10 @@
return $node;
}
/**
* @brief Return item information of the menu_srl
**/
/**
* Return item information of the menu_srl
* @return void
*/
function getMenuAdminItemInfo()
{
$menuItemSrl = Context::get('menu_item_srl');
@ -134,6 +146,7 @@
if($moduleInfo->mid == $menuItem->url) {
$menuItem->moduleType = $moduleInfo->module;
$menuItem->pageType = $moduleInfo->page_type;
$menuItem->layoutSrl = $moduleInfo->layout_srl;
}
}
}
@ -169,6 +182,13 @@
$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;
@ -178,9 +198,12 @@
return $output;
}
/**
* @brief Return menu name in each language to support multi-language
*/
/**
* 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');
@ -191,10 +214,11 @@
return $oModuleAdminModel->getLangCode($site_srl, $source_name);
}
/**
* @brief 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
**/
/**
* 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');
@ -234,10 +258,12 @@
$this->add('tpl', str_replace("\n"," ",$tpl));
}
/**
* @brief when menu add in sitemap, select module list
/**
* @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');

View file

@ -1,23 +1,27 @@
<?php
/**
* @class menuAdminView
* @author NHN (developers@xpressengine.com)
* @brief admin view class of the menu module
**/
/**
* menuAdminView class
* admin view class of the menu module
*
* @author NHN (developers@xpressengine.com)
* @package /modules/menu
* @version 0.1
*/
class menuAdminView extends menu {
var $tmpMenu = null;
/**
* @brief Initialization
**/
/**
* Initialization
* @return void
*/
function init() {
$this->setTemplatePath($this->module_path.'tpl');
}
/**
* @brief The first page of the menu admin
**/
/**
* The first page of the menu admin
* @return void
*/
function dispMenuAdminContent() {
// Get a list of registered menus
$obj->page = Context::get('page');
@ -41,9 +45,10 @@
$this->setTemplateFile('index');
}
/**
* @brief Page to insert a menu
**/
/**
* Page to insert a menu
* @return void
*/
function dispMenuAdminInsert() {
// Set the menu with menu information
$menu_srl = Context::get('menu_srl');
@ -58,9 +63,10 @@
$this->setTemplateFile('menu_insert');
}
/**
* @brief Menu admin page
**/
/**
* Menu admin page
* @return void
*/
function dispMenuAdminManagement() {
// Get information of the menu
$menu_srl = Context::get('menu_srl');
@ -82,10 +88,11 @@
}
/**
* @brief Display a mid list to be able to select on the menu
* @perphaps this method not use
**/
/**
* 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
@ -113,12 +120,14 @@
$this->setTemplateFile('mid_list');
}
/**
* @brief Site map admin menu index page
**/
/**
* Site map admin menu index page
* @return void
*/
function dispMenuAdminSiteMap()
{
Context::loadLang(_XE_PATH_.'modules/document/lang/');
Context::loadLang(_XE_PATH_.'modules/layout/lang/');
$site_srl = Context::get('site_srl');
$site_module_info = Context::get('site_module_info');
@ -170,6 +179,10 @@
$resultModuleList = $oMenuAdminModel->getModuleListInSitemap($site_srl);
Context::set('module_list', $resultModuleList);
$oLayoutModel = &getModel('layout');
$layoutList = $oLayoutModel->getLayoutList();
Context::set('layout_list', $layoutList);
// get default group list
$oMemberModel = &getModel('member');
$output = $oMemberModel->getGroups();
@ -187,6 +200,11 @@
$this->setTemplateFile('sitemap');
}
/**
* Setting menu information(recursive)
* @param array $menu
* @return void
*/
function _menuInfoSetting(&$menu)
{
$oModuleModel = &getModel('module');
@ -201,6 +219,8 @@
$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)
{
@ -211,6 +231,11 @@
}
}
/**
* Tree-shaped sorting
* @param array $menuItems
* @return array
*/
function _arrangeMenuItem($menuItems)
{
if(is_array($menuItems))

View file

@ -1,15 +1,17 @@
<?php
/**
* @class menu
* @author NHN (developers@xpressengine.com)
* @brief high class of the menu module
**/
/**
* menu class
* high class of the menu module
*
* @author NHN (developers@xpressengine.com)
* @package /modules/menu
* @version 0.1
*/
class menu extends ModuleObject {
/**
* @brief Implement if additional tasks are necessary when installing
**/
/**
* Implement if additional tasks are necessary when installing
* @return Object
*/
function moduleInstall() {
// Create a directory to use menu
FileHandler::makeDir('./files/cache/menu');
@ -17,20 +19,24 @@
return new Object();
}
/**
* @brief a method to check if successfully installed
**/
/**
* 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;
return false;
}
/**
* @brief Execute update
**/
/**
* Execute update
* @return Object
*/
function moduleUpdate() {
$oDB = &DB::getInstance();
// 2009. 02. 11 menu added to the table site_srl
@ -38,12 +44,18 @@
$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'));
}
return new Object(0, 'success_updated');
}
/**
* @brief Re-generate the cache file
**/
/**
* Re-generate the cache file
* @return void
*/
function recompileCache() {
$oMenuAdminController = &getAdminController('menu');
// Wanted list of all the blog module

View file

@ -1,8 +1,23 @@
<?php
/**
* menuMobile class
* mobile class of the menu module
*
* @author NHN (developers@xpressengine.com)
* @package /modules/menu
* @version 0.1
*/
class menuMobile extends moduleObject {
/**
* Result data list
* @var array
*/
var $result = array();
/**
* Menu depth arrange
* @return void
*/
function straightenMenu($menu_item, $depth)
{
if(!$menu_item['link']) return;
@ -17,6 +32,10 @@ class menuMobile extends moduleObject {
}
}
/**
* Display menu
* @return void
*/
function dispMenuMenu() {
$menu_srl = Context::get('menu_srl');
$oAdminModel =& getAdminModel('menu');

View file

@ -1,7 +1,7 @@
<table name="menu">
<column name="menu_srl" type="number" size="12" notnull="notnull" primary_key="primary_key" />
<column name="site_srl" type="number" size="11" notnull="notnull" default="0" index="menu_site_srl" />
<column name="title" type="varchar" size="250" />
<column name="title" type="varchar" size="250" index="idx_title"/>
<column name="listorder" type="number" size="11" default="0" index="idx_listorder" />
<column name="regdate" type="date" index="idx_regdate" />
</table>

View file

@ -29,6 +29,10 @@ $('form.siteMap')
$('a._edit').click(function(){
resetEditForm();
var itemKey = $(this).parent().prevAll('._item_key').val();
var itemLayoutKey = $(this).parent().prevAll('._item_layout_key').val();
var moduleSrl = $(this).parent().prevAll('input._module_srl_key').val();
editForm.find('input[name=module_srl]').val(moduleSrl);
menuSrl = $(this).parents().prevAll('input[name=menu_srl]').val();
menuForm = $('#menu_'+menuSrl);
var menuItemSrl = null;
@ -69,6 +73,7 @@ $('form.siteMap')
inputCType[1].checked = true;
editForm.find('select[name=module_type]').val(moduleType);
editForm.find('select[name=select_menu_url]').val(menuItem.url);
editForm.find('select[name=layout_srl]').val(menuItem.layoutSrl);
}
typeCheck();
getModuleList();
@ -122,8 +127,9 @@ $('form.siteMap')
var kindModuleLayer = $('#kindModule');
var createModuleLayer = $('#createModule');
var selectModuleLayer = $('#selectModule');
var selectModuleLayer = $('#sModule_id');
var insertUrlLayer = $('#insertUrl');
var selectLayoutLayer = $('#selectLayout');
function resetEditForm()
{
@ -131,13 +137,14 @@ $('form.siteMap')
createModuleLayer.hide()
selectModuleLayer.hide()
insertUrlLayer.hide()
selectLayoutLayer.hide()
editForm.find('input[name=menu_item_srl]').val('');
editForm.find('input[name=parent_srl]').val(0);
editForm.find('input[name=menu_name]').val('');
editForm.find('input[name=cType]').attr('checked', false);
editForm.find('input[name=create_menu_url]').val('');
editForm.find('input[name=select_menu_url]').val('');
editForm.find('select[name=layout_srl]')[0].options[0].selected = true;
editForm.find('input[name=menu_url]').val('');
editForm.find('input[name=menu_open_window]')[0].checked = true;
editForm.find('input[name=group_srls\\[\\]]').attr('checked', false);
@ -149,18 +156,18 @@ $('form.siteMap')
var $this = $(this);
resetEditForm();
editForm.find('.h2').text(xe.lang.add_menu);
editForm.find('input[name=menu_srl]').val($this.closest('form').find('input[name=menu_srl]:first').val());
editForm.find('input[name=parent_srl]').val($this.parent().prevAll('input._item_key').val());
});
$('input._typeCheck').click(typeCheck);
var checkedValue = null;
function typeCheck()
{
var inputTypeCheck = $('input._typeCheck');
var checkedValue = null;
for(var i=0; i<3; i++)
{
if(inputTypeCheck[i].checked)
@ -173,16 +180,20 @@ $('form.siteMap')
if(checkedValue == 'CREATE')
{
kindModuleLayer.show();
createModuleLayer.show()
selectModuleLayer.hide()
insertUrlLayer.hide()
createModuleLayer.show();
selectModuleLayer.hide();
insertUrlLayer.hide();
selectLayoutLayer.show();
changeLayoutList();
}
else if(checkedValue == 'SELECT')
{
kindModuleLayer.show();
createModuleLayer.hide()
selectModuleLayer.show()
insertUrlLayer.hide()
createModuleLayer.hide();
selectModuleLayer.show();
insertUrlLayer.hide();
selectLayoutLayer.show();
changeLayoutList();
}
// type is URL
else
@ -191,6 +202,7 @@ $('form.siteMap')
createModuleLayer.hide()
selectModuleLayer.hide()
insertUrlLayer.show()
selectLayoutLayer.hide()
}
}
@ -203,6 +215,8 @@ $('form.siteMap')
exec_xml('module','procModuleAdminGetList',params, completeGetModuleList, response_tags);
}
var layoutList = new Array();
var moduleList = new Array();
function completeGetModuleList(ret_obj)
{
var module = $('#kModule').val();
@ -212,19 +226,59 @@ $('form.siteMap')
if(ret_obj.module_list[module] != undefined)
{
var midList = ret_obj.module_list[module].list;
var midListByCategory = new Object();
for(x in midList)
{
if(!midList.hasOwnProperty(x)){
continue;
}
var midObject = midList[x];
htmlBuffer += '<option value="'+midObject.mid+'"';
if(menuUrl == midObject.mid) htmlBuffer += ' selected ';
htmlBuffer += '>'+midObject.mid+'('+midObject.browser_title+')</option>';
if(!midListByCategory[midObject.module_category_srl])
{
midListByCategory[midObject.module_category_srl] = new Array();
}
midListByCategory[midObject.module_category_srl].push(midObject);
}
for(x in midListByCategory)
{
var midGroup = midListByCategory[x];
htmlBuffer += '<optgroup label="'+x+'">'
for(y in midGroup)
{
var midObject = midGroup[y];
htmlBuffer += '<option value="'+midObject.mid+'"';
if(menuUrl == midObject.mid) htmlBuffer += ' selected ';
htmlBuffer += '>'+midObject.mid+'('+midObject.browser_title+')</option>';
layoutList[midObject.mid] = midObject.layout_srl;
moduleList[midObject.mid] = midObject.module_srl;
}
htmlBuffer += '</optgroup>'
}
}
else htmlBuffer = '';
selectModuleLayer.find('select').html(htmlBuffer);
selectModuleLayer.html(htmlBuffer);
changeLayoutList();
}
$('#sModule_id').change(changeLayoutList).change();
function changeLayoutList()
{
if(checkedValue == 'SELECT')
{
var mid = $('#sModule_id').val();
$('#layoutSrl').val(layoutList[mid]);
editForm.find('input[name=module_srl]').val(moduleList[mid]);
}
else if(checkedValue == 'CREATE')
{
$('#layoutSrl').val('0');
}
}
function tgMapBtn(){
$('.x .siteMap>ul:visible').next('.btnArea').slideDown(50);
$('.x .siteMap>ul:hidden').next('.btnArea').slideUp(50);

View file

@ -54,6 +54,7 @@ xe.lang.confirm_delete = "{$lang->confirm_delete}";
<input type="hidden" name="menu_srl" value="" />
<input type="hidden" name="menu_item_srl" value="{$menu_info->menu_srl}" />
<input type="hidden" name="parent_srl" value="{$menu_info->menu_srl}" />
<input type="hidden" name="module_srl" value="" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin', 'act', 'dispMenuAdminSiteMap')}#menuTop_" />
<h2 class="h2"><span>{$lang->add_menu}</span><span>{$lang->edit_menu}</span></h2>
<ul>
@ -109,6 +110,8 @@ xe.lang.confirm_delete = "{$lang->confirm_delete}";
<option value="{$key}" cond="$key!='page'">{$value->title}</option>
</block>
</select>
<select style="width:290px" id="sModule_id" name="select_menu_url">
</select>
</p>
</li>
<li id="createModule">
@ -117,19 +120,21 @@ xe.lang.confirm_delete = "{$lang->confirm_delete}";
<input type="text" id="cModule_id" name="create_menu_url" />
</div>
</li>
<li id="selectModule">
<p class="q"><label for="sModule_id">{$lang->select_mid_in_menu} <em>*</em></label></p>
<p class="a">
<select style="width:290px" id="sModule_id" name="select_menu_url">
</select>
</p>
</li>
<li id="insertUrl">
<p class="q"><label for="link_url">{$lang->menu_url} <em>*</em></label></p>
<div class="a">
<input type="text" id="link_url" name="menu_url" value="http://" />
</div>
</li>
<li id="selectLayout">
<p class="q"><label for="layout_list">{$lang->layout} <em>*</em></label></p>
<div class="a">
<select name="layout_srl" id="layoutSrl">
<option value="0">{$lang->notuse}</option>
<option loop="$layout_list => $key, $val" value="{$val->layout_srl}">{$val->title} ({$val->layout})</option>
</select>
</div>
</li>
<li>
<p class="q">{$lang->about_menu_open_window} <em>*</em></p>
<p class="a">

View file

@ -1,11 +1,14 @@
<li>
<input type="hidden" name="parent_key[]" value="{$item['parent_srl']}" class="_parent_key" />
<input type="hidden" name="item_key[]" value="{$item['node_srl']}" class="_item_key" />
<input type="hidden" name="module_srl[]" value="{$item['module_srl']}" class="_module_srl_key" />
<input type="hidden" name="item_layout_key[]" value="{$item['node_srl']}" class="_item_layout_key" />
<!--@if($item['href'])--><a href="{$item['href']}" class="ms" target="_blank">{$item['text']}</a><!--@else-->{$item['text']}<!--@end-->
<span class="side">
<block cond="$item['setup_index_act']"><a href="{getUrl('', 'module', 'admin', 'act', $item['setup_index_act'], 'module_srl', $item['module_srl'])}">{$lang->cmd_setup}</a> |</block>
<a href="#editMenu" class="modalAnchor _edit">{$lang->cmd_edit}</a> |
<a href="#delete" class="_delete">{$lang->cmd_delete}</a> |
<block cond="$item['layout_srl']"><a href="{getUrl('act', 'dispLayoutAdminModify', 'layout_srl', $item['layout_srl'])}">{$lang->cmd_layout_management}</a> | </block>
<block cond="$item['setup_index_act']"><a href="{getUrl('', 'module', 'admin', 'act', $item['setup_index_act'], 'module_srl', $item['module_srl'])}">{$lang->cmd_module_manangement}</a> | </block>
<a href="#editMenu" class="modalAnchor _edit">{$lang->cmd_menu_management}</a> |
<a href="#delete" class="_delete">{$lang->cmd_delete}</a> |
<a href="#editMenu" class="modalAnchor _add _child">{$lang->add}</a>
</span>
<ul cond="count($item['list']>0)">