#351 enable sort by extra_vars

This commit is contained in:
akasima 2014-08-23 11:51:38 +09:00 committed by bnu
parent 875149975a
commit f878f98461
3 changed files with 27 additions and 2 deletions

View file

@ -30,12 +30,24 @@ class boardAdminController extends board {
if(is_array($args->use_status)) $args->use_status = implode('|@|', $args->use_status);
unset($args->board_name);
// setup extra_order_target
$extra_order_target = array();
if($args->module_srl)
{
$oDocumentModel = getModel('document');
$module_extra_vars = $oDocumentModel->getExtraKeys($args->module_srl);
foreach($module_extra_vars as $oExtraItem)
{
$extra_order_target[$oExtraItem->eid] = $oExtraItem->name;
}
}
// setup other variables
if($args->except_notice != 'Y') $args->except_notice = 'N';
if($args->use_anonymous != 'Y') $args->use_anonymous = 'N';
if($args->consultation != 'Y') $args->consultation = 'N';
if($args->protect_content!= 'Y') $args->protect_content = 'N';
if(!in_array($args->order_target,$this->order_target)) $args->order_target = 'list_order';
if(!in_array($args->order_target,$this->order_target) && !in_array($args->order_target, $extra_order_target)) $args->order_target = 'list_order';
if(!in_array($args->order_type, array('asc', 'desc'))) $args->order_type = 'asc';
// if there is an existed module

View file

@ -168,11 +168,21 @@ class boardAdminView extends board {
$oBoardModel = getModel('board');
// setup the extra vaiables
Context::set('extra_vars', $oBoardModel->getDefaultListConfig($this->module_info->module_srl));
$extra_vars = $oBoardModel->getDefaultListConfig($this->module_info->module_srl);
Context::set('extra_vars', $extra_vars);
// setup the list config (install the default value if there is no list config)
Context::set('list_config', $oBoardModel->getListConfig($this->module_info->module_srl));
// setup extra_order_target
$module_extra_vars = $oDocumentModel->getExtraKeys($this->module_info->module_srl);
$extra_order_target = array();
foreach($module_extra_vars as $oExtraItem)
{
$extra_order_target[$oExtraItem->eid] = $oExtraItem->name;
}
Context::set('extra_order_target', $extra_order_target);
$security = new Security();
$security->encodeHTML('extra_vars..name','list_config..name');

View file

@ -129,6 +129,9 @@
<div class="x_controls">
<select name="order_target" id="order_target" title="{$lang->order_target}">
<option loop="$order_target=> $key, $val" value="{$key}" selected="selected"|cond="$module_info->order_target== $key">{$val}</option>
<block cond="$extra_order_target">
<option loop="$extra_order_target=> $key, $val" value="{$key}" selected="selected"|cond="$module_info->order_target== $key">{$val}</option>
</block>
</select>
<select name="order_type" id="order_type" title="{$lang->order_type}">
<option value="asc" selected="selected"|cond="$module_info->order_type != 'desc'">{$lang->order_asc}</option>