diff --git a/Layout/default/Preordercampaign/Index.php b/Layout/default/Preordercampaign/Index.php
index 64d4ba0d3..cfbb12237 100644
--- a/Layout/default/Preordercampaign/Index.php
+++ b/Layout/default/Preordercampaign/Index.php
@@ -1,3 +1,8 @@
+getUrl($Mod,"Index");
+ $pagination_baseurl_params = ["filter" => $filter];
+ $pagination_entity_name = "Vorbestellkampagnen";
+?>
@@ -82,6 +87,13 @@
+
+
+
+
+
+
diff --git a/application/Preordercampaign/PreordercampaignController.php b/application/Preordercampaign/PreordercampaignController.php
index 1d6dbe9be..9f3ed050e 100644
--- a/application/Preordercampaign/PreordercampaignController.php
+++ b/application/Preordercampaign/PreordercampaignController.php
@@ -98,8 +98,10 @@ class PreordercampaignController extends mfBaseController {
}
+ $pagination['maxItems'] = PreordercampaignModel::count($filter);
+ $campaigns = PreordercampaignModel::search($filter, $pagination);
- $campaigns = PreordercampaignModel::search($filter);
+ $this->layout()->set("pagination", $pagination);
$this->layout()->set("campaigns", $campaigns);
diff --git a/application/Preordercampaign/PreordercampaignModel.php b/application/Preordercampaign/PreordercampaignModel.php
index 78a712f3d..85f461a12 100644
--- a/application/Preordercampaign/PreordercampaignModel.php
+++ b/application/Preordercampaign/PreordercampaignModel.php
@@ -82,7 +82,26 @@ class PreordercampaignModel {
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 Preordercampaign
+ LEFT JOIN Network on (Preordercampaign.network_id = Network.id)
+ WHERE $where ORDER BY `Preordercampaign`.name,Preordercampaign.`create`
+ ";
+
+ 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();
@@ -90,10 +109,19 @@ class PreordercampaignModel {
$sql = "SELECT Preordercampaign.* FROM Preordercampaign
LEFT JOIN Network on (Preordercampaign.network_id = Network.id)
- WHERE $where ORDER BY `Preordercampaign`.name,`create`
+ WHERE $where ORDER BY `Preordercampaign`.name,Preordercampaign.`create`
";
+
+ 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->select("Preordercampaign", "*", "$where ORDER BY name,`create`");
+ $res = $db->query($sql);
if($db->num_rows($res)) {
while($data = $db->fetch_object($res)) {
$items[] = new Preordercampaign($data);
diff --git a/application/Preorderstatus/PreorderstatusModel.php b/application/Preorderstatus/PreorderstatusModel.php
index 40f2e81ed..e2231eaad 100644
--- a/application/Preorderstatus/PreorderstatusModel.php
+++ b/application/Preorderstatus/PreorderstatusModel.php
@@ -3,6 +3,7 @@
class PreorderstatusModel {
public $code;
public $name;
+ public $connection_type;
public $create_by;
public $edit_by;
@@ -122,7 +123,7 @@ class PreorderstatusModel {
private static function getSqlFilter($filter) {
$where = "1=1 ";
-
+
//var_dump($filter);exit;
if(array_key_exists("code", $filter)) {
@@ -132,6 +133,13 @@ class PreorderstatusModel {
}
}
+ if(array_key_exists("connection_type", $filter)) {
+ $connection_type = FronkDB::singleton()->escape($filter['connection_type']);
+ if($connection_type) {
+ $where .= " AND connection_type='$connection_type'";
+ }
+ }
+
//var_dump($filter, $where);exit;
return $where;