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