31 if ( $aData && isset( $aData[
"oxparams"] ) ) {
33 $iEndPos = $oStr->strpos( $aData[
"oxparams"],
"#" );
34 $sType = $oStr->substr( $aData[
"oxparams"], 0, $iEndPos );
37 $sType = key( $aList );
56 if ( $aData && isset( $aData[
"oxparams"] ) ) {
58 $iStartPos = $oStr->strpos( $aData[
"oxparams"],
"#" );
59 $iEndPos = $oStr->strpos( $aData[
"oxparams"],
"#", $iStartPos + 1 );
60 $iLang = $oStr->substr( $aData[
"oxparams"], $iEndPos + 1 );
62 $aList = reset( $aList );
63 $iLang = key( $aList );
78 if ( $aData && isset( $aData[
"oxparams"] ) ) {
80 $iStartPos = $oStr->strpos( $aData[
"oxparams"],
"#" );
81 $iEndPos = $oStr->strpos( $aData[
"oxparams"],
"#", $iStartPos + 1 );
82 $iLen = $oStr->strlen( $aData[
"oxparams"] );
83 $sId = $oStr->substr( $aData[
"oxparams"], $iStartPos + 1, $iEndPos - $iLen );
86 $sId = $oItem->getId();
99 if ( $this->_aSelectionList === null ) {
100 $this->_aSelectionList = array();
102 $oProduct =
oxNew(
'oxarticle' );
117 $aLangs = $oProduct->getAvailableInLangs();
118 foreach ( $aLangs as $iLang => $sLangTitle ) {
119 if ( $oTagList = $this->
_getTagList( $oProduct, $iLang ) ) {
120 $this->_aSelectionList[
"oxtag"][$iLang] = $oTagList;
138 if ( $oMainCat = $oArticle->getCategory() ) {
139 $sMainCatId = $oMainCat->getId();
146 $sO2CView = getViewName(
'oxobject2category');
148 $sQ =
"select oxobject2category.oxcatnid as oxid from $sO2CView as oxobject2category where oxobject2category.oxobjectid="
149 . $oDb->quote( $oArticle->getId() ) .
" union ".$oArticle->getSqlForPriceCategories(
'oxid');
151 $oRs = $oDb->execute( $sQ );
152 if ( $oRs !=
false && $oRs->recordCount() > 0 ) {
153 while ( !$oRs->EOF ) {
154 $oCat =
oxNew(
'oxcategory');
155 if ( $oCat->loadInLang( $iLang, current( $oRs->fields ) ) ) {
156 if ( $sMainCatId == $oCat->getId() ) {
158 $oCat->oxcategories__oxtitle =
new oxField( $oCat->oxcategories__oxtitle->getRawValue() .
" " . $sSuffix,
oxField::T_RAW );
178 if ( $oArticle->oxarticles__oxvendorid->value ) {
179 $oVendor =
oxNew(
'oxvendor' );
180 if ( $oVendor->loadInLang( $this->getEditLang(), $oArticle->oxarticles__oxvendorid->value ) ) {
181 return array( $oVendor );
195 if ( $oArticle->oxarticles__oxmanufacturerid->value ) {
196 $oManufacturer =
oxNew(
'oxmanufacturer' );
197 if ( $oManufacturer->loadInLang( $this->getEditLang(), $oArticle->oxarticles__oxmanufacturerid->value ) ) {
198 return array( $oManufacturer );
213 $oArticleTagList =
oxNew(
"oxarticletaglist");
214 $oArticleTagList->setLanguage( $iLang );
215 $oArticleTagList->load( $oArticle->getId() );
216 $aTagsList = array();
217 if ( count( $aTags = $oArticleTagList->getArray() ) ) {
218 $sShopId = $this->
getConfig()->getShopId();
219 $iProdId = $oArticle->getId();
220 foreach ( $aTags as $sTitle => $oTagObject ) {
222 $oTag =
oxNew(
"oxManufacturer" );
223 $oTag->setLanguage( $iLang );
224 $oTag->setId( md5( strtolower ( $sShopId . $this->
_getStdUrl( $iProdId,
"oxtag",
"tag", $iLang, $sTitle ) ) ) );
225 $oTag->oxmanufacturers__oxtitle =
new oxField( $sTitle );
226 $aTagsList[] = $oTag;
240 $oCat =
oxNew(
'oxcategory' );
241 return ( $oCat->load( $this->getActCatId() ) ) ? $oCat : null;
256 $oProduct =
oxNew(
'oxarticle' );
260 foreach ( $aList as $oTag ) {
261 if ( $oTag->getId() == $sTagId ) {
262 return $oTag->getTitle();
275 $oVendor =
oxNew(
'oxvendor' );
276 return ( $this->
getActCatType() ==
'oxvendor' && $oVendor->load( $this->getActCatId() ) ) ? $oVendor : null;
286 $oManufacturer =
oxNew(
'oxmanufacturer' );
287 return ( $this->
getActCatType() ==
'oxmanufacturer' && $oManufacturer->load( $this->getActCatId() ) ) ? $oManufacturer : null;
300 case 'oxmanufacturer':
301 return 'manufacturer';
384 $oProduct =
oxNew(
'oxarticle' );
385 if ( $oProduct->load( $this->getEditObjectId() ) ) {
389 return $oEncoder->getArticleVendorUri( $oProduct, $this->
getEditLang() );
390 case 'oxmanufacturer':
391 return $oEncoder->getArticleManufacturerUri( $oProduct, $this->
getEditLang() );
393 return $oEncoder->getArticleTagUri( $oProduct, $this->
getActCatLang() );
396 return $oEncoder->getArticleUri( $oProduct, $this->
getEditLang() );
398 return $oEncoder->getArticleMainUri( $oProduct, $this->
getEditLang() );
415 protected function _getStdUrl( $sOxid, $sCatType = null, $sListType = null, $iLang = null, $sTag = null )
417 $iLang = $iLang !== null ? $iLang : $this->
getEditLang();
418 $sCatType = $sCatType !== null ? $sCatType : $this->
getActCatType();
419 $sListType = $sListType !== null ? $sListType : $this->
getListType();
423 $aParams[
"listtype"] = $sListType;
426 $oProduct =
oxNew(
'oxarticle' );
427 $oProduct->loadInLang( $iLang, $sOxid );
430 switch ( $sCatType ) {
434 case 'oxmanufacturer':
438 $aParams[
"searchtag"] = $sTag !== null ? $sTag : $this->
getTag();
445 return trim(
oxRegistry::get(
"oxUtilsUrl")->appendUrl( $oProduct->getBaseStdLink( $iLang,
true,
false ), $aParams ),
'&' );
483 $iShopId = $this->
getConfig()->getShopId();
486 $sQ =
"select oxfixed from oxseo where
487 oxseo.oxobjectid = " . $oDb->quote( $sId ) .
" and
488 oxseo.oxshopid = '{$iShopId}' and oxseo.oxlang = {$iLang} and oxparams = ".$oDb->quote( $sParam );
490 return (
bool)
oxDb::getDb()->getOne( $sQ,
false,
false );