MetaModels\Filter\Setting\SimpleLookup::prepareRules PHP Метод

prepareRules() публичный Метод

public prepareRules ( MetaModels\Filter\IFilter $objFilter, $arrFilterUrl )
$objFilter MetaModels\Filter\IFilter
    public function prepareRules(IFilter $objFilter, $arrFilterUrl)
    {
        $objMetaModel = $this->getMetaModel();
        $objAttribute = $this->getFilteredAttribute();
        $strParam = $this->getParamName();
        if ($objAttribute && $strParam) {
            $arrFilterValue = isset($arrFilterUrl[$strParam]) ? $arrFilterUrl[$strParam] : null;
            if (!$arrFilterValue && $this->get('defaultid')) {
                $arrFilterValue = $this->get('defaultid');
            }
            if ($arrFilterValue) {
                if ($objMetaModel->isTranslated() && $this->get('all_langs')) {
                    $arrLanguages = $objMetaModel->getAvailableLanguages();
                } else {
                    $arrLanguages = array($objMetaModel->getActiveLanguage());
                }
                $objFilterRule = new FilterRuleSimpleLookup($objAttribute, $arrFilterValue, $arrLanguages);
                $objFilter->addFilterRule($objFilterRule);
                return;
            }
            // We found an attribute but no match in URL. So ignore this filter setting if allow_empty is set.
            if ($this->allowEmpty()) {
                $objFilter->addFilterRule(new FilterRuleStaticIdList(null));
                return;
            }
        }
        // Either no attribute found or no match in url, do not return anything.
        $objFilter->addFilterRule(new FilterRuleStaticIdList(array()));
    }