issue 1110 add layout management in sitemap

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@10826 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-07-03 08:20:49 +00:00
parent cfe9df9cde
commit aa8fa156ca
9 changed files with 103 additions and 26 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

@ -140,6 +140,7 @@
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";
@ -175,12 +176,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' :
@ -194,9 +199,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);
}

View file

@ -146,6 +146,7 @@
if($moduleInfo->mid == $menuItem->url) {
$menuItem->moduleType = $moduleInfo->module;
$menuItem->pageType = $moduleInfo->page_type;
$menuItem->layoutSrl = $moduleInfo->layout_srl;
}
}
}

View file

@ -127,6 +127,7 @@
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');
@ -178,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();
@ -214,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)
{

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();
@ -218,13 +232,32 @@ $('form.siteMap')
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;
}
}
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)">

View file

@ -560,6 +560,7 @@
$obj = null;
$obj->module_srl = $val->module_srl;
$obj->layout_srl = $val->layout_srl;
$obj->browser_title = $val->browser_title;
$obj->mid = $val->mid;
$mid_list[$module]->list[$val->mid] = $obj;

View file

@ -7,6 +7,7 @@
<column name="sites.domain" />
<column name="modules.site_srl" />
<column name="modules.module" />
<column name="modules.layout_srl" />
<column name="modules.mid" />
<column name="modules.browser_title" />
<column name="modules.module_srl" />