Go to the documentation of this file.00001 <?php
00002
00006 class Object_Seo extends oxAdminDetails
00007 {
00015 public function render()
00016 {
00017 parent::render();
00018
00019 if ( $sType = $this->_getType() ) {
00020 $oObject = oxNew( $sType );
00021 if ( $oObject->load( $this->getEditObjectId() ) ) {
00022 $oOtherLang = $oObject->getAvailableInLangs();
00023 if ( !isset( $oOtherLang[$iLang] ) ) {
00024 $oObject->loadInLang( key( $oOtherLang ), $this->getEditObjectId() );
00025 }
00026 $this->_aViewData['edit'] = $oObject;
00027 }
00028
00029 }
00030
00031 $iLang = $this->getEditLang();
00032 $aLangs = oxRegistry::getLang()->getLanguageNames();
00033 foreach ( $aLangs as $sLangId => $sLanguage ) {
00034 $oLang = new stdClass();
00035 $oLang->sLangDesc = $sLanguage;
00036 $oLang->selected = ( $sLangId == $iLang );
00037 $this->_aViewData['otherlang'][$sLangId] = clone $oLang;
00038 }
00039
00040 return 'object_seo.tpl';
00041 }
00042
00048 public function save()
00049 {
00050
00051 if ( ( $sOxid = $this->_getSaveObjectId() ) ) {
00052 $aSeoData = oxConfig::getParameter( 'aSeoData' );
00053 $iShopId = $this->getConfig()->getShopId();
00054 $iLang = $this->getEditLang();
00055
00056
00057 if ( !isset( $aSeoData['oxfixed'] ) ) {
00058 $aSeoData['oxfixed'] = 0;
00059 }
00060
00061 $oEncoder = $this->_getEncoder();
00062
00063
00064 $oEncoder->markAsExpired( $sOxid, $iShopId, 1, $iLang );
00065
00066
00067 $oEncoder->addSeoEntry( $sOxid, $iShopId, $iLang, $this->_getStdUrl( $sOxid ),
00068 $aSeoData['oxseourl'], $this->_getSeoEntryType(), $aSeoData['oxfixed'],
00069 trim( $aSeoData['oxkeywords'] ), trim( $aSeoData['oxdescription'] ), $this->processParam( $aSeoData['oxparams'] ), true, $this->_getAltSeoEntryId() );
00070 }
00071 }
00072
00078 protected function _getSaveObjectId()
00079 {
00080 return $this->getEditObjectId();
00081 }
00082
00090 public function getEntryMetaData( $sMetaType )
00091 {
00092 return $this->_getEncoder()->getMetaData( $this->getEditObjectId(), $sMetaType, $this->getConfig()->getShopId(), $this->getEditLang() );
00093 }
00094
00100 public function isEntryFixed()
00101 {
00102 $iLang = (int) $this->getEditLang();
00103 $iShopId = $this->getConfig()->getShopId();
00104
00105 $sQ = "select oxfixed from oxseo where
00106 oxseo.oxobjectid = ".oxDb::getDb()->quote( $this->getEditObjectId() )." and
00107 oxseo.oxshopid = '{$iShopId}' and oxseo.oxlang = {$iLang} and oxparams = '' ";
00108 return (bool) oxDb::getDb()->getOne( $sQ, false, false );
00109 }
00110
00116 protected function _getType()
00117 {
00118 }
00119
00127 protected function _getStdUrl( $sOxid )
00128 {
00129 if ( $sType = $this->_getType() ) {
00130 $oObject = oxNew( $sType );
00131 if ( $oObject->load( $sOxid ) ) {
00132 return $oObject->getBaseStdLink( $this->getEditLang(), true, false );
00133 }
00134 }
00135 }
00136
00142 public function getEditLang()
00143 {
00144 return $this->_iEditLang;
00145 }
00146
00152 protected function _getAltSeoEntryId()
00153 {
00154 }
00155
00161 protected function _getSeoEntryType()
00162 {
00163 return $this->_getType();
00164 }
00165
00173 public function processParam( $sParam )
00174 {
00175 return $sParam;
00176 }
00177
00183 protected function _getEncoder()
00184 {
00185 }
00186
00192 public function getEntryUri()
00193 {
00194 }
00195
00201 public function isEntrySuffixed()
00202 {
00203 return false;
00204 }
00205
00211 public function isSuffixSupported()
00212 {
00213 return false;
00214 }
00215
00221 public function showCatSelect()
00222 {
00223 return false;
00224 }
00225
00231 public function getActCatType()
00232 {
00233 return false;
00234 }
00235
00236 }