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();
 }