issue 70 site map developement.

but yet not completed


git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8965 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2011-08-31 08:18:48 +00:00
parent 5cd8e57f0e
commit ae48547676
7 changed files with 256 additions and 41 deletions

View file

@ -102,6 +102,13 @@
if(!is_array($source_args->group_srls)) $source_args->group_srls = str_replace('|@|',',',$source_args->group_srls);
else $source_args->group_srls = implode(',', $source_args->group_srls);
$source_args->parent_srl = (int)$source_args->parent_srl;
if($source_args->cType == 'CREATE') $source_args->menu_url = $source_args->create_menu_url;
else if($source_args->cType == 'SELECT') $source_args->menu_url = $source_args->select_menu_url;
// upload button
$btnOutput = $this->_uploadButton($source_args);
// Re-order variables (Column's order is different between form and DB)
$args->menu_srl = $source_args->menu_srl;
$args->menu_item_srl = $source_args->menu_item_srl;
@ -112,22 +119,32 @@
$args->url = trim($source_args->menu_url);
$args->open_window = $source_args->menu_open_window;
$args->expand = $source_args->menu_expand;
$args->normal_btn = $source_args->normal_btn;
$args->hover_btn = $source_args->hover_btn;
$args->active_btn = $source_args->active_btn;
if($btnOutput['normal_btn']) $args->normal_btn = $btnOutput['normal_btn'];
if($btnOutput['hover_btn']) $args->hover_btn = $btnOutput['hover_btn'];
if($btnOutput['active_btn']) $args->active_btn = $btnOutput['active_btn'];
$args->group_srls = $source_args->group_srls;
// Check if already exists
$oMenuModel = &getAdminModel('menu');
$item_info = $oMenuModel->getMenuItemInfo($args->menu_item_srl);
// button is deleted, db delete
if($source_args->isNormalDelete == 'Y') $args->normal_btn = '';
if($source_args->isHoverDelete == 'Y') $args->hover_btn = '';
if($source_args->isActiveDelete == 'Y') $args->active_btn = '';
$message = '';
// Update if exists
if($item_info->menu_item_srl == $args->menu_item_srl) {
if(!empty($args->menu_item_srl) && $item_info->menu_item_srl == $args->menu_item_srl) {
$output = executeQuery('menu.updateMenuItem', $args);
if(!$output->toBool()) return $output;
$message = 'success_updated';
// Insert if not exist
} else {
if(!$args->menu_item_srl) $args->menu_item_srl = getNextSequence();
$args->listorder = -1*$args->menu_item_srl;
$output = executeQuery('menu.insertMenuItem', $args);
if(!$output->toBool()) return $output;
$message = 'success_registed';
}
// Get information of the menu
$menu_info = $oMenuModel->getMenu($args->menu_srl);
@ -158,7 +175,7 @@
$this->add('menu_title', $menu_title);
$this->add('parent_srl', $args->parent_srl);
$this->setMessage('success_updated', 'info');
$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);
@ -254,7 +271,7 @@
else $menuList[$parentSrl][$value] = true;
}
foreach($menuList AS $key=>$value)
/*foreach($menuList AS $key=>$value)
{
if(count($value) > 0)
{
@ -265,7 +282,7 @@
$sourceSrl = $key2;
}
}
}
}*/
}
$this->setMessage('success_updated', 'info');
@ -775,5 +792,60 @@
}
}
/**
* @brief Register a menu image button
**/
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)
if(!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();
// 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', $path, $args->menu_item_srl, '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', $path, $args->menu_item_srl, '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', $path, $args->menu_item_srl, 'menu_active_btn', $ext);
move_uploaded_file($args->menu_active_btn['tmp_name'], $filename);
$returnArray['active_btn'] = $filename;
}
return $returnArray;
}
}
?>

View file

@ -115,6 +115,27 @@
$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);
if($moduleInfo->mid == $menuItem->url) {
$menuItem->moduleType = $moduleInfo->module;
//$menuItem->module_id = $moduleInfo->mid;
//$menuItem->browser_title = $moduleInfo->browser_title;
//unset($menuItem->url);
}
}
else
{
$menuItem->moduleType = 'url';
/*$menuItem->url = preg_replace('/^(http|https):\/\//i','',$menuItem->url);*/
}
// get groups
$oMemberModel = &getModel('member');
$output = $oMemberModel->getGroups();

View file

@ -118,6 +118,35 @@
}
Context::set('menu_list', $output);
// get installed module list
$oModuleModel = &getModel('module');
$output = $oModuleModel->getModuleList();
if(is_array($output))
{
$installedModuleList = array();
foreach($output AS $key=>$value)
{
array_push($installedModuleList, $value->module);
}
$useModuleList = array('board', 'forum', 'wiki', 'page');
}
$resultModuleList = array_intersect($installedModuleList, $useModuleList);
Context::set('module_list', $resultModuleList);
// 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');
}

View file

