From fa8a2a19363f2ea4dd5933cd5e4afbb8eb5caba6 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 25 Oct 2022 13:45:13 +0200 Subject: [PATCH] Added pagination to preorder --- Layout/default/Preorder/Index.php | 31 ++++++++++++++++----- application/Preorder/PreorderController.php | 7 +++-- application/Preorder/PreorderModel.php | 29 ++++++++++++++++++- 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/Layout/default/Preorder/Index.php b/Layout/default/Preorder/Index.php index 7fd192a34..8c38f4545 100644 --- a/Layout/default/Preorder/Index.php +++ b/Layout/default/Preorder/Index.php @@ -1,3 +1,8 @@ +getUrl($Mod,"Index"); + $pagination_baseurl_params = ["filter" => $filter]; + $pagination_entity_name = "Vorbestellungen"; +?> @@ -86,14 +91,22 @@
-
-

Liste aller Vorbestellungenname : ""?>

+
+
+
+

Liste aller Vorbestellungenname : ""?>

+
+ + + +
- - - + + + + @@ -150,6 +163,10 @@
+ + + +
diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php index 006fb30d2..6157e2c75 100644 --- a/application/Preorder/PreorderController.php +++ b/application/Preorder/PreorderController.php @@ -38,7 +38,6 @@ class PreorderController extends mfBaseController { } //var_dump($filter);exit; //$pagination['maxItems'] = AddressModel::count($filter); - $this->layout()->set("pagination", $pagination); $campaign_filter = []; @@ -52,8 +51,12 @@ class PreorderController extends mfBaseController { } //var_dump($filter);exit; - $preorders = PreorderModel::search($filter); + $pagination['maxItems'] = PreorderModel::count($filter); + $this->layout()->set("pagination", $pagination); + + $preorders = PreorderModel::search($filter, $pagination); $this->layout()->set("preorders", $preorders); + } private function getPreparedFilter($filter) { diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index 7a16acb5f..63c59b948 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -108,7 +108,26 @@ class PreorderModel { return null; } - public static function search($filter) { + public static function count($filter) { + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT COUNT(*) as cnt FROM `".FRONKDB_DBNAME."`.Preorder tt_preorder + LEFT JOIN `".ADDRESSDB_DBNAME."`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id) + WHERE $where + "; + + mfLoghandler::singleton()->debug($sql); + + $res = $db->query($sql); + if($db->num_rows($res)) { + $data = $db->fetch_object($res); + return $data->cnt; + } + return 0; + } + + public static function search($filter, $limit = false) { $items = []; $db = FronkDB::singleton(); @@ -120,6 +139,14 @@ class PreorderModel { ORDER BY lastname, firstname "; + if(is_array($limit) && count($limit)) { + if(is_numeric($limit['start']) && is_numeric($limit['count'])) { + $sql .= " LIMIT ".$limit['start'].", ".$limit['count']; + } elseif(is_numeric($count)) { + $sql .= " LIMIT ".$limit['count']; + } + } + mfLoghandler::singleton()->debug($sql); $res = $db->query($sql);