mirror of
https://github.com/processwire/processwire.git
synced 2025-08-12 17:54:44 +02:00
Add a session cache for column options, optimization in ProcessPageLister
This commit is contained in:
@@ -630,9 +630,14 @@ class ProcessPageLister extends Process implements ConfigurableModule {
|
|||||||
$value = $input->post('columns');
|
$value = $input->post('columns');
|
||||||
if($value !== null && $value !== 'ignore' && !in_array('disableColumns', $this->toggles)) {
|
if($value !== null && $value !== 'ignore' && !in_array('disableColumns', $this->toggles)) {
|
||||||
$columns = array();
|
$columns = array();
|
||||||
|
$columnOptions = $this->sessionGet('columnOptions');
|
||||||
|
if(empty($columnOptions)) {
|
||||||
|
$columnOptions = $this->buildColumnsField()->getOptions();
|
||||||
|
$this->sessionSet('columnOptions', $columnOptions);
|
||||||
|
}
|
||||||
foreach($sanitizer->array($value) as $name) {
|
foreach($sanitizer->array($value) as $name) {
|
||||||
$name = $sanitizer->name($name);
|
$name = $sanitizer->name($name);
|
||||||
if(strlen($name)) $columns[] = $name;
|
if(strlen($name) && isset($columnOptions[$name])) $columns[] = $name;
|
||||||
}
|
}
|
||||||
if(count($columns)) {
|
if(count($columns)) {
|
||||||
$this->sessionSet('columns', $columns);
|
$this->sessionSet('columns', $columns);
|
||||||
|
Reference in New Issue
Block a user