32 if ($aData && isset($aData[
"oxparams"])) {
34 $iEndPos = $oStr->strpos($aData[
"oxparams"],
"#");
35 $sType = $oStr->substr($aData[
"oxparams"], 0, $iEndPos);
57 if ($aData && isset($aData[
"oxparams"])) {
59 $iStartPos = $oStr->strpos($aData[
"oxparams"],
"#");
60 $iEndPos = $oStr->strpos($aData[
"oxparams"],
"#", $iStartPos + 1);
61 $iLang = $oStr->substr($aData[
"oxparams"], $iEndPos + 1);
63 $aList = reset($aList);
79 if ($aData && isset($aData[
"oxparams"])) {
81 $iStartPos = $oStr->strpos($aData[
"oxparams"],
"#");
82 $iEndPos = $oStr->strpos($aData[
"oxparams"],
"#", $iStartPos + 1);
83 $iLen = $oStr->strlen($aData[
"oxparams"]);
84 $sId = $oStr->substr($aData[
"oxparams"], $iStartPos + 1, $iEndPos - $iLen);
87 $sId = $oItem->getId();
100 if ($this->_aSelectionList === null) {
101 $this->_aSelectionList = array();
103 $oProduct =
oxNew(
'oxarticle');
118 $aLangs = $oProduct->getAvailableInLangs();
119 foreach ($aLangs as $iLang => $sLangTitle) {
120 if ($oTagList = $this->
_getTagList($oProduct, $iLang)) {
121 $this->_aSelectionList[
"oxtag"][$iLang] = $oTagList;
139 if ($oMainCat = $oArticle->getCategory()) {
140 $sMainCatId = $oMainCat->getId();
147 $sView = getViewName(
'oxobject2category');
149 $sSqlForPriceCategories = $oArticle->getSqlForPriceCategories(
'oxid');
150 $sQuotesArticleId = $oDb->quote($oArticle->getId());
151 $sQ =
"select oxobject2category.oxcatnid as oxid from {$sView} as oxobject2category " .
152 "where oxobject2category.oxobjectid=" . $sQuotesArticleId .
" union " . $sSqlForPriceCategories;
154 $oRs = $oDb->execute($sQ);
155 if ($oRs !=
false && $oRs->recordCount() > 0) {
157 $oCat =
oxNew(
'oxcategory');
158 if ($oCat->loadInLang($iLang, current($oRs->fields))) {
159 if ($sMainCatId == $oCat->getId()) {
161 $sTitleField =
'oxcategories__oxtitle';
162 $sTitle = $oCat->$sTitleField->getRawValue() .
" " . $sSuffix;
183 if ($oArticle->oxarticles__oxvendorid->value) {
184 $oVendor =
oxNew(
'oxvendor');
185 if ($oVendor->loadInLang($this->getEditLang(), $oArticle->oxarticles__oxvendorid->value)) {
186 return array($oVendor);
200 if ($oArticle->oxarticles__oxmanufacturerid->value) {
201 $oManufacturer =
oxNew(
'oxmanufacturer');
202 if ($oManufacturer->loadInLang($this->getEditLang(), $oArticle->oxarticles__oxmanufacturerid->value)) {
203 return array($oManufacturer);
218 $oArticleTagList =
oxNew(
"oxarticletaglist");
219 $oArticleTagList->setLanguage($iLang);
220 $oArticleTagList->load($oArticle->getId());
221 $aTagsList = array();
222 if (count($aTags = $oArticleTagList->getArray())) {
223 $sShopId = $this->
getConfig()->getShopId();
224 $iProdId = $oArticle->getId();
225 foreach ($aTags as $sTitle => $oTagObject) {
227 $oTag =
oxNew(
"oxManufacturer");
228 $oTag->setLanguage($iLang);
229 $oTag->setId(md5(strtolower($sShopId . $this->
_getStdUrl($iProdId,
"oxtag",
"tag", $iLang, $sTitle))));
230 $oTag->oxmanufacturers__oxtitle =
new oxField($sTitle);
231 $aTagsList[] = $oTag;
245 $oCat =
oxNew(
'oxcategory');
247 return ($oCat->load($this->getActCatId())) ? $oCat : null;
262 $oProduct =
oxNew(
'oxarticle');
266 foreach ($aList as $oTag) {
267 if ($oTag->getId() == $sTagId) {
268 return $oTag->getTitle();
281 $oVendor =
oxNew(
'oxvendor');
283 return ($this->
getActCatType() ==
'oxvendor' && $oVendor->load($this->getActCatId())) ? $oVendor : null;
293 $oManufacturer =
oxNew(
'oxmanufacturer');
296 return ($blLoaded) ? $oManufacturer : null;
309 case 'oxmanufacturer':
310 return 'manufacturer';
393 $oProduct =
oxNew(
'oxarticle');
394 if ($oProduct->load($this->getEditObjectId())) {
398 return $oEncoder->getArticleVendorUri($oProduct, $this->
getEditLang());
399 case 'oxmanufacturer':
400 return $oEncoder->getArticleManufacturerUri($oProduct, $this->
getEditLang());
402 return $oEncoder->getArticleTagUri($oProduct, $this->
getActCatLang());
405 return $oEncoder->getArticleUri($oProduct, $this->
getEditLang());
407 return $oEncoder->getArticleMainUri($oProduct, $this->
getEditLang());
424 protected function _getStdUrl($sOxid, $sCatType = null, $sListType = null, $iLang = null, $sTag = null)
426 $iLang = $iLang !== null ? $iLang : $this->
getEditLang();
427 $sCatType = $sCatType !== null ? $sCatType : $this->
getActCatType();
428 $sListType = $sListType !== null ? $sListType : $this->
getListType();
432 $aParams[
"listtype"] = $sListType;
435 $oProduct =
oxNew(
'oxarticle');
436 $oProduct->loadInLang($iLang, $sOxid);
443 case 'oxmanufacturer':
447 $aParams[
"searchtag"] = $sTag !== null ? $sTag : $this->
getTag();
456 return trim($oUtilsUrl->appendUrl($oProduct->getBaseStdLink($iLang,
true,
false), $aParams),
'&');
495 $iShopId = $this->
getConfig()->getShopId();
498 $sQ =
"select oxfixed from oxseo where
499 oxseo.oxobjectid = " . $oDb->quote($sId) .
" and
500 oxseo.oxshopid = '{$iShopId}' and oxseo.oxlang = {$iLang} and oxparams = " . $oDb->quote($sParam);
502 return (
bool)
oxDb::getDb()->getOne($sQ,
false,
false);