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 break; 00066 } 00067 return parent::__get( $sName ); 00068 } 00069 00073 public function __construct() 00074 { 00075 parent::__construct(); 00076 $this->init( 'oxcontents' ); 00077 } 00078 00084 public function getExpanded() 00085 { 00086 if ( !isset( $this->_blExpanded ) ) { 00087 $this->_blExpanded = ( $this->getId() == oxConfig::getParameter( 'oxcid' ) ); 00088 } 00089 return $this->_blExpanded; 00090 } 00091 00099 public function loadByIdent( $sLoadId ) 00100 { 00101 $sSelect = $this->buildSelectString( array( 'oxcontents.oxloadid' => $sLoadId, 00102 'oxcontents.'.$this->getSqlFieldName( 'oxactive' ) => '1', 00103 'oxcontents.oxshopid' => $this->getConfig()->getShopId() ) ); 00104 00105 $sRes = $this->assignRecord( $sSelect ); 00106 return $sRes; 00107 } 00108 00116 public function assign( $dbRecord ) 00117 { 00118 00119 parent::assign( $dbRecord ); 00120 $this->oxcontents__oxcontent->setValue(str_replace( '&', '&', $this->oxcontents__oxcontent->value ), oxField::T_RAW); 00121 $this->getLink(); 00122 } 00123 00132 public function getLink($iLang = null) 00133 { 00134 if (isset($iLang)) { 00135 $iLang = (int) $iLang; 00136 if ($iLang == (int) $this->getLanguage()) { 00137 $iLang = null; 00138 } 00139 } 00140 if ( $this->_sNoparamlink === null || isset($iLang) ) { 00141 if ( oxUtils::getInstance()->seoIsActive() ) { 00142 $sNoparamlink = oxSeoEncoderContent::getInstance()->getContentUrl( $this, $iLang ); 00143 } else { 00144 $sNoparamlink = $this->getStdLink($iLang); 00145 } 00146 00147 if (isset($iLang)) { 00148 return $sNoparamlink; 00149 } else { 00150 $this->_sNoparamlink = $sNoparamlink; 00151 } 00152 } 00153 00154 return $this->_sNoparamlink; 00155 } 00156 00164 public function getStdLink($iLang = null) 00165 { 00166 $sAdd = ''; 00167 00168 if (isset($iLang) && !oxUtils::getInstance()->seoIsActive()) { 00169 $iLang = (int) $iLang; 00170 if ($iLang != (int) $this->getLanguage()) { 00171 $sAdd .= "&lang={$iLang}"; 00172 } 00173 } 00174 if ($this->oxcontents__oxcatid->value && $this->oxcontents__oxcatid->value != 'oxrootid') { 00175 $sParentId = oxDb::getDb()->getOne("select oxparentid from oxcategories where oxid = '{$this->oxcontents__oxcatid->value}'"); 00176 if ($sParentId && 'oxrootid' != $sParentId) { 00177 $sAdd .= "&cnid=$sParentId"; 00178 } 00179 } 00180 return $this->getConfig()->getShopHomeURL() . "cl=content&oxcid=" . $this->getId() . $sAdd; 00181 } 00182 00192 protected function _setFieldData( $sFieldName, $sValue, $iDataType = oxField::T_TEXT) 00193 { 00194 if ('oxcontent' === strtolower($sFieldName) || 'oxcontents__oxcontent' === strtolower($sFieldName)) { 00195 $iDataType = oxField::T_RAW; 00196 } 00197 00198 return parent::_setFieldData($sFieldName, $sValue, $iDataType); 00199 } 00200 00208 public function delete( $sOXID = null) 00209 { 00210 if (parent::delete($sOXID)) { 00211 oxSeoEncoderContent::getInstance()->onDeleteContent($this); 00212 return true; 00213 } 00214 return false; 00215 } 00216 }