public function createParams() { $this->params = new SharpEntitiesListParams(); if ($this->currentSubListId) { $this->params->setCurrentSubListId($this->getCurrentSublistId()); } // Manage column sort: first determine which column is sorted list($sortCol, $sortDir) = $this->retrieveSorting(); foreach ($this->entity->list_template->columns as $colKey => $col) { if ($col->sortable && (!$sortCol || $colKey == $sortCol)) { $this->params->setSortedColumn($colKey); $this->params->setSortedDirection($sortDir); break; } } // Manage search $search = null; if ($this->entity->list_template->searchable && $this->request->has("search")) { $search = urldecode($this->request->get("search")); } // Manage advanced search if (!$search && $this->entity->advanced_search->data && $this->request->has("adv")) { $this->params->setAdvancedSearch(true); $search = []; foreach ($this->request->all() as $input => $value) { if (!starts_with($input, "adv_")) { continue; } if (is_array($value) && !sizeof($value) || !is_array($value) && !strlen(trim($value))) { continue; } if (is_array($value)) { foreach ($value as $v) { $search[substr($input, 4)][] = urldecode($v); } } else { $search[substr($input, 4)] = urldecode($value); } } } $this->params->setSearch($search); return $this->params; }