/** * Sets details locator data for articles that came from Manufacturer list. * * @param oxubase $oLocatorTarget oxubase object * @param oxarticle $oCurrArticle current article */ protected function _setManufacturerLocatorData($oLocatorTarget, $oCurrArticle) { if ($oManufacturer = $oLocatorTarget->getActManufacturer()) { $sManufacturerId = $oManufacturer->getId(); $myUtils = oxRegistry::getUtils(); $blSeo = $myUtils->seoIsActive(); // loading data for article navigation $oIdList = oxNew("oxArticleList"); if ($oLocatorTarget->showSorting()) { $oIdList->setCustomSorting($oLocatorTarget->getSortingSql($oLocatorTarget->getSortIdent())); } $oIdList->loadManufacturerIds($sManufacturerId); //page number $iPage = $this->_findActPageNumber($oLocatorTarget->getActPage(), $oIdList, $oCurrArticle); $sAdd = null; if (!$blSeo) { $sAdd = 'listtype=manufacturer&mnid=' . $sManufacturerId; } // setting product position in list, amount of articles etc $oManufacturer->iCntOfProd = $oIdList->count(); $oManufacturer->iProductPos = $this->_getProductPos($oCurrArticle, $oIdList, $oLocatorTarget); if ($blSeo && $iPage) { /** @var oxSeoEncoderManufacturer $oSeoEncoderManufacturer */ $oSeoEncoderManufacturer = oxRegistry::get("oxSeoEncoderManufacturer"); $oManufacturer->toListLink = $oSeoEncoderManufacturer->getManufacturerPageUrl($oManufacturer, $iPage); } else { $oManufacturer->toListLink = $this->_makeLink($oManufacturer->getLink(), $this->_getPageNumber($iPage)); } $oNextProduct = $this->_oNextProduct; $oBackProduct = $this->_oBackProduct; $oManufacturer->nextProductLink = $oNextProduct ? $this->_makeLink($oNextProduct->getLink(), $sAdd) : null; $oManufacturer->prevProductLink = $oBackProduct ? $this->_makeLink($oBackProduct->getLink(), $sAdd) : null; // active Manufacturer $oLocatorTarget->setActiveCategory($oManufacturer); // Manufacturer path if ($oManufacturerTree = $oLocatorTarget->getManufacturerTree()) { $oLocatorTarget->setCatTreePath($oManufacturerTree->getPath()); } } }