/** * Sets details locator data for articles that came from regular list. * * @param oxubase $oLocatorTarget view object * @param oxarticle $oCurrArticle current article * * @return null */ protected function _setListLocatorData($oLocatorTarget, $oCurrArticle) { // if no active category is loaded - lets check for category passed by post/get if ($oCategory = $oLocatorTarget->getActCategory()) { $sCatId = $oCategory->getId(); $sOrderBy = null; if ($oLocatorTarget->showSorting()) { $aSorting = $oLocatorTarget->getSorting($sCatId); // checking if we have defined sorting parameters in the sessions if (!$aSorting && $oCategory->oxcategories__oxdefsort->value) { // if no sorting parameters are set in the session and the category has default // sorting parameters, we use them instead $sSortBy = getViewName('oxarticles') . ".{$oCategory->oxcategories__oxdefsort->value}"; $sSortDir = $oCategory->oxcategories__oxdefsortmode->value ? "desc" : null; $oLocatorTarget->setItemSorting($sCatId, $sSortBy, $sSortDir); } $oLocatorTarget->prepareSortColumns(); $sOrderBy = $oLocatorTarget->getSortingSql($sCatId); } $oIdList = $this->_loadIdsInList($oCategory, $oCurrArticle, $sOrderBy); //page number $iPage = $this->_findActPageNumber($oLocatorTarget->getActPage(), $oIdList, $oCurrArticle); // setting product position in list, amount of articles etc $oCategory->iCntOfProd = $oIdList->count(); $oCategory->iProductPos = $this->_getProductPos($oCurrArticle, $oIdList, $oLocatorTarget); if (oxUtils::getInstance()->seoIsActive() && $iPage) { $oCategory->toListLink = oxSeoEncoderCategory::getInstance()->getCategoryPageUrl($oCategory, $iPage); } else { $oCategory->toListLink = $this->_makeLink($oCategory->getLink(), $this->_getPageNumber($iPage)); } $oCategory->nextProductLink = $this->_oNextProduct ? $this->_makeLink($this->_oNextProduct->getLink(), '') : null; $oCategory->prevProductLink = $this->_oBackProduct ? $this->_makeLink($this->_oBackProduct->getLink(), '') : null; // active category $oLocatorTarget->setActiveCategory($oCategory); // category path if ($oCatTree = $oLocatorTarget->getCategoryTree()) { $oLocatorTarget->setCatTreePath($oCatTree->getPath()); } } }