/** * Returns part of SEO url excluding path * * @param oxVendor $oVendor vendor object * @param int $iLang language * @param bool $blRegenerate if TRUE forces seo url regeneration * * @return string */ public function getVendorUri($oVendor, $iLang = null, $blRegenerate = false) { if (!isset($iLang)) { $iLang = $oVendor->getLanguage(); } // load from db if ($blRegenerate || !($sSeoUrl = $this->_loadFromDb('oxvendor', $oVendor->getId(), $iLang))) { if ($iLang != $oVendor->getLanguage()) { $sId = $oVendor->getId(); $oVendor = oxNew('oxvendor'); $oVendor->loadInLang($iLang, $sId); } $sSeoUrl = ''; if ($oVendor->getId() != 'root') { if (!isset($this->_aRootVendorUri[$iLang])) { $oRootVendor = oxNew('oxvendor'); $oRootVendor->loadInLang($iLang, 'root'); $this->_aRootVendorUri[$iLang] = $this->getVendorUri($oRootVendor, $iLang); } $sSeoUrl .= $this->_aRootVendorUri[$iLang]; } $sSeoUrl .= $this->_prepareTitle($oVendor->oxvendor__oxtitle->value, false, $oVendor->getLanguage()) . '/'; $sSeoUrl = $this->_processSeoUrl($sSeoUrl, $oVendor->getId(), $iLang); // save to db $this->_saveToDb('oxvendor', $oVendor->getId(), $oVendor->getBaseStdLink($iLang), $sSeoUrl, $iLang); } return $sSeoUrl; }
/** * Encodes vendor category URLs into SEO format. * * @param oxVendor $vendor Vendor object * @param int $languageId Language id * * @return null */ public function getVendorUrl($vendor, $languageId = null) { if (!isset($languageId)) { $languageId = $vendor->getLanguage(); } return $this->_getFullUrl($this->getVendorUri($vendor, $languageId), $languageId); }