protected function collectRequestParameters() { $this->filterVerticals = $this->model->getVerticals(); $this->verticalsShorts = $this->model->getVerticalsShorts(); $this->verticalsNamesMsgKeys = $this->model->generateVerticalsNamesMsgKeys($this->verticalsShorts); $this->searchPhrase = htmlspecialchars($this->getVal('searchPhrase', null)); $this->selectedVerticalId = intval($this->getVal('verticalId', null)); $this->selectedLangCode = $this->getVal('langCode', null); $this->selectedDate = $this->getVal('date', null); $this->selectedVerticalId = $this->selectedVerticalId !== '' ? $this->selectedVerticalId : null; $this->selectedLangCode = $this->selectedLangCode !== '' ? $this->selectedLangCode : null; $this->selectedDate = $this->selectedDate !== '' ? $this->selectedDate : null; $this->isSingleVertical = $this->selectedVerticalId != WikiFactoryHub::VERTICAL_ID_OTHER; $this->page = intval($this->getVal('page', $this->model->getFirstPage())); $verticalValidator = new WikiaValidatorSelect(array('allowed' => array_keys($this->filterVerticals))); if (!$verticalValidator->isValid($this->selectedVerticalId)) { $this->selectedVerticalId = null; } $filterMinMaxDates = $this->model->getMinMaxIndexDate(); $this->wg->Out->addJsConfigVars(['wamFilterMinMaxDates' => $filterMinMaxDates, 'wamFilterDateFormat' => $this->getJsDateFormat()]); if (!empty($this->selectedDate)) { $timestamp = $this->selectedDate; if (!empty($filterMinMaxDates['min_date'])) { $dateValidator = new WikiaValidatorCompare(['expression' => WikiaValidatorCompare::GREATER_THAN_EQUAL]); if (!$dateValidator->isValid([$timestamp, $filterMinMaxDates['min_date']])) { $this->selectedDate = null; } } if (!empty($filterMinMaxDates['max_date'])) { $dateValidator = new WikiaValidatorCompare(['expression' => WikiaValidatorCompare::LESS_THAN_EQUAL]); if (!$dateValidator->isValid([$timestamp, $filterMinMaxDates['max_date']])) { $this->selectedDate = null; } } } $this->filterLanguages = $this->model->getWAMLanguages($this->selectedDate); $langValidator = new WikiaValidatorSelect(array('allowed' => $this->filterLanguages)); if (!$langValidator->isValid($this->selectedLangCode)) { $this->selectedLangCode = null; } // combine all filter params to array $this->filterParams = array('searchPhrase' => $this->searchPhrase, 'verticalId' => $this->selectedVerticalId, 'langCode' => $this->selectedLangCode, 'date' => $this->selectedDate); }
protected function config(array $options = array()) { $this->setOption('value', true); $this->setOption('validator', false); return parent::config(); }