/** * 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; }
/** * Deletes Vendor seo entry * * @param oxVendor $vendor Vendor object */ public function onDeleteVendor($vendor) { $database = oxDb::getDb(); $vendorId = $vendor->getId(); $database->execute("delete from oxseo where oxobjectid = ? and oxtype = 'oxvendor'", array($vendorId)); $database->execute("delete from oxobject2seodata where oxobjectid = ?", array($vendorId)); $database->execute("delete from oxseohistory where oxobjectid = ?", array($vendorId)); }