Go to the documentation of this file.00001 <?php
00002
00007 class oxUserBasketItem extends oxBase
00008 {
00014 protected $_sClassName = 'oxuserbasketitem';
00015
00021 protected $_oArticle = null;
00022
00028 protected $_blParentBuyable = false;
00029
00035 protected $_aSelList = null;
00036
00040 public function __construct()
00041 {
00042 $this->setVariantParentBuyable( $this->getConfig()->getConfigParam( 'blVariantParentBuyable' ) );
00043 parent::__construct();
00044 $this->init( 'oxuserbasketitems' );
00045 }
00046
00054 public function setVariantParentBuyable( $blBuyable = false )
00055 {
00056 $this->_blParentBuyable = $blBuyable;
00057 }
00058
00068 public function getArticle( $sItemKey )
00069 {
00070 if ( !$this->oxuserbasketitems__oxartid->value ) {
00071
00072 $oEx = oxNew( 'oxArticleException' );
00073 $oEx->setMessage( 'EXCEPTION_ARTICLE_NOPRODUCTID' );
00074 throw $oEx;
00075 }
00076
00077 if ( $this->_oArticle === null ) {
00078
00079 $this->_oArticle = oxNew( 'oxarticle' );
00080
00081
00082 if ( $this->_blParentBuyable ) {
00083 $this->_oArticle->setSkipAbPrice( true );
00084 $this->_oArticle->setNoVariantLoading( true );
00085 }
00086
00087 if ( !$this->_oArticle->load( $this->oxuserbasketitems__oxartid->value ) ) {
00088 return false;
00089 }
00090
00091 $aSelList = $this->getSelList();
00092 if ( ( $aSelectlist = $this->_oArticle->getSelectLists() ) && is_array( $aSelList ) ) {
00093 foreach ( $aSelList as $iKey => $iSel ) {
00094
00095 if ( isset( $aSelectlist[$iKey][$iSel] ) ) {
00096
00097 $aSelectlist[$iKey][$iSel] = clone $aSelectlist[$iKey][$iSel];
00098 $aSelectlist[$iKey][$iSel]->selected = 1;
00099 }
00100 }
00101 $this->_oArticle->setSelectlist( $aSelectlist );
00102 }
00103
00104 if ( $this->_oArticle->oxarticles__oxparentid->value ) {
00105 $oParent = oxNew( 'oxarticle' );
00106 if ( $oParent->load( $this->_oArticle->oxarticles__oxparentid->value ) ) {
00107 if ( $this->_oArticle->oxarticles__oxvarselect->value ) {
00108 $this->_oArticle->oxarticles__oxtitle->value .= ', '.$this->_oArticle->oxarticles__oxvarselect->value;
00109 }
00110 }
00111 }
00112
00113
00114 $this->_oArticle->setItemKey( $sItemKey );
00115 }
00116
00117 return $this->_oArticle;
00118
00119 }
00120
00126 public function __sleep()
00127 {
00128 $aRet = array();
00129 foreach ( get_object_vars( $this ) as $sKey => $sVar ) {
00130 if ( $sKey != '_oArticle' ) {
00131 $aRet[] = $sKey;
00132 }
00133 }
00134 return $aRet;
00135 }
00136
00142 public function getSelList()
00143 {
00144 if ( $this->_aSelList == null && $this->oxuserbasketitems__oxsellist->value ) {
00145 $this->_aSelList = unserialize( $this->oxuserbasketitems__oxsellist->value );
00146 }
00147
00148 return $this->_aSelList;
00149 }
00150
00158 public function setSelList( $aSelList )
00159 {
00160 $this->oxuserbasketitems__oxsellist = new oxField(serialize( $aSelList ), oxField::T_RAW);
00161 }
00162
00172 protected function _setFieldData( $sFieldName, $sValue, $iDataType = oxField::T_TEXT)
00173 {
00174 if ('oxsellist' === strtolower($sFieldName) || 'oxuserbasketitems__oxsellist' === strtolower($sFieldName)) {
00175 $iDataType = oxField::T_RAW;
00176 }
00177 return parent::_setFieldData($sFieldName, $sValue, $iDataType);
00178 }
00179 }