From b9451ccf0ed90c674c6f714de10a71a33a6c7b16 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Sun, 22 Jul 2018 22:33:53 +0200 Subject: bake: allow default order by through associated tables --- .../src/View/Helper/BakeExtraHelper.php | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'fai_gestion/plugins/CustomTheme/src/View/Helper/BakeExtraHelper.php') diff --git a/fai_gestion/plugins/CustomTheme/src/View/Helper/BakeExtraHelper.php b/fai_gestion/plugins/CustomTheme/src/View/Helper/BakeExtraHelper.php index eb4b1df..44b28d4 100644 --- a/fai_gestion/plugins/CustomTheme/src/View/Helper/BakeExtraHelper.php +++ b/fai_gestion/plugins/CustomTheme/src/View/Helper/BakeExtraHelper.php @@ -120,6 +120,29 @@ class BakeExtraHelper extends Helper return Hash::get($this->_config, "templateExtra.$controllerName.order"); } + public function hasOrderContains($controllerName) { + if ( ! is_string($controllerName) ) return FALSE; + $orderContains = $this->getOrderContains($controllerName); + return (is_array($orderContains) && count($orderContains) > 0); + } + + public function getOrderContains($controllerName) { + if ( ! is_string($controllerName) ) return FALSE; + $orderOpts = $this->getOrderOpts($controllerName); + $contains = collection(array_keys($orderOpts)) + ->map( + function ($item, $key) use ($controllerName) { + $alias = substr($item, 0, strpos($item, '.')); + return ($alias===$controllerName)?FALSE:$alias; + } + )->filter( + function ($item, $key) { + return $item !== FALSE; + } + )->toArray(); + return $contains; + } + public function hasOrderHooks($controllerName) { if ( ! is_string($controllerName) ) return FALSE; $orderHooks = $this->getOrderHooks($controllerName); -- cgit v1.1