@ -7,9 +7,9 @@
<column name="url" var="url" />
<column name="open_window" var="open_window" />
<column name="expand" var="expand" />
<column name="normal_btn" var="normal_btn" default="" />
<column name="hover_btn" var="hover_btn" default="" />
<column name="active_btn" var="active_btn" default="" />
<column name="normal_btn" var="normal_btn" />
<column name="hover_btn" var="hover_btn" />
<column name="active_btn" var="active_btn" />
<column name="group_srls" var="group_srls" />
</columns>
<conditions>

View file

@ -207,6 +207,7 @@ $('.tgMap').click(function(){
var editForm = $('#editForm');
var menuSrl = null;
var menuForm = null;
var menuUrl = null;
$('a._edit').click(function(){
var parentKey = $(this).parent().prevAll('._parent_key').val();
@ -233,17 +234,39 @@ $('.tgMap').click(function(){
function completeGetActList(obj)
{
var menuItem = obj.menu_item;
menuUrl = menuItem.url;
editForm.find('.h2').html('Edit Menu');
editForm.find('input[name=menu_srl]').val(menuItem.menu_srl);
editForm.find('input[name=menu_item_srl]').val(menuItem.menu_item_srl);
editForm.find('input[name=parent_srl]').val(menuItem.parent_srl);
editForm.find('input[name=menu_name]').val(menuItem.name);
editForm.find('input=[name=menu_url]').val(menuItem.url);
var moduleType = menuItem.moduleType;
var inputCType = editForm.find('input[name=cType]');
if(moduleType == 'url')
{
inputCType[2].checked = true;
editForm.find('input[name=menu_url]').val(menuItem.url);
}
else
{
inputCType[1].checked = true;
editForm.find('input[name=select_menu_url]').val(menuItem.url);
}
typeCheck();
getModuleList();
var openWindow = menuItem.open_window;
var openWindowForm = editForm.find('input=[name=menu_open_window]');
if(openWindow == 'Y') openWindowForm[1].checked = true;
else openWindowForm[0].checked = true;
// button image
if(menuItem.normal_btn) $('#normal_btn_preview').html('<img src="'+menuItem.normal_btn+'" /><input type="checkbox" name="isNormalDelete" value="Y"> Delete');
if(menuItem.hover_btn) $('#hover_btn_preview').html('<img src="'+menuItem.hover_btn+'" /><input type="checkbox" name="isHoverDelete" value="Y"> Delete');
if(menuItem.active_btn) $('#active_btn_preview').html('<img src="'+menuItem.active_btn+'" /><input type="checkbox" name="isActiveDelete" value="Y"> Delete');
var htmlBuffer = '';
for(x in menuItem.groupList.item)
{
@ -267,15 +290,18 @@ $('.tgMap').click(function(){
$('a._add').click(function()
{
var menuItem = obj.menu_item;
editForm.find('input[name=menu_srl]').val('');
editForm.find('input[name=menu_item_srl]').val('');
editForm.find('input[name=parent_srl]').val('');
editForm.find('.h2').html('Add Menu');
editForm.find('input[name=menu_srl]').val($(this).parents().prevAll('input[name=menu_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('input=[name=menu_url]').val('');
editForm.find('input=[name=menu_open_window]')[0].checked = true;
editForm.find('input=[name=menu_open_window]').attr('checked', false);
editForm.find('input=[name=group_srls\\[\\]]').attr('checked', false);
var htmlBuffer = '';
/*var htmlBuffer = '';
for(x in menuItem.groupList.item)
{
var groupObj = menuItem.groupList.item[x];
@ -284,6 +310,78 @@ $('.tgMap').click(function(){
if(groupObj.isChecked) htmlBuffer += ' checked="checked" ';
htmlBuffer += '/> <label for="group_srls_'+groupObj.group_srl+'">'+groupObj.title+'</label>'
}
$('#groupList').html(htmlBuffer);
$('#groupList').html(htmlBuffer);*/
});
var kindModuleLayer = $('#kindModule');
var createModuleLayer = $('#createModule');
var selectModuleLayer = $('#selectModule');
var insertUrlLayer = $('#insertUrl');
kindModuleLayer.hide();
createModuleLayer.hide();
selectModuleLayer.hide();
insertUrlLayer.hide();
$('input._typeCheck').click(typeCheck);
function typeCheck()
{
var inputTypeCheck = $('input._typeCheck');
var checkedValue = null;
for(var i=0; i<3; i++)
{
if(inputTypeCheck[i].checked)
{
checkedValue = inputTypeCheck[i].value;
break;
}
}
if(checkedValue == 'CREATE')
{
kindModuleLayer.show();
createModuleLayer.show()
selectModuleLayer.hide()
insertUrlLayer.hide()
}
else if(checkedValue == 'SELECT')
{
kindModuleLayer.show();
createModuleLayer.hide()
selectModuleLayer.show()
insertUrlLayer.hide()
}
// type is URL
else
{
kindModuleLayer.hide();
createModuleLayer.hide()
selectModuleLayer.hide()
insertUrlLayer.show()
}
}
$('#kModule').change(getModuleList);
function getModuleList()
{
var params = new Array();
var response_tags = ['error', 'message', 'module_list'];
exec_xml('module','procModuleAdminGetList',params, completeGetModuleList, response_tags);
}
function completeGetModuleList(ret_obj)
{
var midList = ret_obj.module_list[$('#kModule').val()].list;
var htmlBuffer = "";
for(x in midList)
{
var midObject = midList[x];
htmlBuffer += '<option value="'+midObject.mid+'"';
if(menuUrl == midObject.mid) htmlBuffer += ' selected ';
htmlBuffer += '>'+midObject.browser_title+'</option>';
}
selectModuleLayer.find('select').html(htmlBuffer);
}
});

View file

@ -26,7 +26,7 @@
<input type="hidden" name="child_key[]" value="{$key3}" class="_child_key" />
{$value3->name} <a href="#" class="wPreview" target="_blank">Preview</a> <span class="side"><a href="#editMenu" class="modalAnchor _edit">Edit...</a> | <a href="#delete" class="_delete">Delete</a></span>
</li>
</ul cond="$value2['subMenu']>0">
</ul>
</li>
</ul>
<p class="btnArea"><span class="btn small"><a href="#editMenu" class="modalAnchor _add">Add Menu...</a></span> <span class="btn small"><button value="procMenuAdminArrangeItem" name="act" type="submit">{$lang->cmd_save}</button></span></p>
@ -42,7 +42,7 @@
<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}" />
<h2 class="h2">Add Menu | Edit Menu</h2>
<h2 class="h2"></h2>
<ul>
<li>
<p class="q"><label for="name">Name</label></p>
@ -90,40 +90,34 @@
<li>
<p class="q">Module or URL?</p>
<p class="a">
<input type="radio" name="cType" id="cModule" /> <label for="cModule">Create Module</label>
<input type="radio" name="cType" id="sModule" /> <label for="sModule">Select Module</label>
<input type="radio" name="cType" id="url" /> <label for="url">URL</label>
<input type="radio" name="cType" id="cModule" class="_typeCheck" value="CREATE" /> <label for="cModule">Create Module</label>
<input type="radio" name="cType" id="sModule" class="_typeCheck" value="SELECT" /> <label for="sModule">Select Module</label>
<input type="radio" name="cType" id="url" class="_typeCheck" value="URL" /> <label for="url">URL</label>
</p>
</li>
<li>
<li id="kindModule">
<p class="q"><label for="kModule">What kind of module?</label></p>
<p class="a">
<select style="width:290px" id="kModule">
<option>board</option>
<option>forum</option>
<option>page</option>
<option>wiki</option>
<option loop="$module_list=>$key,$value" value="{$value}">{$value}</option>
</select>
</p>
</li>
<li>
<li id="createModule">
<p class="q"><label for="cModule_id">Create module ID.</label></p>
<div class="a">
<input type="text" id="cModule_id" name="menu_url" />
<input type="text" id="cModule_id" name="create_menu_url" />
<span class="desc"><button type="button" class="text">Validation Check</button></span>
</div>
</li>
<li>
<li id="selectModule">
<p class="q"><label for="sModule_id">Select module ID.</label></p>
<p class="a">
<select style="width:290px" id="sModule_id">
<option>freeBoard</option>
<option>userForum</option>
<option>devForum</option>
<select style="width:290px" id="sModule_id" name="select_menu_url">
</select>
</p>
</li>
<li>
<li id="insertUrl">
<p class="q"><label for="link_url">Insert URL.</label></p>
<div class="a">
<input type="text" id="link_url" name="menu_url" value="http://" />
@ -139,23 +133,23 @@
<li>
<p class="q">Display image.</p>
<p class="a">
<input type="radio" name="imgUse" id="imgNo" checked="checked" /> <label for="imgNo">No</label>
<input type="radio" name="imgUse" id="imgYes" /> <label for="imgYes">Yes</label>
</p>
<p class="a">
<span id="normal_btn_preview"></span>
<input type="file" name="menu_normal_btn" id="menu_normal_btn" /> <label for="menu_normal_btn">Normal Image</label><br />
<span id="hover_btn_preview"></span>
<input type="file" name="menu_hover_btn" id="menu_hover_btn" /> <label for="menu_hover_btn">Hover Image</label><br />
<span id="active_btn_preview"></span>
<input type="file" name="menu_active_btn" id="menu_active_btn" /> <label for="menu_active_btn">Active Image</label>
</p>
</li>
<li>
<p class="q">Authority for access.</p>
<p class="a" id="groupList">
<block loop="$group_list=>$key,$value"><input type="checkbox" name="group_srls[]" id="group_srls_{$value->group_srl}" value="{$value->group_srl}" /> <label for="group_srls_{$value->group_srl}">{$value->title}</label></block>
</p>
</li>
</ul>
<div class="btnArea">
<span class="btn"><input type="submit" value="Save" /></span>
<span class="btn"><input type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>
</div>

View file

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