details.php

Go to the documentation of this file.
00001 <?php
00002 
00009 class Details extends oxUBase
00010 {
00016     protected $_aVariantList = null;
00017 
00023     protected $_sThisTemplate = 'details.tpl';
00024 
00030     protected $_oParent = null;
00031 
00037     protected $_blCanRate = null;
00038 
00043     protected $_blShowSorting = true;
00044 
00049     protected $_blEditTags = null;
00050 
00055     protected $_aTags = null;
00056 
00061     protected $_sTagCloud = null;
00062 
00067     protected $_aUserRecommList = null;
00068 
00073     protected $_sLoginFormAnchor = null;
00074 
00079     protected $_oCaptcha = null;
00080 
00085     protected $_aMediaFiles = null;
00086 
00091     protected $_aLastProducts = null;
00092 
00097     protected $_oVendor = null;
00098 
00103     protected $_oManufacturer = null;
00104 
00109     protected $_oCategory = null;
00110 
00115     protected $_aAttributes = null;
00116 
00121     protected $_sParentName = null;
00122 
00127     protected $_sParentUrl = null;
00128 
00133     protected $_aPicGallery = null;
00134 
00139     protected $_aSelectLists = null;
00140 
00145     protected $_aReviews = null;
00146 
00151     protected $_oCrossSelling = null;
00152 
00157     protected $_oSimilarProducts = null;
00158 
00163     protected $_oRecommList = null;
00164 
00169     protected $_oAccessoires = null;
00170 
00175     protected $_aAlsoBoughtArts = null;
00176 
00181     protected $_sSearchTitle = null;
00182 
00188     protected $_blIsInitialized = false;
00189 
00197     protected function _getParentProduct( $sParentId )
00198     {
00199         if ( $sParentId && $this->_oParent === null ) {
00200             $this->_oParent = false;
00201             if ( ( $oParent = oxNewArticle( $sParentId ) ) ) {
00202                 $this->_oParent = $oParent;
00203             }
00204         }
00205         return $this->_oParent;
00206     }
00207 
00214     public function loadVariantInformation()
00215     {
00216         if ( $this->_aVariantList === null ) {
00217             $oProduct = $this->getProduct();
00218 
00219             //loading full list of variants
00220             $this->_aVariantList = $oProduct->getVariants( false );
00221 
00222             //if we are child and do not have any variants then please load all parent variants as ours
00223             if ( ( $oParent = $this->_getParentProduct( $oProduct->oxarticles__oxparentid->value ) ) && count( $this->_aVariantList ) == 0 ) {
00224                 $myConfig = $this->getConfig();
00225 
00226                 $this->_aVariantList = $oParent->getVariants( false );
00227 
00228                 //in variant list parent may be NOT buyable
00229                 if ( $oParent->blNotBuyableParent ) {
00230                     $oParent->blNotBuyable = true;
00231                 }
00232 
00233                 //lets additionally add parent article if it is sellable
00234                 if ( $myConfig->getConfigParam( 'blVariantParentBuyable' ) ) {
00235                     //#1104S if parent is buyable load selectlists too
00236                     $oParent->aSelectlist = $oParent->getSelectLists();
00237                     $this->_aVariantList = array_merge( array( $oParent ), $this->_aVariantList->getArray() );
00238                 }
00239 
00240                 //..and skip myself from the list
00241                 if ( isset( $this->_aVariantList[$oProduct->getId()] ) ) {
00242                     unset( $this->_aVariantList[$oProduct->getId()] );
00243                 }
00244             }
00245 
00246             // setting link type for variants ..
00247             foreach ( $this->_aVariantList as $oVariant ) {
00248                 $this->_setLinkType( $oVariant );
00249             }
00250 
00251         }
00252         return $this->_aVariantList;
00253     }
00254 
00260     public function getViewId()
00261     {
00262         if ( isset( $this->_sViewId )) {
00263             return $this->_sViewId;
00264         }
00265 
00266             $_sViewId = parent::getViewId().'|'.oxConfig::getParameter( 'anid' ).'|'.count( $this->getVariantList() ).'|';
00267 
00268 
00269         return $this->_sViewId = $_sViewId;
00270     }
00271 
00272 
00279     public function init()
00280     {
00281         parent::init();
00282 
00283         $oProduct = $this->getProduct();
00284 
00285         // assign template name
00286         if ( $oProduct->oxarticles__oxtemplate->value ) {
00287             $this->_sThisTemplate = $oProduct->oxarticles__oxtemplate->value;
00288         }
00289 
00290         if ( ( $sTplName = oxConfig::getParameter( 'tpl' ) ) ) {
00291             $this->_sThisTemplate = basename ( $sTplName );
00292         }
00293     }
00294 
00314     public function render()
00315     {
00316         $myConfig = $this->getConfig();
00317 
00318         $oProduct = $this->getProduct();
00319 
00320         //loading amount price list
00321         $oProduct->loadAmountPriceInfo();
00322 
00323         // Passing to view. Left for compatibility reasons for a while. Will be removed in future
00324         $this->_aViewData['product'] = $oProduct;
00325 
00326         $this->_aViewData["aTags"]      = $this->getTags();
00327         $this->_aViewData["blEditTags"] = $this->getEditTags();
00328         startProfile("tagCloud");
00329         $this->_aViewData['tagCloud']   = $this->getTagCloud();
00330         stopProfile("tagCloud");
00331 
00332         $this->_aViewData['loginformanchor'] = $this->getLoginFormAnchor();
00333 
00334         $this->_aViewData['ispricealarm'] = $this->isPriceAlarm();
00335 
00336         $this->_aViewData['customerwho']    = $this->getAlsoBoughtThiesProducts();
00337         $this->_aViewData['accessoirelist'] = $this->getAccessoires();
00338         $this->_aViewData['similarlist']    = $this->getSimilarProducts();
00339         $this->_aViewData['crossselllist']  = $this->getCrossSelling();
00340 
00341         $this->_aViewData['variants'] = $this->getVariantList();
00342 
00343         $this->_aViewData['reviews'] = $this->getReviews();
00344 
00345         $this->_aViewData['selectlist'] = $this->getSelectLists();
00346 
00347         $this->_aViewData["actpicid"]  = $this->getActPictureId();
00348         $this->_aViewData["actpic"]    = $this->getActPicture();
00349         $this->_aViewData['blMorePic'] = $this->morePics();
00350         $this->_aViewData['ArtPics']   = $this->getPictures();
00351         $this->_aViewData['ArtIcons']  = $this->getIcons();
00352         $this->_aViewData['blZoomPic'] = $this->showZoomPics();
00353         $this->_aViewData['aZoomPics'] = $this->getZoomPics();
00354         $this->_aViewData['iZoomPic']  = $this->getActZoomPic();
00355 
00356         $this->_aViewData['parentname']      = $this->getParentName();
00357         $this->_aViewData['parent_url']      = $this->getParentUrl();
00358         $this->_aViewData['draw_parent_url'] = $this->drawParentUrl();
00359 
00360         $this->_aViewData['pgNr'] = $this->getActPage();
00361 
00362         parent::render();
00363 
00364         $this->_aViewData['allartattr'] = $this->getAttributes();
00365 
00366         // #1102C
00367         $this->_aViewData['oCategory'] = $this->getCategory();
00368 
00369         $this->_aViewData['oVendor'] = $this->getVendor();
00370 
00371         $this->_aViewData['oManufacturer'] = $this->getManufacturer();
00372 
00373         $this->_aViewData['aLastProducts'] = $this->getLastProducts();
00374 
00375         // #785A loads and sets locator data
00376         $oLocator = oxNew( 'oxlocator', $this->getListType() );
00377         $oLocator->setLocatorData( $oProduct, $this );
00378 
00379         //media files
00380         $this->_aViewData['aMediaUrls'] = $this->getMediaFiles();
00381 
00382         if (in_array('oxrss_recommlists', $myConfig->getConfigParam( 'aRssSelected' )) && $this->getSimilarRecommLists()) {
00383             $oRss = oxNew('oxrssfeed');
00384             $this->addRssFeed($oRss->getRecommListsTitle( $oProduct ), $oRss->getRecommListsUrl( $oProduct ), 'recommlists');
00385         }
00386 
00387 
00388         //antispam
00389         $this->_aViewData['oCaptcha']     = $this->getCaptcha();
00390         $this->_aViewData['sSearchTitle'] = $this->getSearchTitle();
00391         $this->_aViewData['actCatpath']   = $this->getCatTreePath();
00392 
00393         return $this->_sThisTemplate;
00394     }
00395 
00407     protected function _prepareMetaDescription( $sMeta, $iLength = 200, $blDescTag = true )
00408     {
00409         if ( !$sMeta ) {
00410             $oProduct = $this->getProduct();
00411 
00412             $sMeta = getStr()->strtolower( $oProduct->getArticleLongDesc()->value );
00413             $sMeta = str_replace( array( '<br>', '<br />', '<br/>' ), "\n", $sMeta );
00414             $sMeta = $oProduct->oxarticles__oxtitle->value.' - '.$sMeta;
00415             $sMeta = strip_tags( $sMeta );
00416         }
00417         return parent::_prepareMetaDescription( $sMeta, $iLength, $blDescTag );
00418     }
00419 
00429     protected function _prepareMetaKeyword( $sKeywords )
00430     {
00431         if ( !$sKeywords ) {
00432             $oProduct = $this->getProduct();
00433 
00434             $sKeywords = getStr()->strtolower( $oProduct->getArticleLongDesc()->value );
00435             $sKeywords = str_replace( array( '<br>', '<br />', '<br/>' ), "\n", $sKeywords );
00436             if ( trim( $oProduct->oxarticles__oxsearchkeys->value ) ) {
00437                 $sKeywords = $oProduct->oxarticles__oxsearchkeys->value.' '.$sKeywords;
00438             }
00439             $sKeywords = strip_tags( $sKeywords );
00440         }
00441         return parent::_prepareMetaKeyword( $sKeywords );
00442     }
00443 
00449     public function canRate()
00450     {
00451         if ( $this->_blCanRate === null ) {
00452 
00453             $this->_blCanRate = false;
00454             $myConfig = $this->getConfig();
00455 
00456             if ( $myConfig->getConfigParam( 'bl_perfLoadReviews' ) &&
00457                  $oUser = $this->getUser() ) {
00458 
00459                 $oRating = oxNew( 'oxrating' );
00460                 $this->_blCanRate = $oRating->allowRating( $oUser->getId(), 'oxarticle', $this->getProduct()->getId() );
00461             }
00462         }
00463         return $this->_blCanRate;
00464     }
00465 
00471     public function saveReview()
00472     {
00473         $sReviewText = trim( ( string ) oxConfig::getParameter( 'rvw_txt' , true ) );
00474         $dRating     = oxConfig::getParameter( 'artrating' );
00475         if ($dRating < 0 || $dRating > 5) {
00476             $dRating = null;
00477         }
00478 
00479         $sArtId  = oxConfig::getParameter( 'anid' );
00480         $sUserId = oxSession::getVar( 'usr' );
00481 
00482         //save rating
00483         if ( $dRating ) {
00484             $oProduct = $this->getProduct();
00485 
00486             $oRating = oxNew( 'oxrating' );
00487             $blRate = $oRating->allowRating( $sUserId, 'oxarticle', $oProduct->getId());
00488             if ( $blRate) {
00489                 $oRating->oxratings__oxuserid = new oxField($sUserId);
00490                 $oRating->oxratings__oxtype   = new oxField('oxarticle', oxField::T_RAW);
00491                 $oRating->oxratings__oxobjectid = new oxField($sArtId);
00492                 $oRating->oxratings__oxrating = new oxField($dRating);
00493                 $oRating->save();
00494                 $oProduct->addToRatingAverage( $dRating);
00495             } else {
00496                 $dRating = null;
00497             }
00498         }
00499 
00500         if ( $sReviewText ) {
00501             $oReview = oxNew( 'oxreview' );
00502             $oReview->oxreviews__oxobjectid = new oxField($sArtId);
00503             $oReview->oxreviews__oxtype = new oxField('oxarticle', oxField::T_RAW);
00504             $oReview->oxreviews__oxtext = new oxField($sReviewText, oxField::T_RAW);
00505             $oReview->oxreviews__oxlang = new oxField(oxLang::getInstance()->getBaseLanguage());
00506             $oReview->oxreviews__oxuserid = new oxField($sUserId);
00507             $oReview->oxreviews__oxrating = new oxField(( $dRating) ? $dRating : null);
00508             $oReview->save();
00509         }
00510     }
00511 
00517     public function showLogin()
00518     {
00519         $this->_sThisTemplate = 'account_login.tpl';
00520 
00521         $sAnchor = $this->getConfig()->getParameter("anchor");
00522         if ($sAnchor)
00523             $this->_sLoginFormAnchor = $sAnchor;
00524     }
00525 
00531     public function addToRecomm()
00532     {
00533         $sRecommText = trim( ( string ) oxConfig::getParameter( 'recomm_txt' ) );
00534         $sRecommList = oxConfig::getParameter( 'recomm' );
00535         $sArtId      = oxConfig::getParameter( 'anid' );
00536 
00537         if ( $sArtId ) {
00538             $oRecomm = oxNew( 'oxrecommlist' );
00539             $oRecomm->load( $sRecommList);
00540             $oRecomm->addArticle( $sArtId, $sRecommText );
00541         }
00542     }
00543 
00549     public function addTags()
00550     {
00551         $sTag  = $this->getConfig()->getParameter('newTags', true );
00552         $sTag .= " ".getStr()->html_entity_decode( $this->getConfig()->getParameter( 'highTags', true ) );
00553 
00554         $oProduct = $this->getProduct();
00555         $oProduct->addTag( $sTag );
00556 
00557         //refresh
00558         $oTagHandler = oxNew( 'oxTagCloud' );
00559         $this->_sTagCloud = $oTagHandler->getTagCloud( $oProduct->getId() );
00560     }
00561 
00562     public function editTags()
00563     {
00564         $oTagCloud = oxNew("oxTagCloud");
00565         $this->_aTags = $oTagCloud->getTags( $this->getProduct()->getId() );
00566         $this->_blEditTags = true;
00567     }
00568 
00574     protected function _getSeoObjectId()
00575     {
00576         if ( $oProduct = $this->getProduct() ) {
00577             return $oProduct->getId();
00578         }
00579     }
00580 
00586     public function getAttributes()
00587     {
00588         if ( $this->_aAttributes === null ) {
00589             // all attributes this article has
00590             $aArtAttributes = $this->getProduct()->getAttributes();
00591 
00592             //making a new array for backward compatibility
00593             $this->_aAttributes = array();
00594             if ( count( $aArtAttributes ) ) {
00595                 foreach ( $aArtAttributes as $sKey => $oAttribute ) {
00596                     $this->_aAttributes[$sKey] = new stdClass();
00597                     $this->_aAttributes[$sKey]->title = $oAttribute->oxattribute__oxtitle->value;
00598                     $this->_aAttributes[$sKey]->value = $oAttribute->oxattribute__oxvalue->value;
00599                 }
00600             }
00601         }
00602 
00603         return $this->_aAttributes;
00604     }
00605 
00606 
00612     public function getEditTags()
00613     {
00614         return $this->_blEditTags;
00615     }
00616 
00622     public function getTags()
00623     {
00624         return $this->_aTags;
00625     }
00626 
00632     public function getTagCloud()
00633     {
00634         if ( $this->_sTagCloud === null ) {
00635             $this->_sTagCloud = false;
00636             $oTagHandler = oxNew('oxTagCloud');
00637             $this->_sTagCloud = $oTagHandler->getTagCloud($this->getProduct()->getId());
00638         }
00639         return $this->_sTagCloud;
00640     }
00641 
00642 
00648     public function getLoginFormAnchor()
00649     {
00650         return $this->_sLoginFormAnchor;
00651     }
00652 
00658     public function getProduct()
00659     {
00660         $myConfig = $this->getConfig();
00661         $myUtils  = oxUtils::getInstance();
00662 
00663         if ( $this->_oProduct === null ) {
00664 
00665             //this option is only for lists and we must reset value
00666             //as blLoadVariants = false affect "ab price" functionality
00667             $myConfig->setConfigParam( 'blLoadVariants', true );
00668 
00669             $sOxid = oxConfig::getParameter( 'anid' );
00670 
00671             // object is not yet loaded
00672             $this->_oProduct = oxNew( 'oxarticle' );
00673             $this->_oProduct->setSkipAbPrice( true );
00674 
00675             if ( !$this->_oProduct->load( $sOxid ) ) {
00676                 $myUtils->redirect( $myConfig->getShopHomeURL() );
00677                 $myUtils->showMessageAndExit( '' );
00678             }
00679         }
00680 
00681         // additional checks
00682         if ( !$this->_blIsInitialized ) {
00683             if ( !$this->_oProduct->isVisible() ) {
00684                 $myUtils->redirect( $myConfig->getShopHomeURL() );
00685                 $myUtils->showMessageAndExit( '' );
00686             }
00687 
00688             $this->_setLinkType( $this->_oProduct );
00689             $this->_blIsInitialized = true;
00690         }
00691 
00692         return $this->_oProduct;
00693     }
00694 
00703     protected function _setLinkType( $oProduct, $iListType = null )
00704     {
00705         $sListType = isset( $iListType ) ? $iListType : oxConfig::getParameter( 'listtype' );
00706         if ( 'vendor' == $sListType ) {
00707                 $iLinkType = OXARTICLE_LINKTYPE_VENDOR;
00708             } elseif ( 'manufacturer' == $sListType ) {
00709                 $iLinkType = OXARTICLE_LINKTYPE_MANUFACTURER;
00710             } else {
00711                 $iLinkType = OXARTICLE_LINKTYPE_CATEGORY;
00712             }
00713 
00714         $oProduct->setLinkType( $iLinkType );
00715     }
00716 
00722     public function getVariantList()
00723     {
00724         return $this->loadVariantInformation();
00725     }
00726 
00732     public function getCaptcha()
00733     {
00734         if ( $this->_oCaptcha === null ) {
00735             $this->_oCaptcha = oxNew('oxCaptcha');
00736         }
00737         return $this->_oCaptcha;
00738     }
00739 
00745     public function getMediaFiles()
00746     {
00747         if ( $this->_aMediaFiles === null ) {
00748             $aMediaFiles = $this->getProduct()->getMediaUrls();
00749             $this->_aMediaFiles = count($aMediaFiles) ? $aMediaFiles : false;
00750         }
00751         return $this->_aMediaFiles;
00752     }
00753 
00759     public function getLastProducts()
00760     {
00761         if ( $this->_aLastProducts === null ) {
00762             //last seen products for #768CA
00763             $oProduct = $this->getProduct();
00764             $sArtId = $oProduct->oxarticles__oxparentid->value?$oProduct->oxarticles__oxparentid->value:$oProduct->getId();
00765 
00766             $oHistoryArtList = oxNew( 'oxarticlelist' );
00767             $oHistoryArtList->loadHistoryArticles( $sArtId );
00768             $this->_aLastProducts = $oHistoryArtList;
00769         }
00770         return $this->_aLastProducts;
00771     }
00772 
00778     public function getVendor()
00779     {
00780         if ( $this->_oVendor === null ) {
00781             $this->_oVendor = $this->getProduct()->getVendor( false );
00782         }
00783         return $this->_oVendor;
00784     }
00785 
00791     public function getManufacturer()
00792     {
00793         if ( $this->_oManufacturer === null ) {
00794             $this->_oManufacturer = $this->getProduct()->getManufacturer( false );
00795         }
00796         return $this->_oManufacturer;
00797     }
00798 
00804     public function getCategory()
00805     {
00806         if ( $this->_oCategory === null ) {
00807             $this->_oCategory = $this->getProduct()->getCategory();
00808         }
00809         return $this->_oCategory;
00810     }
00811 
00817     public function drawParentUrl()
00818     {
00819         if ( ( $oParent = $this->_getParentProduct( $this->getProduct()->oxarticles__oxparentid->value ) ) ) {
00820             if ( $this->getConfig()->getConfigParam( 'blVariantParentBuyable' ) || count( $this->getVariantList() ) > 0 ) {
00821                 return true;
00822             }
00823         }
00824     }
00825 
00831     public function getParentName()
00832     {
00833         if ( $this->_sParentName === null ) {
00834             $this->_sParentName = false;
00835             if ( ( $oParent = $this->_getParentProduct( $this->getProduct()->oxarticles__oxparentid->value ) ) ) {
00836                 $this->_sParentName = $oParent->oxarticles__oxtitle->value;
00837             }
00838         }
00839         return $this->_sParentName;
00840     }
00841 
00847     public function getParentUrl()
00848     {
00849         if ( $this->_sParentUrl === null ) {
00850             $this->_sParentUrl = false;
00851             if ( ( $oParent = $this->_getParentProduct( $this->getProduct()->oxarticles__oxparentid->value ) ) ) {
00852                 $this->_sParentUrl = $oParent->getLink();
00853             }
00854         }
00855         return $this->_sParentUrl;
00856     }
00857 
00863     public function getPictureGallery()
00864     {
00865         if ( $this->_aPicGallery === null ) {
00866             //get picture gallery
00867             $this->_aPicGallery = $this->getProduct()->getPictureGallery();
00868         }
00869         return $this->_aPicGallery;
00870     }
00871 
00877     public function getActPictureId()
00878     {
00879         $aPicGallery = $this->getPictureGallery();
00880         return $aPicGallery['ActPicID'];
00881     }
00882 
00888     public function getActPicture()
00889     {
00890         $aPicGallery = $this->getPictureGallery();
00891         return $aPicGallery['ActPic'];
00892     }
00893 
00899     public function morePics()
00900     {
00901         $aPicGallery = $this->getPictureGallery();
00902         return $aPicGallery['MorePics'];
00903     }
00904 
00910     public function getPictures()
00911     {
00912         $aPicGallery = $this->getPictureGallery();
00913         return $aPicGallery['Pics'];
00914     }
00915 
00923     public function getArtPic( $sPicNr )
00924     {
00925         $aPicGallery = $this->getPictureGallery();
00926         return $aPicGallery['Pics'][$sPicNr];
00927     }
00928 
00934     public function getIcons()
00935     {
00936         $aPicGallery = $this->getPictureGallery();
00937         return $aPicGallery['Icons'];
00938     }
00939 
00945     public function showZoomPics()
00946     {
00947         $aPicGallery = $this->getPictureGallery();
00948         return $aPicGallery['ZoomPic'];
00949     }
00950 
00956     public function getZoomPics()
00957     {
00958         $aPicGallery = $this->getPictureGallery();
00959         return $aPicGallery['ZoomPics'];
00960     }
00961 
00967     public function getActZoomPic()
00968     {
00969         return 1;
00970     }
00971 
00977     public function getSelectLists()
00978     {
00979         if ( $this->_aSelectLists === null ) {
00980             $this->_aSelectLists = false;
00981             if ( $this->getConfig()->getConfigParam( 'bl_perfLoadSelectLists' ) ) {
00982                 $this->_aSelectLists = $this->getProduct()->getSelectLists();
00983             }
00984         }
00985         return $this->_aSelectLists;
00986     }
00987 
00993     public function getReviews()
00994     {
00995         if ( $this->_aReviews === null ) {
00996             $this->_aReviews = false;
00997             if ( $this->getConfig()->getConfigParam( 'bl_perfLoadReviews' ) ) {
00998                 $this->_aReviews = $this->getProduct()->getReviews();
00999             }
01000         }
01001         return $this->_aReviews;
01002     }
01003 
01009     public function getCrossSelling()
01010     {
01011         if ( $this->_oCrossSelling === null ) {
01012             $this->_oCrossSelling = false;
01013             if ( $oProduct = $this->getProduct() ) {
01014                 $this->_oCrossSelling = $oProduct->getCrossSelling();
01015             }
01016         }
01017         return $this->_oCrossSelling;
01018     }
01019 
01025     public function getSimilarProducts()
01026     {
01027         if ( $this->_oSimilarProducts === null ) {
01028             $this->_oSimilarProducts = false;
01029             if ( $oProduct = $this->getProduct() ) {
01030                 $this->_oSimilarProducts = $oProduct->getSimilarProducts();
01031             }
01032         }
01033         return $this->_oSimilarProducts;
01034     }
01035 
01041     public function getSimilarRecommLists()
01042     {
01043         if ( $this->_oRecommList === null ) {
01044             $this->_oRecommList = false;
01045             if ( $oProduct = $this->getProduct() ) {
01046                 $oRecommList = oxNew('oxrecommlist');
01047                 $this->_oRecommList = $oRecommList->getRecommListsByIds( array( $oProduct->getId() ) );
01048             }
01049         }
01050         return $this->_oRecommList;
01051     }
01052 
01058     public function getAccessoires()
01059     {
01060         if ( $this->_oAccessoires === null ) {
01061             $this->_oAccessoires = false;
01062             if ( $oProduct = $this->getProduct() ) {
01063                 $this->_oAccessoires = $oProduct->getAccessoires();
01064             }
01065         }
01066         return $this->_oAccessoires;
01067     }
01068 
01074     public function getAlsoBoughtThiesProducts()
01075     {
01076         if ( $this->_aAlsoBoughtArts === null ) {
01077             $this->_aAlsoBoughtArts = false;
01078             if ( $oProduct = $this->getProduct() ) {
01079                 $this->_aAlsoBoughtArts = $oProduct->getCustomerAlsoBoughtThisProducts();
01080             }
01081         }
01082         return $this->_aAlsoBoughtArts;
01083     }
01084 
01090     public function isPriceAlarm()
01091     {
01092         // #419 disabling pricealarm if article has fixed price
01093         $oProduct = $this->getProduct();
01094         if ( isset( $oProduct->oxarticles__oxblfixedprice->value ) && $oProduct->oxarticles__oxblfixedprice->value ) {
01095             return 0;
01096         }
01097         return 1;
01098     }
01099 
01106     protected function _getSubject()
01107     {
01108         return $this->getProduct();
01109     }
01110 
01116     public function getSearchTitle()
01117     {
01118         return $this->_sSearchTitle;
01119     }
01120 
01128     public function setSearchTitle( $sTitle )
01129     {
01130         $this->_sSearchTitle = $sTitle;
01131     }
01132 
01140     public function setCatTreePath( $sActCatPath )
01141     {
01142         $this->_sCatTreePath = $sActCatPath;
01143     }
01144 
01151     public function noIndex()
01152     {
01153         $sListType = oxConfig::getParameter( 'listtype' );
01154         if ( $sListType && ( 'vendor' == $sListType || 'manufacturer' == $sListType ) ) {
01155             return $this->_iViewIndexState = VIEW_INDEXSTATE_NOINDEXFOLLOW;
01156         }
01157         return parent::noIndex();
01158     }
01159 
01165     public function getTitle()
01166     {
01167         if ( $oProduct = $this->getProduct() ) {
01168             return $oProduct->oxarticles__oxtitle->value . ( $oProduct->oxarticles__oxvarselect->value ? ' ' . $oProduct->oxarticles__oxvarselect->value : '' );
01169         }
01170     }
01171 }

Generated on Tue Apr 21 15:45:45 2009 for OXID eShop CE by  doxygen 1.5.5