Go to the documentation of this file.00001 <?php
00002
00009 class VendorList extends aList
00010 {
00015 protected $_sListType = 'vendor';
00016
00021 protected $_blVisibleSubCats = null;
00022
00027 protected $_oSubCatList = null;
00028
00033 protected $_oRecommList = null;
00034
00040 protected $_sTplLocation = null;
00041
00047 protected $_sCatTitle = null;
00048
00053 protected $_oPageNavigation = null;
00054
00059 protected $_blShowSorting = true;
00060
00066 protected $_iViewIndexState = VIEW_INDEXSTATE_INDEX;
00067
00082 public function render()
00083 {
00084 oxUBase::render();
00085
00086 $myConfig = $this->getConfig();
00087
00088
00089 if ( ( $oVendorTree = $this->getVendorTree() ) ) {
00090 if ( ( $oVendor = $this->getActVendor() ) ) {
00091 if ( $oVendor->getId() != 'root' ) {
00092
00093 $iNrofCatArticles = (int) $this->getConfig()->getConfigParam( 'iNrofCatArticles' );
00094 $iNrofCatArticles = $iNrofCatArticles ? $iNrofCatArticles : 1;
00095
00096
00097 $this->getArticleList();
00098 $this->_iCntPages = round( $this->_iAllArtCnt / $iNrofCatArticles + 0.49 );
00099
00100 }
00101 }
00102 }
00103 $this->_aViewData['hasVisibleSubCats'] = $this->hasVisibleSubCats();
00104 $this->_aViewData['subcatlist'] = $this->getSubCatList();
00105 $this->_aViewData['articlelist'] = $this->getArticleList();
00106 $this->_aViewData['similarrecommlist'] = $this->getSimilarRecommLists();
00107
00108 $this->_aViewData['title'] = $this->getTitle();
00109 $this->_aViewData['template_location'] = $this->getTemplateLocation();
00110 $this->_aViewData['actCategory'] = $this->getActiveCategory();
00111 $this->_aViewData['actCatpath'] = $this->getCatTreePath();
00112
00113 $this->_aViewData['pageNavigation'] = $this->getPageNavigation();
00114
00115
00116 $this->_processListArticles();
00117
00118 return $this->_sThisTemplate;
00119 }
00120
00126 protected function _getProductLinkType()
00127 {
00128 return OXARTICLE_LINKTYPE_VENDOR;
00129 }
00130
00140 public function setItemSorting( $sCnid, $sSortBy, $sSortDir = null )
00141 {
00142 parent::setItemSorting( str_replace( 'v_', '', $sCnid ).':vendor', $sSortBy, $sSortDir );
00143 }
00144
00152 public function getSorting( $sCnid )
00153 {
00154 return parent::getSorting( str_replace( 'v_', '', $sCnid ).':vendor' );
00155 }
00156
00164 protected function _loadArticles( $oVendor )
00165 {
00166 $sVendorId = $oVendor->getId();
00167
00168
00169 $iNrofCatArticles = (int) $this->getConfig()->getConfigParam( 'iNrofCatArticles' );
00170 $iNrofCatArticles = $iNrofCatArticles?$iNrofCatArticles:1;
00171
00172 $oArtList = oxNew( 'oxarticlelist' );
00173 $oArtList->setSqlLimit( $iNrofCatArticles * $this->getActPage(), $iNrofCatArticles );
00174 $oArtList->setCustomSorting( $this->getSortingSql( $sVendorId ) );
00175
00176
00177 $iArtCnt = $oArtList->loadVendorArticles( $sVendorId, $oVendor );
00178
00179 return array( $oArtList, $iArtCnt );
00180 }
00181
00187 protected function _getSeoObjectId()
00188 {
00189 if ( ( $oVendor = $this->getActVendor() ) ) {
00190 return $oVendor->getId();
00191 }
00192 }
00193
00204 protected function _addPageNrParam( $sUrl, $iPage, $iLang = null)
00205 {
00206 if ( oxUtils::getInstance()->seoIsActive() && ( $oVendor = $this->getActVendor() ) ) {
00207 if ( $iPage ) {
00208
00209 $sUrl = oxSeoEncoderVendor::getInstance()->getVendorPageUrl( $oVendor, $iPage, $iLang );
00210 }
00211 } else {
00212 $sUrl = oxUBase::_addPageNrParam( $sUrl, $iPage, $iLang );
00213 }
00214 return $sUrl;
00215 }
00216
00222 public function generatePageNavigationUrl( )
00223 {
00224 if ( ( oxUtils::getInstance()->seoIsActive() && ( $oVendor = $this->getActVendor() ) ) ) {
00225 return $oVendor->getLink();
00226 } else {
00227 return parent::generatePageNavigationUrl( );
00228 }
00229 }
00230
00236 public function hasVisibleSubCats()
00237 {
00238 if ( $this->_blVisibleSubCats === null ) {
00239 $this->_blVisibleSubCats = false;
00240 if ( ( $oVendorTree = $this->getVendorTree() ) ) {
00241 if ( ( $oVendor = $this->getActVendor() ) ) {
00242 if ( $oVendor->getId() == 'root' ) {
00243 $this->_blVisibleSubCats = $oVendorTree->count();
00244 $this->_oSubCatList = $oVendorTree;
00245 }
00246 }
00247 }
00248 }
00249 return $this->_blVisibleSubCats;
00250 }
00251
00257 public function getSubCatList()
00258 {
00259 if ( $this->_oSubCatList === null ) {
00260 $this->_oSubCatList = array();
00261 if ( $this->hasVisibleSubCats() ) {
00262 return $this->_oSubCatList;
00263 }
00264 }
00265 return $this->_oSubCatList;
00266 }
00267
00273 public function getArticleList()
00274 {
00275 if ( $this->_aArticleList === null ) {
00276 $this->_aArticleList = array();
00277 if ( ( $oVendorTree = $this->getVendorTree() ) ) {
00278 if ( ( $oVendor = $this->getActVendor() ) && ( $oVendor->getId() != 'root' ) ) {
00279 list( $aArticleList, $this->_iAllArtCnt ) = $this->_loadArticles( $oVendor );
00280 if ( $this->_iAllArtCnt ) {
00281 $this->_aArticleList = $aArticleList;
00282 }
00283 }
00284 }
00285 }
00286 return $this->_aArticleList;
00287 }
00288
00294 public function getTitle()
00295 {
00296 if ( $this->_sCatTitle === null ) {
00297 $this->_sCatTitle = '';
00298 if ( $oVendorTree = $this->getVendorTree() ) {
00299 if ( $oVendor = $this->getActVendor() ) {
00300 $this->_sCatTitle = $oVendor->oxvendor__oxtitle->value;
00301 }
00302 }
00303 }
00304 return $this->_sCatTitle;
00305 }
00306
00314 public function getTemplateLocation()
00315 {
00316 if ( $this->_sTplLocation === null ) {
00317 $this->_sTplLocation = false;
00318 if ( ( $oVendorTree = $this->getVendorTree() ) ) {
00319 $this->_sTplLocation = $oVendorTree->getHtmlPath();
00320 }
00321 }
00322 return $this->_sTplLocation;
00323 }
00324
00330 public function getTreePath()
00331 {
00332 if ( $oVendorTree = $this->getVendorTree() ) {
00333 return $oVendorTree->getPath();
00334 }
00335 }
00336
00342 public function getActiveCategory()
00343 {
00344 if ( $this->_oActCategory === null ) {
00345 $this->_oActCategory = false;
00346 if ( ( $oVendorTree = $this->getVendorTree() ) ) {
00347 if ( $oVendor = $this->getActVendor() ) {
00348 $this->_oActCategory = $oVendor;
00349 }
00350 }
00351 }
00352 return $this->_oActCategory;
00353 }
00354
00360 public function getCatTreePath()
00361 {
00362 if ( $this->_sCatTreePath === null ) {
00363 $this->_sCatTreePath = false;
00364 if ( ( $oVendorTree = $this->getVendorTree() ) ) {
00365 $this->_sCatTreePath = $oVendorTree->getPath();
00366 }
00367 }
00368 return $this->_sCatTreePath;
00369 }
00370
00376 public function getTitleSuffix()
00377 {
00378 if ( $this->getActVendor()->oxvendor__oxshowsuffix->value ) {
00379 return $this->getConfig()->getActiveShop()->oxshops__oxtitlesuffix->value;
00380 }
00381 }
00382
00392 protected function _prepareMetaKeyword( $sKeywords, $blRemoveDuplicatedWords = true )
00393 {
00394 return parent::_collectMetaKeyword( $sKeywords );
00395 }
00396
00407 protected function _prepareMetaDescription( $sMeta, $iLength = 1024, $blDescTag = false )
00408 {
00409 return parent::_collectMetaDescription( $sMeta, $iLength, $blDescTag );
00410 }
00411
00420 protected function _getSubject( $iLang )
00421 {
00422 return $this->getActVendor();
00423 }
00424
00430 public function getAddUrlParams()
00431 {
00432 $sAddParams = parent::getAddUrlParams();
00433 $sAddParams .= ($sAddParams?'&':'') . "listtype={$this->_sListType}";
00434 if ( $oVendor = $this->getActVendor() ) {
00435 $sAddParams .= "&cnid=v_" . $oVendor->getId();
00436 }
00437 return $sAddParams;
00438 }
00439 }