From 1084ba094a8dfec54da89b9c40bae03006bc381e Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Fri, 20 Jul 2018 15:34:12 +0200 Subject: [PATCH] FEAT Add offset function to database model --- src/app/priority/models/PriorityModelAbstract.php | 9 ++++++--- src/core/controllers/CoreController.php | 9 +++------ src/core/models/DatabaseModel.php | 9 ++++++++- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/app/priority/models/PriorityModelAbstract.php b/src/app/priority/models/PriorityModelAbstract.php index f2129b53684..3442bbf4517 100644 --- a/src/app/priority/models/PriorityModelAbstract.php +++ b/src/app/priority/models/PriorityModelAbstract.php @@ -21,13 +21,16 @@ abstract class PriorityModelAbstract public static function get(array $aArgs = []) { ValidatorModel::arrayType($aArgs, ['select', 'where', 'data', 'orderBy']); + ValidatorModel::intType($aArgs, ['limit', 'offset']); $aReturn = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'table' => ['priorities'], - 'where' => $aArgs['where'], - 'data' => $aArgs['data'], - 'order_by' => $aArgs['orderBy'] + 'where' => empty($aArgs['where']) ? [] : $aArgs['where'], + 'data' => empty($aArgs['data']) ? [] : $aArgs['data'], + 'order_by' => empty($aArgs['orderBy']) ? [] : $aArgs['orderBy'], + 'offset' => empty($aArgs['offset']) ? 0 : $aArgs['offset'], + 'limit' => empty($aArgs['limit']) ? 0 : $aArgs['limit'] ]); return $aReturn; diff --git a/src/core/controllers/CoreController.php b/src/core/controllers/CoreController.php index 0302bac10cd..19230481304 100644 --- a/src/core/controllers/CoreController.php +++ b/src/core/controllers/CoreController.php @@ -50,14 +50,11 @@ class CoreController foreach ($scriptsToInject as $value) { if ($i == 0 && strstr($value, 'scripts.') !== false) { $aInit['scriptsToinject'][] = $value; - } - if ($i == 1 && strstr($value, 'main.') !== false) { + } elseif ($i == 1 && strstr($value, 'main.') !== false) { $aInit['scriptsToinject'][] = $value; - } - if ($i == 2 && strstr($value, 'runtime.') !== false) { + } elseif ($i == 2 && strstr($value, 'runtime.') !== false) { $aInit['scriptsToinject'][] = $value; - } - if ($i == 3 && strstr($value, 'vendor.') !== false) { + } elseif ($i == 3 && strstr($value, 'vendor.') !== false) { $aInit['scriptsToinject'][] = $value; } } diff --git a/src/core/models/DatabaseModel.php b/src/core/models/DatabaseModel.php index afddc16981b..c2fc6433065 100755 --- a/src/core/models/DatabaseModel.php +++ b/src/core/models/DatabaseModel.php @@ -110,6 +110,13 @@ class DatabaseModel $orderBy = ' ORDER BY ' . implode(', ', $args['order_by']); } + if (empty($args['offset'])) { + $offset = ''; + } else { + ValidatorModel::intType($args, ['offset']); + $offset = " OFFSET {$args['offset']}"; + } + if (empty($args['limit'])) { $limit = ''; } else { @@ -131,7 +138,7 @@ class DatabaseModel $limit = $limitData['limit']; } - $query = "SELECT {$select} FROM {$args['table']}{$where}{$groupBy}{$orderBy}{$limit}"; + $query = "SELECT {$select} FROM {$args['table']}{$where}{$groupBy}{$orderBy}{$offset}{$limit}"; $stmt = $db->query($query, $args['data']); -- GitLab