issue 70 admin menu move developement

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8864 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2011-08-24 08:39:52 +00:00
parent 49cbb86e7d
commit ef450b09e5
4 changed files with 46 additions and 13 deletions

View file

@ -40,7 +40,7 @@ jQuery(function($){
}); });
$('a._child_delete').click(function() { $('a._child_delete').click(function() {
var menu_item_srl = $(this).parents('li').prevAll('._child_key').val(); var menu_item_srl = $(this).parents('li').find('._child_key').val();
listForm.find('input[name=menu_item_srl]').val(menu_item_srl); listForm.find('input[name=menu_item_srl]').val(menu_item_srl);
listForm.submit(); listForm.submit();
}); });

View file

@ -4,7 +4,7 @@
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}"> <div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p> <p>{$XE_VALIDATOR_MESSAGE}</p>
</div> </div>
<form id="listForm" action="./" class="siteMap"> <form id="listForm" action="./" class="siteMap" method="post">
<input type="hidden" name="act" value="procMenuAdminDeleteItem" /> <input type="hidden" name="act" value="procMenuAdminDeleteItem" />
<input type="hidden" name="menu_srl" value="{$menu_srl}" /> <input type="hidden" name="menu_srl" value="{$menu_srl}" />
<input type="hidden" name="menu_item_srl" value="" /> <input type="hidden" name="menu_item_srl" value="" />
@ -13,21 +13,16 @@
<div class="adminMenu portlet"> <div class="adminMenu portlet">
<h2 class="h2"><input value="Admin Menu" disabled /></h2> <h2 class="h2"><input value="Admin Menu" disabled /></h2>
<ul class="lined"> <ul class="lined">
<!--@foreach($gnbUrlList AS $key=>$value)--> <li class="parent" loop="$gnbUrlList=>$key,$value">
<li class="parent"> <input type="hidden" name="parent_key[]" value="{$key}" class="_parent_key" />
<input type="hidden" value="{$key}" class="_parent_key" /> <input type="hidden" name="child_key[]" value="BEGIN_{$key}" />
<span>{$value['text']}</span> <span class="side"><a href="#editMenu" class="modalAnchor _add">Add</a></span> <span>{$value['text']}</span> <span class="side"><a href="#editMenu" class="modalAnchor _add">Add</a></span>
<!--@if(is_array($value['list']) && count($value['list'])>0)--> <ul cond="is_array($value['list']) && count($value['list'])>0">
<ul> <li loop="$value['list']=>$key2,$value2"><span>{$value2['text']}</span><span class="side"><a href="#delete" class="_child_delete">Delete</a></span><input type="hidden" name="child_key[]" value="{$key2}" class="_child_key" /></li>
<!--@foreach($value['list'] AS $key2=>$value2)-->
<input type="hidden" value="{$key2}" class="_child_key" />
<li><span>{$value2['text']}</span><span class="side"><a href="#delete" class="_child_delete">Delete</a></span></li>
<!--@end-->
</ul> </ul>
<!--@end-->
</li> </li>
<!--@end-->
</ul> </ul>
<p class="btnArea"><span class="btn small"><button value="procMenuAdminArrangeItem" name="act" type="submit">{$lang->cmd_save}</button></span></p>
</div> </div>
</form> </form>

View file

@ -18,6 +18,7 @@
<action name="procMenuAdminDeleteItem" type="controller" standalone="true" /> <action name="procMenuAdminDeleteItem" type="controller" standalone="true" />
<action name="procMenuAdminMakeXmlFile" type="controller" standalone="true" /> <action name="procMenuAdminMakeXmlFile" type="controller" standalone="true" />
<action name="procMenuAdminMoveItem" type="controller" standalone="true" /> <action name="procMenuAdminMoveItem" type="controller" standalone="true" />
<action name="procMenuAdminArrangeItem" type="controller" standalone="true" />
<action name="procMenuAdminUploadButton" type="controller" standalone="true" /> <action name="procMenuAdminUploadButton" type="controller" standalone="true" />
<action name="procMenuAdminDeleteButton" type="controller" standalone="true" /> <action name="procMenuAdminDeleteButton" type="controller" standalone="true" />

View file

@ -224,6 +224,43 @@
$this->moveMenuItem($menu_srl,$parent_srl,$source_srl,$target_srl,$mode); $this->moveMenuItem($menu_srl,$parent_srl,$source_srl,$target_srl,$mode);
} }
/**
* @brief Arrange menu items
**/
function procMenuAdminArrangeItem()
{
$menuSrl = Context::get('menu_srl');
$childKeyList = Context::get('child_key');
if(is_array($childKeyList))
{
$menuList = array();
foreach($childKeyList AS $key=>$value)
{
preg_match('/BEGIN_([0-9]*.)/is', $value, $m);
if($m)
{
$menuList[$m[1]] = array();
$parentSrl = $m[1];
}
else $menuList[$parentSrl][$value] = true;
}
foreach($menuList AS $key=>$value)
{
if(count($value) > 0)
{
$sourceSrl = 0;
foreach($value AS $key2=>$value2)
{
$this->moveMenuItem($menuSrl, $key, $sourceSrl, $key2, 'move');
$sourceSrl = $key2;
}
}
}
}
}
function moveMenuItem($menu_srl,$parent_srl,$source_srl,$target_srl,$mode){ function moveMenuItem($menu_srl,$parent_srl,$source_srl,$target_srl,$mode){
// Get the original menus // Get the original menus
$oMenuAdminModel = &getAdminModel('menu'); $oMenuAdminModel = &getAdminModel('menu');