1
0
mirror of https://github.com/e107inc/e107.git synced 2025-06-08 20:21:13 +02:00

admin UI / model improvements and bugfixes

This commit is contained in:
secretr 2009-12-23 15:12:13 +00:00
parent e4b25a27e6
commit ddb01846f6
3 changed files with 1067 additions and 1028 deletions

View File

@ -1955,11 +1955,29 @@ class e_admin_controller_ui extends e_admin_controller
*/
protected $pluginName;
/**
* @var string
*/
protected $defaultOrderField = null;
/**
* @var string
*/
protected $defaultOrder = 'asc';
/**
* @var string SQL order, false to disable order, null is default order
*/
protected $listOrder = null;
/**
* @var boolean
*/
protected $batchDelete = true;
/**
* Could be LAN constant (mulit-language support)
*
* @var string plugin name
*/
protected $pluginTitle;
@ -2112,6 +2130,17 @@ class e_admin_controller_ui extends e_admin_controller
return $this->getModel()->getFieldIdName();
}
public function getDefaultOrderField()
{
return ($this->defaultOrder ? $this->defaultOrderField : $this->getPrimaryName());
}
public function getDefaultOrder()
{
return ($this->defaultOrder ? $this->defaultOrder : 'asc');
}
/**
* Get column preference array
* @return array
@ -2837,13 +2866,20 @@ class e_admin_controller_ui extends e_admin_controller
$qry .= " WHERE ".implode(" AND ", $searchQry);
}
$orderField = $request->getQuery('field', $this->getPrimaryName());
if(null !== $this->listOrder && $this->listOrder)
{
$qry .= ' ORDER BY '.$this->listOrder;
}
elseif(false !== $this->listOrder)
{
$orderField = $request->getQuery('field', $this->getDefaultOrderField());
$orderDef = (null === $request->getQuery('asc', null) ? $this->getDefaultOrder() : $request->getQuery('asc'));
if(isset($this->fields[$orderField]) && strpos($this->listQry,'ORDER BY')==FALSE) //override ORDER using listQry (admin->sitelinks)
{
// no need of sanitize - it's found in field array
$qry .= ' ORDER BY '.$this->fields[$orderField]['__tableField'].' '.($request->getQuery('asc') == 'desc' ? 'DESC' : 'ASC');
$qry .= ' ORDER BY '.$this->fields[$orderField]['__tableField'].' '.(strtolower($orderDef) == 'desc' ? 'DESC' : 'ASC');
}
}
if($this->getPerPage() || false !== $forceTo)
{
$from = false === $forceFrom ? intval($request->getQuery('from', 0)) : intval($forceFrom);

View File

@ -9,9 +9,9 @@
* Form Handler
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $
* $Revision: 1.102 $
* $Date: 2009-12-23 10:04:38 $
* $Author: e107coders $
* $Revision: 1.103 $
* $Date: 2009-12-23 15:12:13 $
* $Author: secretr $
*
*/
@ -124,6 +124,7 @@ class e_form
// Temporary Fix for using Media-Manager data
$sql = e107::getDb();
if($sql->db_Select('core_media','*',"media_userclass IN (".USERCLASS_LIST.") ORDER BY media_name"))
{
while($row = $sql->db_Fetch())
@ -134,7 +135,6 @@ class e_form
asort($opts);
return $this->selectbox($name,$opts,$default, array('default'=>' '));
}
// ----------------
if(is_string($sc_parameters)) parse_str($sc_parameters, $sc_parameters);
@ -446,6 +446,8 @@ class e_form
*/
function selectbox($name, $option_array, $selected = false, $options = array())
{
if(!is_array($options)) parse_str($options, $options);
if($option_array == 'yesno')
{
$option_array = array(1=>LAN_YES,0=>LAN_NO);
@ -1247,6 +1249,7 @@ class e_form
}
break;
case 'bool':
case 'boolean':
$value = $value ? ADMIN_TRUE_ICON : ADMIN_FALSE_ICON;
break;
@ -1326,7 +1329,6 @@ class e_form
case 'url':
case 'email':
case 'text':
$maxlength = vartrue($parms['maxlength'], 255);
unset($parms['maxlength']);
return vartrue($parms['pre']).$this->text($key, $value, $maxlength, vartrue($parms['__options'])).vartrue($parms['post']);
@ -1468,6 +1470,7 @@ class e_form
return $this->userpicker(vartrue($parms['nameField'], $key.'_usersearch'), $key, $uname, $value, vartrue($parms['__options']));
break;
case 'bool':
case 'boolean':
$lenabled = vartrue($parms['enabled'], 'LAN_ENABLED');
$ldisabled = vartrue($parms['disabled'], 'LAN_DISABLED');

View File

@ -9,9 +9,9 @@
* e107 Base Model
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/model_class.php,v $
* $Revision: 1.49 $
* $Date: 2009-12-13 21:52:32 $
* $Author: e107steved $
* $Revision: 1.50 $
* $Date: 2009-12-23 15:12:12 $
* $Author: secretr $
*/
if (!defined('e107_INIT')) { exit; }
@ -2057,10 +2057,10 @@ class e_tree_model extends e_model
}
/**
* Set array of models
* Get array of models
* @return array
*/
function getTree($force = false)
function getTree()
{
return $this->get('__tree', array());
}