1
0
mirror of https://github.com/e107inc/e107.git synced 2025-06-10 13:11:48 +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; 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; protected $batchDelete = true;
/** /**
* Could be LAN constant (mulit-language support) * Could be LAN constant (mulit-language support)
*
* @var string plugin name * @var string plugin name
*/ */
protected $pluginTitle; protected $pluginTitle;
@ -2112,6 +2130,17 @@ class e_admin_controller_ui extends e_admin_controller
return $this->getModel()->getFieldIdName(); 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 * Get column preference array
* @return array * @return array
@ -2837,13 +2866,20 @@ class e_admin_controller_ui extends e_admin_controller
$qry .= " WHERE ".implode(" AND ", $searchQry); $qry .= " WHERE ".implode(" AND ", $searchQry);
} }
$orderField = $request->getQuery('field', $this->getPrimaryName()); if(null !== $this->listOrder && $this->listOrder)
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->listOrder;
$qry .= ' ORDER BY '.$this->fields[$orderField]['__tableField'].' '.($request->getQuery('asc') == 'desc' ? 'DESC' : 'ASC'); }
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'].' '.(strtolower($orderDef) == 'desc' ? 'DESC' : 'ASC');
}
} }
if($this->getPerPage() || false !== $forceTo) if($this->getPerPage() || false !== $forceTo)
{ {
$from = false === $forceFrom ? intval($request->getQuery('from', 0)) : intval($forceFrom); $from = false === $forceFrom ? intval($request->getQuery('from', 0)) : intval($forceFrom);

View File

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

View File

@ -9,9 +9,9 @@
* e107 Base Model * e107 Base Model
* *
* $Source: /cvs_backup/e107_0.8/e107_handlers/model_class.php,v $ * $Source: /cvs_backup/e107_0.8/e107_handlers/model_class.php,v $
* $Revision: 1.49 $ * $Revision: 1.50 $
* $Date: 2009-12-13 21:52:32 $ * $Date: 2009-12-23 15:12:12 $
* $Author: e107steved $ * $Author: secretr $
*/ */
if (!defined('e107_INIT')) { exit; } 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 * @return array
*/ */
function getTree($force = false) function getTree()
{ {
return $this->get('__tree', array()); return $this->get('__tree', array());
} }