From d6d178824c8b8b6a0d0285eee19b023b9f6b80cc Mon Sep 17 00:00:00 2001 From: Cameron <e107inc@gmail.com> Date: Thu, 5 Mar 2020 11:38:23 -0800 Subject: [PATCH] Admin-UI: $listGroup added for control of specific JOIN grouping when necessary. Example added to blank plugin. --- e107_handlers/admin_ui.php | 12 +++++++++++- e107_plugins/_blank/admin_config.php | 11 +++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/e107_handlers/admin_ui.php b/e107_handlers/admin_ui.php index 02ec5441e..3e598e810 100755 --- a/e107_handlers/admin_ui.php +++ b/e107_handlers/admin_ui.php @@ -2508,6 +2508,11 @@ class e_admin_controller_ui extends e_admin_controller * @var string SQL order, false to disable order, null is default order */ protected $listOrder = null; + + /** + * @var string SQL group-by field name (optional) + */ + protected $listGroup = null; /** * @var string field containing the order number @@ -4411,13 +4416,18 @@ class e_admin_controller_ui extends e_admin_controller } // group field - currently auto-added only if there are joins - // TODO - groupField property $groupField = ''; if($joins && $this->getPrimaryName()) { $groupField = $tablePath.$this->getPrimaryName(); } + // appended to GROUP BY when true. + if(!empty($this->listGroup)) + { + $groupField = $this->listGroup; + } + if($raw) { $rawData = array( diff --git a/e107_plugins/_blank/admin_config.php b/e107_plugins/_blank/admin_config.php index 6927f6875..5b24f6a1d 100644 --- a/e107_plugins/_blank/admin_config.php +++ b/e107_plugins/_blank/admin_config.php @@ -95,15 +95,17 @@ class plugin_blank_admin_ui extends e_admin_ui /** * This is only needed if you need to JOIN tables AND don't wanna use $tableJoin - * Write your list query without any Order or Limit. + * Write your list query without any Group, Order or Limit. * * @var string [optional] */ protected $listQry = ""; - // - // optional - required only in case of e.g. tables JOIN. This also could be done with custom model (set it in init()) - //protected $editQry = "SELECT * FROM #blank WHERE blank_id = {ID}"; + protected $listOrder = 'blank_id DESC'; + + // protected $listGroup = 'somefield'; // (optional: when needing control over JOINs) + + // protected $editQry = "SELECT * FROM #blank WHERE blank_id = {ID}"; // required - if no custom model is set in init() (primary id) protected $pid = "blank_id"; @@ -112,6 +114,7 @@ class plugin_blank_admin_ui extends e_admin_ui protected $perPage = 20; protected $batchDelete = true; + // protected \$sortField = 'somefield_order';