From c3d790c5600925680ef978c06ffc1b1e6d7745d5 Mon Sep 17 00:00:00 2001 From: duakayra Date: Tue, 11 Aug 2026 09:42:17 +0200 Subject: [PATCH 1/2] allow custom qbpager page parameter --- lib/org/openpsa/qbpager/main.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/org/openpsa/qbpager/main.php b/lib/org/openpsa/qbpager/main.php index 10dd4ba65..87f3c5ef9 100644 --- a/lib/org/openpsa/qbpager/main.php +++ b/lib/org/openpsa/qbpager/main.php @@ -21,13 +21,13 @@ class org_openpsa_qbpager extends midcom_core_querybuilder private int $_current_page = 1; private $total; - public function __construct(string $classname, string $pager_id) + public function __construct(string $classname, string $pager_id, ?string $prefix = null) { - $this->initialize($pager_id); + $this->initialize($pager_id, $prefix); parent::__construct($classname); } - protected function initialize(string $pager_id) + protected function initialize(string $pager_id, ?string $prefix = null) { $this->_component = 'org.openpsa.qbpager'; if (empty($pager_id)) { @@ -35,7 +35,7 @@ protected function initialize(string $pager_id) } $this->_pager_id = $pager_id; - $this->_prefix = 'org_openpsa_qbpager_' . $pager_id . '_'; + $this->_prefix = $prefix ?? 'org_openpsa_qbpager_' . $pager_id . '_page'; } /** @@ -74,7 +74,7 @@ public function show_previousnext() } //@todo Move to style element //TODO: "showing results (offset)-(offset+limit) - $page_var = $this->_prefix . 'page'; + $page_var = $this->_prefix; echo '
'; if ($this->_current_page > 1) { @@ -99,7 +99,7 @@ public function get_pages() : array return $pages; } - $page_var = $this->_prefix . 'page'; + $page_var = $this->_prefix; $display_start = max(($this->_current_page - ceil($this->display_pages / 2)), 1); $display_end = min(($this->_current_page + ceil($this->display_pages / 2)), $page_count); @@ -181,12 +181,12 @@ public function show_pages() */ protected function parse_variables() { - $page_var = $this->_prefix . 'page'; + $page_var = $this->_prefix; if (!empty($_REQUEST[$page_var])) { debug_add("{$page_var} has value: {$_REQUEST[$page_var]}"); $this->_current_page = max(1, (int) $_REQUEST[$page_var]); } - $results_var = $this->_prefix . 'results'; + $results_var = 'org_openpsa_qbpager_' . $this->_pager_id . '_results'; if (!empty($_REQUEST[$results_var])) { debug_add("{$results_var} has value: {$_REQUEST[$results_var]}"); $this->results_per_page = max(1, (int) $_REQUEST[$results_var]); From 29fa0b6b588bac0dd464a9801a617290daf811e8 Mon Sep 17 00:00:00 2001 From: duakayra Date: Tue, 11 Aug 2026 12:56:17 +0200 Subject: [PATCH 2/2] simplify qbpager page parameter handling --- lib/org/openpsa/qbpager/direct.php | 4 ++-- lib/org/openpsa/qbpager/main.php | 24 +++++++++++------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/lib/org/openpsa/qbpager/direct.php b/lib/org/openpsa/qbpager/direct.php index 58df22ef4..c259cdd48 100644 --- a/lib/org/openpsa/qbpager/direct.php +++ b/lib/org/openpsa/qbpager/direct.php @@ -9,9 +9,9 @@ */ class org_openpsa_qbpager_direct extends org_openpsa_qbpager { - public function __construct(string $classname, string $pager_id) + public function __construct(string $classname, string $page_parameter) { - $this->initialize($pager_id); + $this->initialize($page_parameter); $this->_query = new midgard_query_builder($classname); } diff --git a/lib/org/openpsa/qbpager/main.php b/lib/org/openpsa/qbpager/main.php index 87f3c5ef9..2d08c8891 100644 --- a/lib/org/openpsa/qbpager/main.php +++ b/lib/org/openpsa/qbpager/main.php @@ -16,26 +16,24 @@ class org_openpsa_qbpager extends midcom_core_querybuilder public int $display_pages = 10; public string $string_next = 'next'; public string $string_previous = 'previous'; - protected string $_pager_id; - protected string $_prefix = ''; + protected string $_page_parameter; private int $_current_page = 1; private $total; - public function __construct(string $classname, string $pager_id, ?string $prefix = null) + public function __construct(string $classname, string $page_parameter) { - $this->initialize($pager_id, $prefix); + $this->initialize($page_parameter); parent::__construct($classname); } - protected function initialize(string $pager_id, ?string $prefix = null) + protected function initialize(string $page_parameter) : void { $this->_component = 'org.openpsa.qbpager'; - if (empty($pager_id)) { - throw new midcom_error('pager_id is not set (needed for distinguishing different instances on same request)'); + if (empty($page_parameter)) { + throw new midcom_error('page parameter is not set (needed for distinguishing different instances on same request)'); } - $this->_pager_id = $pager_id; - $this->_prefix = $prefix ?? 'org_openpsa_qbpager_' . $pager_id . '_page'; + $this->_page_parameter = $page_parameter; } /** @@ -74,7 +72,7 @@ public function show_previousnext() } //@todo Move to style element //TODO: "showing results (offset)-(offset+limit) - $page_var = $this->_prefix; + $page_var = $this->_page_parameter; echo '
'; if ($this->_current_page > 1) { @@ -99,7 +97,7 @@ public function get_pages() : array return $pages; } - $page_var = $this->_prefix; + $page_var = $this->_page_parameter; $display_start = max(($this->_current_page - ceil($this->display_pages / 2)), 1); $display_end = min(($this->_current_page + ceil($this->display_pages / 2)), $page_count); @@ -181,12 +179,12 @@ public function show_pages() */ protected function parse_variables() { - $page_var = $this->_prefix; + $page_var = $this->_page_parameter; if (!empty($_REQUEST[$page_var])) { debug_add("{$page_var} has value: {$_REQUEST[$page_var]}"); $this->_current_page = max(1, (int) $_REQUEST[$page_var]); } - $results_var = 'org_openpsa_qbpager_' . $this->_pager_id . '_results'; + $results_var = $this->_page_parameter . '_results'; if (!empty($_REQUEST[$results_var])) { debug_add("{$results_var} has value: {$_REQUEST[$results_var]}"); $this->results_per_page = max(1, (int) $_REQUEST[$results_var]);