00001 <?php 00002 00008 class oxContent extends oxI18n 00009 { 00015 protected $_sCoreTbl = 'oxcontents'; 00016 00022 protected $_sClassName = 'oxcontent'; 00023 00030 protected $_aSkipSaveFields = array( 'oxtimestamp' ); 00031 00037 protected $_sNoparamlink = null; 00038 00044 protected $_blExpanded = null; 00045 00051 protected $_blIsSeoObject = true; 00052 00060 public function __get( $sName ) 00061 { 00062 switch ( $sName ) { 00063 case 'expanded': 00064 return $this->getExpanded(); 00065 } 00066 return parent::__get( $sName ); 00067 } 00068 00072 public function __construct() 00073 { 00074 parent::__construct(); 00075 $this->init( 'oxcontents' ); 00076 } 00077 00083 public function getExpanded() 00084 { 00085 if ( !isset( $this->_blExpanded ) ) { 00086 $this->_blExpanded = ( $this->getId() == oxConfig::getParameter( 'oxcid' ) ); 00087 } 00088 return $this->_blExpanded; 00089 } 00090 00098 public function loadByIdent( $sLoadId ) 00099 { 00100 $sSelect = $this->buildSelectString( array( 'oxcontents.oxloadid' => $sLoadId, 00101 'oxcontents.'.$this->getSqlFieldName( 'oxactive' ) => '1', 00102 'oxcontents.oxshopid' => $this->getConfig()->getShopId() ) ); 00103 00104 $sRes = $this->assignRecord( $sSelect ); 00105 return $sRes; 00106 } 00107 00115 public function assign( $dbRecord ) 00116 { 00117 00118 parent::assign( $dbRecord ); 00119 $this->oxcontents__oxcontent->setValue(str_replace( '&', '&', $this->oxcontents__oxcontent->value ), oxField::T_RAW); 00120 $this->getLink(); 00121 } 00122 00131 public function getLink($iLang = null) 00132 { 00133 if (isset($iLang)) { 00134 $iLang = (int) $iLang; 00135 if ($iLang == (int) $this->getLanguage()) { 00136 $iLang = null; 00137 } 00138 } 00139 if ( $this->_sNoparamlink === null || isset($iLang) ) { 00140 if ( oxUtils::getInstance()->seoIsActive() ) { 00141 $sNoparamlink = oxSeoEncoderContent::getInstance()->getContentUrl( $this, $iLang ); 00142 } else { 00143 $sNoparamlink = $this->getStdLink($iLang); 00144 } 00145 00146 if (isset($iLang)) { 00147 return $sNoparamlink; 00148 } else { 00149 $this->_sNoparamlink = $sNoparamlink; 00150 } 00151 } 00152 00153 return $this->_sNoparamlink; 00154 } 00155 00163 public function getStdLink($iLang = null) 00164 { 00165 $sAdd = ''; 00166 00167 if (isset($iLang) && !oxUtils::getInstance()->seoIsActive()) { 00168 $iLang = (int) $iLang; 00169 if ($iLang != (int) $this->getLanguage()) { 00170 $sAdd .= "&lang={$iLang}"; 00171 } 00172 } 00173 if ($this->oxcontents__oxcatid->value && $this->oxcontents__oxcatid->value != 'oxrootid') { 00174 $sParentId = oxDb::getDb()->getOne("select oxparentid from oxcategories where oxid = '{$this->oxcontents__oxcatid->value}'"); 00175 if ($sParentId && 'oxrootid' != $sParentId) { 00176 $sAdd .= "&cnid=$sParentId"; 00177 } 00178 } 00179 return $this->getConfig()->getShopHomeURL() . "cl=content&oxcid=" . $this->getId() . $sAdd; 00180 } 00181 00191 protected function _setFieldData( $sFieldName, $sValue, $iDataType = oxField::T_TEXT) 00192 { 00193 if ('oxcontent' === strtolower($sFieldName) || 'oxcontents__oxcontent' === strtolower($sFieldName)) { 00194 $iDataType = oxField::T_RAW; 00195 } 00196 00197 return parent::_setFieldData($sFieldName, $sValue, $iDataType); 00198 } 00199 00207 public function delete( $sOXID = null) 00208 { 00209 if (parent::delete($sOXID)) { 00210 oxSeoEncoderContent::getInstance()->onDeleteContent($this); 00211 return true; 00212 } 00213 return false; 00214 } 00215 }