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
00195 protected $_iLinkType = null;
00196
00204 protected function _getParentProduct( $sParentId )
00205 {
00206 if ( $sParentId && $this->_oParent === null ) {
00207 $this->_oParent = false;
00208 if ( ( $oParent = oxNewArticle( $sParentId ) ) ) {
00209 $this->_processProduct( $oParent );
00210 $this->_oParent = $oParent;
00211 }
00212 }
00213 return $this->_oParent;
00214 }
00215
00222 public function loadVariantInformation()
00223 {
00224 if ( $this->_aVariantList === null ) {
00225 $oProduct = $this->getProduct();
00226
00227
00228 $this->_aVariantList = $oProduct->getVariants( false );
00229
00230
00231 if ( ( $oParent = $this->_getParentProduct( $oProduct->oxarticles__oxparentid->value ) ) && count( $this->_aVariantList ) == 0 ) {
00232 $myConfig = $this->getConfig();
00233
00234 $this->_aVariantList = $oParent->getVariants( false );
00235
00236
00237 if ( $oParent->blNotBuyableParent ) {
00238 $oParent->blNotBuyable = true;
00239 }
00240
00241
00242 if ( $myConfig->getConfigParam( 'blVariantParentBuyable' ) ) {
00243
00244 $oParent->aSelectlist = $oParent->getSelectLists();
00245 $this->_aVariantList = array_merge( array( $oParent ), $this->_aVariantList->getArray() );
00246 }
00247
00248
00249 if ( isset( $this->_aVariantList[$oProduct->getId()] ) ) {
00250 unset( $this->_aVariantList[$oProduct->getId()] );
00251 }
00252 }
00253
00254
00255 foreach ( $this->_aVariantList as $oVariant ) {
00256 $this->_processProduct( $oVariant );
00257 }
00258
00259 }
00260 return $this->_aVariantList;
00261 }
00262
00268 protected function _getAddUrlParams()
00269 {
00270 if ( $this->getListType() == "search" ) {
00271 return $this->getDynUrlParams();
00272 }
00273 }
00274
00282 protected function _processProduct( $oProduct )
00283 {
00284 $oProduct->setLinkType( $this->getLinkType() );
00285 if ( $sAddParams = $this->_getAddUrlParams() ) {
00286 $oProduct->appendLink( $sAddParams );
00287 }
00288 }
00289
00295 public function getViewId()
00296 {
00297 if ( isset( $this->_sViewId )) {
00298 return $this->_sViewId;
00299 }
00300
00301 $sViewId = parent::getViewId().'|'.oxConfig::getParameter( 'anid' ).'|'.count( $this->getVariantList() ).'|';
00302
00303
00304 return $this->_sViewId = $sViewId;
00305 }
00306
00307
00314 public function init()
00315 {
00316 parent::init();
00317
00318 $oProduct = $this->getProduct();
00319
00320
00321 if ( $oProduct->oxarticles__oxtemplate->value ) {
00322 $this->_sThisTemplate = $oProduct->oxarticles__oxtemplate->value;
00323 }
00324
00325 if ( ( $sTplName = oxConfig::getParameter( 'tpl' ) ) ) {
00326 $this->_sThisTemplate = basename ( $sTplName );
00327 }
00328 }
00329
00349 public function render()
00350 {
00351 $myConfig = $this->getConfig();
00352
00353 $oProduct = $this->getProduct();
00354
00355
00356 $oProduct->loadAmountPriceInfo();
00357
00358
00359 $this->_aViewData['product'] = $oProduct;
00360
00361 $this->_aViewData["aTags"] = $this->getTags();
00362 $this->_aViewData["blEditTags"] = $this->getEditTags();
00363 startProfile("tagCloud");
00364 $this->_aViewData['tagCloud'] = $this->getTagCloud();
00365 stopProfile("tagCloud");
00366
00367 $this->_aViewData['loginformanchor'] = $this->getLoginFormAnchor();
00368
00369 $this->_aViewData['ispricealarm'] = $this->isPriceAlarm();
00370
00371 $this->_aViewData['customerwho'] = $this->getAlsoBoughtThiesProducts();
00372 $this->_aViewData['accessoirelist'] = $this->getAccessoires();
00373 $this->_aViewData['similarlist'] = $this->getSimilarProducts();
00374 $this->_aViewData['crossselllist'] = $this->getCrossSelling();
00375
00376 $this->_aViewData['variants'] = $this->getVariantList();
00377
00378 $this->_aViewData['reviews'] = $this->getReviews();
00379
00380 $this->_aViewData['selectlist'] = $this->getSelectLists();
00381
00382 $this->_aViewData["actpicid"] = $this->getActPictureId();
00383 $this->_aViewData["actpic"] = $this->getActPicture();
00384 $this->_aViewData['blMorePic'] = $this->morePics();
00385 $this->_aViewData['ArtPics'] = $this->getPictures();
00386 $this->_aViewData['ArtIcons'] = $this->getIcons();
00387 $this->_aViewData['blZoomPic'] = $this->showZoomPics();
00388 $this->_aViewData['aZoomPics'] = $this->getZoomPics();
00389 $this->_aViewData['iZoomPic'] = $this->getActZoomPic();
00390
00391 $this->_aViewData['parentname'] = $this->getParentName();
00392 $this->_aViewData['parent_url'] = $this->getParentUrl();
00393 $this->_aViewData['draw_parent_url'] = $this->drawParentUrl();
00394
00395 $this->_aViewData['pgNr'] = $this->getActPage();
00396
00397 parent::render();
00398
00399 $this->_aViewData['allartattr'] = $this->getAttributes();
00400
00401
00402 $this->_aViewData['oCategory'] = $this->getCategory();
00403
00404 $this->_aViewData['oVendor'] = $this->getVendor();
00405
00406 $this->_aViewData['oManufacturer'] = $this->getManufacturer();
00407
00408 $this->_aViewData['aLastProducts'] = $this->getLastProducts();
00409
00410
00411 $oLocator = oxNew( 'oxlocator', $this->getListType() );
00412 $oLocator->setLocatorData( $oProduct, $this );
00413
00414
00415 $this->_aViewData['aMediaUrls'] = $this->getMediaFiles();
00416
00417 if (in_array('oxrss_recommlists', $myConfig->getConfigParam( 'aRssSelected' )) && $this->getSimilarRecommLists()) {
00418 $oRss = oxNew('oxrssfeed');
00419 $this->addRssFeed($oRss->getRecommListsTitle( $oProduct ), $oRss->getRecommListsUrl( $oProduct ), 'recommlists');
00420 }
00421
00422
00423
00424 $this->_aViewData['oCaptcha'] = $this->getCaptcha();
00425 $this->_aViewData['sSearchTitle'] = $this->getSearchTitle();
00426 $this->_aViewData['actCatpath'] = $this->getCatTreePath();
00427
00428 return $this->_sThisTemplate;
00429 }
00430
00442 protected function _prepareMetaDescription( $sMeta, $iLength = 200, $blDescTag = false )
00443 {
00444 if ( !$sMeta ) {
00445 $oProduct = $this->getProduct();
00446
00447 $sMeta = $oProduct->getArticleLongDesc()->value;
00448 $sMeta = str_replace( array( '<br>', '<br />', '<br/>' ), "\n", $sMeta );
00449 $sMeta = $oProduct->oxarticles__oxtitle->value.' - '.$sMeta;
00450 $sMeta = strip_tags( $sMeta );
00451 }
00452 return parent::_prepareMetaDescription( $sMeta, $iLength, $blDescTag );
00453 }
00454
00465 protected function _prepareMetaKeyword( $sKeywords, $blRemoveDuplicatedWords = true )
00466 {
00467 $myConfig = $this->getConfig();
00468
00469 if ( !$sKeywords ) {
00470 $oProduct = $this->getProduct();
00471 $aKeywords[] = trim( $this->getTitle() );
00472
00473 if ( $oCatTree = $this->getCategoryTree() ) {
00474 foreach ( $oCatTree->getPath() as $oCat ) {
00475 $aKeywords[] = trim( $oCat->oxcategories__oxtitle->value );
00476 }
00477 }
00478
00479 $sKeywords = implode( ", ", $aKeywords );
00480
00481 $sKeywords = parent::_prepareMetaKeyword( $sKeywords, $blRemoveDuplicatedWords );
00482
00483
00484 if ( $sSearchKeys = trim( $oProduct->oxarticles__oxsearchkeys->value ) ) {
00485 $sKeywords .= ", " . parent::_prepareMetaKeyword( $sSearchKeys, false );
00486 }
00487 }
00488
00489 return $sKeywords;
00490 }
00491
00497 public function canRate()
00498 {
00499 if ( $this->_blCanRate === null ) {
00500
00501 $this->_blCanRate = false;
00502 $myConfig = $this->getConfig();
00503
00504 if ( $myConfig->getConfigParam( 'bl_perfLoadReviews' ) &&
00505 $oUser = $this->getUser() ) {
00506
00507 $oRating = oxNew( 'oxrating' );
00508 $this->_blCanRate = $oRating->allowRating( $oUser->getId(), 'oxarticle', $this->getProduct()->getId() );
00509 }
00510 }
00511 return $this->_blCanRate;
00512 }
00513
00519 public function saveReview()
00520 {
00521 $sReviewText = trim( ( string ) oxConfig::getParameter( 'rvw_txt', true ) );
00522 $dRating = oxConfig::getParameter( 'artrating' );
00523 if ($dRating < 0 || $dRating > 5) {
00524 $dRating = null;
00525 }
00526
00527 $sArtId = oxConfig::getParameter( 'anid' );
00528 $sUserId = oxSession::getVar( 'usr' );
00529
00530
00531 if ( $dRating && $sUserId ) {
00532 $oProduct = $this->getProduct();
00533
00534 $oRating = oxNew( 'oxrating' );
00535 $blRate = $oRating->allowRating( $sUserId, 'oxarticle', $oProduct->getId());
00536 if ( $blRate) {
00537 $oRating->oxratings__oxuserid = new oxField($sUserId);
00538 $oRating->oxratings__oxtype = new oxField('oxarticle', oxField::T_RAW);
00539 $oRating->oxratings__oxobjectid = new oxField($sArtId);
00540 $oRating->oxratings__oxrating = new oxField($dRating);
00541 $oRating->save();
00542 $oProduct->addToRatingAverage( $dRating);
00543 } else {
00544 $dRating = null;
00545 }
00546 }
00547
00548 if ( $sReviewText && $sUserId ) {
00549 $oReview = oxNew( 'oxreview' );
00550 $oReview->oxreviews__oxobjectid = new oxField($sArtId);
00551 $oReview->oxreviews__oxtype = new oxField('oxarticle', oxField::T_RAW);
00552 $oReview->oxreviews__oxtext = new oxField($sReviewText, oxField::T_RAW);
00553 $oReview->oxreviews__oxlang = new oxField(oxLang::getInstance()->getBaseLanguage());
00554 $oReview->oxreviews__oxuserid = new oxField($sUserId);
00555 $oReview->oxreviews__oxrating = new oxField(( $dRating) ? $dRating : null);
00556 $oReview->save();
00557 }
00558 }
00559
00565 public function showLogin()
00566 {
00567 $this->_sThisTemplate = 'account_login.tpl';
00568 if ( $sAnchor = $this->getConfig()->getParameter("anchor") ) {
00569 $this->_sLoginFormAnchor = $sAnchor;
00570 }
00571 }
00572
00578 public function addToRecomm()
00579 {
00580 $sRecommText = trim( ( string ) oxConfig::getParameter( 'recomm_txt' ) );
00581 $sRecommList = oxConfig::getParameter( 'recomm' );
00582 $sArtId = oxConfig::getParameter( 'anid' );
00583
00584 if ( $sArtId ) {
00585 $oRecomm = oxNew( 'oxrecommlist' );
00586 $oRecomm->load( $sRecommList);
00587 $oRecomm->addArticle( $sArtId, $sRecommText );
00588 }
00589 }
00590
00596 public function addTags()
00597 {
00598 $sTag = $this->getConfig()->getParameter('newTags', true );
00599 $sTag .= " ".getStr()->html_entity_decode( $this->getConfig()->getParameter( 'highTags', true ) );
00600
00601 $oProduct = $this->getProduct();
00602 $oProduct->addTag( $sTag );
00603
00604
00605 $oTagHandler = oxNew( 'oxTagCloud' );
00606 $this->_sTagCloud = $oTagHandler->getTagCloud( $oProduct->getId() );
00607 }
00608
00614 public function editTags()
00615 {
00616 $oTagCloud = oxNew("oxTagCloud");
00617 $this->_aTags = $oTagCloud->getTags( $this->getProduct()->getId() );
00618 $this->_blEditTags = true;
00619 }
00620
00626 protected function _getSeoObjectId()
00627 {
00628 if ( $oProduct = $this->getProduct() ) {
00629 return $oProduct->getId();
00630 }
00631 }
00632
00638 public function getAttributes()
00639 {
00640 if ( $this->_aAttributes === null ) {
00641
00642 $aArtAttributes = $this->getProduct()->getAttributes();
00643
00644
00645 $this->_aAttributes = array();
00646 if ( count( $aArtAttributes ) ) {
00647 foreach ( $aArtAttributes as $sKey => $oAttribute ) {
00648 $this->_aAttributes[$sKey] = new stdClass();
00649 $this->_aAttributes[$sKey]->title = $oAttribute->oxattribute__oxtitle->value;
00650 $this->_aAttributes[$sKey]->value = $oAttribute->oxattribute__oxvalue->value;
00651 }
00652 }
00653 }
00654
00655 return $this->_aAttributes;
00656 }
00657
00658
00664 public function getEditTags()
00665 {
00666 return $this->_blEditTags;
00667 }
00668
00674 public function getTags()
00675 {
00676 return $this->_aTags;
00677 }
00678
00684 public function getTagCloud()
00685 {
00686 if ( $this->_sTagCloud === null ) {
00687 $this->_sTagCloud = false;
00688 $oTagHandler = oxNew('oxTagCloud');
00689 $this->_sTagCloud = $oTagHandler->getTagCloud($this->getProduct()->getId());
00690 }
00691 return $this->_sTagCloud;
00692 }
00693
00694
00700 public function getLoginFormAnchor()
00701 {
00702 return $this->_sLoginFormAnchor;
00703 }
00704
00710 public function getProduct()
00711 {
00712 $myConfig = $this->getConfig();
00713 $myUtils = oxUtils::getInstance();
00714
00715 if ( $this->_oProduct === null ) {
00716
00717
00718
00719 $myConfig->setConfigParam( 'blLoadVariants', true );
00720
00721 $sOxid = oxConfig::getParameter( 'anid' );
00722
00723
00724 $this->_oProduct = oxNew( 'oxarticle' );
00725
00726
00727 if ( !$this->_oProduct->load( $sOxid ) ) {
00728 $myUtils->redirect( $myConfig->getShopHomeURL() );
00729 $myUtils->showMessageAndExit( '' );
00730 }
00731 }
00732
00733
00734 if ( !$this->_blIsInitialized ) {
00735 if ( !$this->_oProduct->isVisible() ) {
00736 $myUtils->redirect( $myConfig->getShopHomeURL() );
00737 $myUtils->showMessageAndExit( '' );
00738 }
00739
00740 $this->_processProduct( $this->_oProduct );
00741 $this->_blIsInitialized = true;
00742 }
00743
00744 return $this->_oProduct;
00745 }
00746
00752 public function getLinkType()
00753 {
00754 if ( $this->_iLinkType === null ) {
00755 $sListType = oxConfig::getParameter( 'listtype' );
00756 if ( 'vendor' == $sListType ) {
00757 $this->_iLinkType = OXARTICLE_LINKTYPE_VENDOR;
00758 } elseif ( 'manufacturer' == $sListType ) {
00759 $this->_iLinkType = OXARTICLE_LINKTYPE_MANUFACTURER;
00760 } elseif ( 'tag' == $sListType ) {
00761 $this->_iLinkType = OXARTICLE_LINKTYPE_TAG;
00762 } else {
00763 $this->_iLinkType = OXARTICLE_LINKTYPE_CATEGORY;
00764
00765
00766 if ( ( $oCat = $this->getCategory() ) && $oCat->isPriceCategory() ) {
00767 $this->_iLinkType = OXARTICLE_LINKTYPE_PRICECATEGORY;
00768 }
00769 }
00770 }
00771
00772 return $this->_iLinkType;
00773 }
00774
00780 public function getVariantList()
00781 {
00782 return $this->loadVariantInformation();
00783 }
00784
00790 public function getCaptcha()
00791 {
00792 if ( $this->_oCaptcha === null ) {
00793 $this->_oCaptcha = oxNew('oxCaptcha');
00794 }
00795 return $this->_oCaptcha;
00796 }
00797
00803 public function getMediaFiles()
00804 {
00805 if ( $this->_aMediaFiles === null ) {
00806 $aMediaFiles = $this->getProduct()->getMediaUrls();
00807 $this->_aMediaFiles = count($aMediaFiles) ? $aMediaFiles : false;
00808 }
00809 return $this->_aMediaFiles;
00810 }
00811
00817 public function getLastProducts()
00818 {
00819 if ( $this->_aLastProducts === null ) {
00820
00821 $oProduct = $this->getProduct();
00822 $sArtId = $oProduct->oxarticles__oxparentid->value?$oProduct->oxarticles__oxparentid->value:$oProduct->getId();
00823
00824 $oHistoryArtList = oxNew( 'oxarticlelist' );
00825 $oHistoryArtList->loadHistoryArticles( $sArtId );
00826 $this->_aLastProducts = $oHistoryArtList;
00827 }
00828 return $this->_aLastProducts;
00829 }
00830
00836 public function getVendor()
00837 {
00838 if ( $this->_oVendor === null ) {
00839 $this->_oVendor = $this->getProduct()->getVendor( false );
00840 }
00841 return $this->_oVendor;
00842 }
00843
00849 public function getManufacturer()
00850 {
00851 if ( $this->_oManufacturer === null ) {
00852 $this->_oManufacturer = $this->getProduct()->getManufacturer( false );
00853 }
00854 return $this->_oManufacturer;
00855 }
00856
00862 public function getCategory()
00863 {
00864 if ( $this->_oCategory === null ) {
00865 $this->_oCategory = $this->getProduct()->getCategory();
00866 }
00867 return $this->_oCategory;
00868 }
00869
00875 public function drawParentUrl()
00876 {
00877 return $this->getProduct()->isVariant();
00878 }
00879
00885 public function getParentName()
00886 {
00887 if ( $this->_sParentName === null ) {
00888 $this->_sParentName = false;
00889 if ( ( $oParent = $this->_getParentProduct( $this->getProduct()->oxarticles__oxparentid->value ) ) ) {
00890 $this->_sParentName = $oParent->oxarticles__oxtitle->value;
00891 }
00892 }
00893 return $this->_sParentName;
00894 }
00895
00901 public function getParentUrl()
00902 {
00903 if ( $this->_sParentUrl === null ) {
00904 $this->_sParentUrl = false;
00905 if ( ( $oParent = $this->_getParentProduct( $this->getProduct()->oxarticles__oxparentid->value ) ) ) {
00906 $this->_sParentUrl = $oParent->getLink();
00907 }
00908 }
00909 return $this->_sParentUrl;
00910 }
00911
00917 public function getPictureGallery()
00918 {
00919 if ( $this->_aPicGallery === null ) {
00920
00921 $this->_aPicGallery = $this->getProduct()->getPictureGallery();
00922 }
00923 return $this->_aPicGallery;
00924 }
00925
00931 public function getActPictureId()
00932 {
00933 $aPicGallery = $this->getPictureGallery();
00934 return $aPicGallery['ActPicID'];
00935 }
00936
00942 public function getActPicture()
00943 {
00944 $aPicGallery = $this->getPictureGallery();
00945 return $aPicGallery['ActPic'];
00946 }
00947
00953 public function morePics()
00954 {
00955 $aPicGallery = $this->getPictureGallery();
00956 return $aPicGallery['MorePics'];
00957 }
00958
00964 public function getPictures()
00965 {
00966 $aPicGallery = $this->getPictureGallery();
00967 return $aPicGallery['Pics'];
00968 }
00969
00977 public function getArtPic( $sPicNr )
00978 {
00979 $aPicGallery = $this->getPictureGallery();
00980 return $aPicGallery['Pics'][$sPicNr];
00981 }
00982
00988 public function getIcons()
00989 {
00990 $aPicGallery = $this->getPictureGallery();
00991 return $aPicGallery['Icons'];
00992 }
00993
00999 public function showZoomPics()
01000 {
01001 $aPicGallery = $this->getPictureGallery();
01002 return $aPicGallery['ZoomPic'];
01003 }
01004
01010 public function getZoomPics()
01011 {
01012 $aPicGallery = $this->getPictureGallery();
01013 return $aPicGallery['ZoomPics'];
01014 }
01015
01021 public function getActZoomPic()
01022 {
01023 return 1;
01024 }
01025
01031 public function getSelectLists()
01032 {
01033 if ( $this->_aSelectLists === null ) {
01034 $this->_aSelectLists = false;
01035 if ( $this->getConfig()->getConfigParam( 'bl_perfLoadSelectLists' ) ) {
01036 $this->_aSelectLists = $this->getProduct()->getSelectLists();
01037 }
01038 }
01039 return $this->_aSelectLists;
01040 }
01041
01047 public function getReviews()
01048 {
01049 if ( $this->_aReviews === null ) {
01050 $this->_aReviews = false;
01051 if ( $this->getConfig()->getConfigParam( 'bl_perfLoadReviews' ) ) {
01052 $this->_aReviews = $this->getProduct()->getReviews();
01053 }
01054 }
01055 return $this->_aReviews;
01056 }
01057
01063 public function getCrossSelling()
01064 {
01065 if ( $this->_oCrossSelling === null ) {
01066 $this->_oCrossSelling = false;
01067 if ( $oProduct = $this->getProduct() ) {
01068 $this->_oCrossSelling = $oProduct->getCrossSelling();
01069 }
01070 }
01071 return $this->_oCrossSelling;
01072 }
01073
01079 public function getSimilarProducts()
01080 {
01081 if ( $this->_oSimilarProducts === null ) {
01082 $this->_oSimilarProducts = false;
01083 if ( $oProduct = $this->getProduct() ) {
01084 $this->_oSimilarProducts = $oProduct->getSimilarProducts();
01085 }
01086 }
01087 return $this->_oSimilarProducts;
01088 }
01089
01095 public function getSimilarRecommLists()
01096 {
01097 if ( $this->_oRecommList === null ) {
01098 $this->_oRecommList = false;
01099 if ( $oProduct = $this->getProduct() ) {
01100 $oRecommList = oxNew('oxrecommlist');
01101 $this->_oRecommList = $oRecommList->getRecommListsByIds( array( $oProduct->getId() ) );
01102 }
01103 }
01104 return $this->_oRecommList;
01105 }
01106
01112 public function getAccessoires()
01113 {
01114 if ( $this->_oAccessoires === null ) {
01115 $this->_oAccessoires = false;
01116 if ( $oProduct = $this->getProduct() ) {
01117 $this->_oAccessoires = $oProduct->getAccessoires();
01118 }
01119 }
01120 return $this->_oAccessoires;
01121 }
01122
01128 public function getAlsoBoughtThiesProducts()
01129 {
01130 if ( $this->_aAlsoBoughtArts === null ) {
01131 $this->_aAlsoBoughtArts = false;
01132 if ( $oProduct = $this->getProduct() ) {
01133 $this->_aAlsoBoughtArts = $oProduct->getCustomerAlsoBoughtThisProducts();
01134 }
01135 }
01136 return $this->_aAlsoBoughtArts;
01137 }
01138
01144 public function isPriceAlarm()
01145 {
01146
01147 $oProduct = $this->getProduct();
01148 if ( isset( $oProduct->oxarticles__oxblfixedprice->value ) && $oProduct->oxarticles__oxblfixedprice->value ) {
01149 return 0;
01150 }
01151 return 1;
01152 }
01153
01162 protected function _getSubject( $iLang )
01163 {
01164 return $this->getProduct();
01165 }
01166
01172 public function getSearchTitle()
01173 {
01174 return $this->_sSearchTitle;
01175 }
01176
01184 public function setSearchTitle( $sTitle )
01185 {
01186 $this->_sSearchTitle = $sTitle;
01187 }
01188
01196 public function setCatTreePath( $sActCatPath )
01197 {
01198 $this->_sCatTreePath = $sActCatPath;
01199 }
01200
01207 public function noIndex()
01208 {
01209 $sListType = oxConfig::getParameter( 'listtype' );
01210 if ( $sListType && ( 'vendor' == $sListType || 'manufacturer' == $sListType ) ) {
01211 return $this->_iViewIndexState = VIEW_INDEXSTATE_NOINDEXFOLLOW;
01212 }
01213 return parent::noIndex();
01214 }
01215
01221 public function getTitle()
01222 {
01223 if ( $oProduct = $this->getProduct() ) {
01224 return $oProduct->oxarticles__oxtitle->value . ( $oProduct->oxarticles__oxvarselect->value ? ' ' . $oProduct->oxarticles__oxvarselect->value : '' );
01225 }
01226 }
01227
01228
01234 public function getTag()
01235 {
01236 return oxConfig::getParameter("searchtag", 1);
01237 }
01238 }