/** * Adds additional parameters: active category, list type and category id * * @param oxArticle $oProduct loaded product * @param string $sActCat active category id * @param string $sActManufacturer active manufacturer id * @param string $sActTag active tag * @param string $sActVendor active vendor * * @return string $sActCat */ protected function _addAdditionalParams($oProduct, $sActCat, $sActManufacturer, $sActTag, $sActVendor) { $sSearchPar = oxRegistry::getConfig()->getRequestParameter('searchparam'); $sSearchCat = oxRegistry::getConfig()->getRequestParameter('searchcnid'); $sSearchVnd = oxRegistry::getConfig()->getRequestParameter('searchvendor'); $sSearchMan = oxRegistry::getConfig()->getRequestParameter('searchmanufacturer'); $sListType = oxRegistry::getConfig()->getRequestParameter('listtype'); // search ? if ((!$sListType || $sListType == 'search') && ($sSearchPar || $sSearchCat || $sSearchVnd || $sSearchMan)) { // setting list type directly $sListType = 'search'; } else { // such Manufacturer is available ? if ($sActManufacturer && $sActManufacturer == $oProduct->getManufacturerId()) { // setting list type directly $sListType = 'manufacturer'; $sActCat = $sActManufacturer; } elseif ($sActVendor && substr($sActVendor, 2) == $oProduct->getVendorId()) { // such vendor is available ? $sListType = 'vendor'; $sActCat = $sActVendor; } elseif ($sActTag) { // tag ? $sListType = 'tag'; } elseif ($sActCat && $oProduct->isAssignedToCategory($sActCat)) { // category ? } else { list($sListType, $sActCat) = $this->_getDefaultParams($oProduct); } } $oParentView = $this->getParent(); //set list type and category id $oParentView->setListType($sListType); $oParentView->setCategoryId($sActCat); return $sActCat; }