From deca039c350656246b25984c17df3a6ef7998e77 Mon Sep 17 00:00:00 2001 From: chfhtw Date: Thu, 1 Oct 2026 11:38:24 +0200 Subject: [PATCH] Configurable Limit in search --- application/config/searchcis.php | 1 + application/config/searchstv.php | 1 + application/libraries/SearchLib.php | 10 ++++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/application/config/searchcis.php b/application/config/searchcis.php index 6d513c499..6b08fef07 100644 --- a/application/config/searchcis.php +++ b/application/config/searchcis.php @@ -5,6 +5,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); $CI =& get_instance(); +$config['LIMIT'] = 100; $config['employee'] = $CI->config->item('employee', 'search'); $config['employee']['resultjoin'] = " diff --git a/application/config/searchstv.php b/application/config/searchstv.php index d507f7250..a2735bee3 100644 --- a/application/config/searchstv.php +++ b/application/config/searchstv.php @@ -5,6 +5,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); $CI =& get_instance(); +#$config['LIMIT'] = 1000; $config['student'] = $CI->config->item('student', 'search'); $config['student']['searchfields']['pkz'] = [ diff --git a/application/libraries/SearchLib.php b/application/libraries/SearchLib.php index 24894eab5..c94560185 100644 --- a/application/libraries/SearchLib.php +++ b/application/libraries/SearchLib.php @@ -109,6 +109,9 @@ class SearchLib $types = $tmp; } + // LIMIT is never a type it's a reserved config + if(isset($types['LIMIT'])) + unset($types['LIMIT']); // Convert searchstring into array list($searchArray, $searchstring) = $this->_convertQuery($searchstring, $types); @@ -272,13 +275,16 @@ class SearchLib SELECT " . $this->_ci->db->escape(getAuthUID()) . " AS uid )"); + $limit = $this->_ci->config->item('LIMIT', 'search') ?: ""; + if ($limit) + $limit = " LIMIT " . $limit; + return success(" WITH " . $recursive . implode(", ", $with) . " SELECT * FROM (" . implode(" UNION ", $selects) . ") q ORDER BY rank DESC - LIMIT 100 - "); + " . $limit); } //------------------------------------------------------------------------------------------------------------------