00001 <?php
00002
00007 class User extends oxUBase
00008 {
00013 protected $_sThisTemplate = 'user.tpl';
00014
00019 protected $_blIsOrderStep = true;
00020
00025 protected $_aMustFillFields = null;
00026
00031 protected $_blShowNoRegOpt = null;
00032
00037 protected $_oUser = null;
00038
00043 protected $_sSelectedAddress = null;
00044
00049 protected $_iOption = null;
00050
00055 protected $_oCountryList = null;
00056
00061 protected $_sOrderRemark = null;
00062
00067 protected $_sWishId = null;
00068
00077 public function render()
00078 {
00079 parent::render();
00080
00081 if ( ( $oUser = $this->getUser() ) ) {
00082
00083 if ( oxConfig::getParameter( 'blshowshipaddress' ) ) {
00084
00085 $this->showShipAddress();
00086 $this->getDelAddress();
00087 $this->_addFakeAddress( $oUser->getUserAddresses() );
00088 }
00089 }
00090
00091 $this->_aViewData['blshowshipaddress'] = $this->showShipAddress();
00092 $this->_aViewData['delivadr'] = $this->getDelAddress();
00093 $this->_aViewData['blnewssubscribed'] = $this->isNewsSubscribed();
00094
00095 $this->_aViewData['order_remark'] = $this->getOrderRemark();
00096
00097 $this->_aViewData['oxcountrylist'] = $this->getCountryList();
00098
00099 $this->_aViewData['iOption'] = $this->getLoginOption();
00100
00101 $this->_aViewData['blshownoregopt'] = $this->getShowNoRegOption();
00102
00103 $this->_aViewData['aMustFillFields'] = $this->getMustFillFields();
00104
00105 return $this->_sThisTemplate;
00106 }
00107
00113 protected function _getWishListId()
00114 {
00115 $this->_sWishId = null;
00116
00117
00118 $this->_sWishId = false;
00119
00120 $oBasket = $this->getSession()->getBasket();
00121 foreach ( $oBasket->getContents() as $oBasketItem ) {
00122 if ( $this->_sWishId = $oBasketItem->getWishId() ) {
00123
00124 break;
00125 }
00126 }
00127 return $this->_sWishId;
00128 }
00129
00137 protected function _addFakeAddress( $oAddresses )
00138 {
00139
00140 $oDefAddress = new oxStdClass();
00141 $oDefAddress->oxaddress__oxid = new oxStdClass();
00142 $oDefAddress->oxaddress__oxid->value = -2;
00143 $oDefAddress->oxaddress__oxfname = new oxStdClass();
00144 $oDefAddress->oxaddress__oxfname->value = '-';
00145 $oDefAddress->oxaddress__oxlname = new oxStdClass();
00146 $oDefAddress->oxaddress__oxlname->value = '-';
00147 $oDefAddress->oxaddress__oxcity = new oxStdClass();
00148 $oDefAddress->oxaddress__oxcity->value = '-';
00149
00150 $oAddresses->offsetSet( $oAddresses->count(), $oDefAddress );
00151 }
00152
00158 protected function _getActiveUser()
00159 {
00160 if ( $this->_oUser === null ) {
00161 $this->_oUser = false;
00162 if ( $oUser = $this->getUser() ) {
00163 $this->_oUser = $oUser;
00164 }
00165 }
00166 return $this->_oUser;
00167 }
00168
00174 protected function _getSelectedAddress()
00175 {
00176 if ( $this->_sSelectedAddress === null ) {
00177 $this->_sSelectedAddress = false;
00178 if ( $oUser = $this->_getActiveUser() ) {
00179 $this->_sSelectedAddress = $oUser->getSelectedAddress( $this->_getWishListId() );
00180 }
00181 }
00182 return $this->_sSelectedAddress;
00183 }
00184
00190 public function getMustFillFields()
00191 {
00192
00193 if ( $this->_aMustFillFields === null ) {
00194 $this->_aMustFillFields = false;
00195 $aMustFillFields = $this->getConfig()->getConfigParam( 'aMustFillFields');
00196 if ( is_array( $aMustFillFields ) ) {
00197 $this->_aMustFillFields = array_flip( $aMustFillFields );
00198 }
00199 }
00200 return $this->_aMustFillFields;
00201 }
00202
00208 public function getShowNoRegOption()
00209 {
00210 if ( $this->_blShowNoRegOpt === null ) {
00211 $this->_blShowNoRegOpt = !$this->getConfig()->getConfigParam( 'blOrderDisWithoutReg' );
00212 }
00213 return $this->_blShowNoRegOpt;
00214 }
00215
00221 public function getLoginOption()
00222 {
00223 if ( $this->_iOption === null ) {
00224
00225 $iOption = oxConfig::getParameter( 'option' );
00226
00227 if ( $iOption == 2 && !$this->_getActiveUser() ) {
00228 $iOption = 0;
00229 }
00230 $this->_iOption = $iOption;
00231 }
00232 return $this->_iOption;
00233 }
00234
00240 public function getCountryList()
00241 {
00242 if ( $this->_oCountryList === null ) {
00243 $this->_oCountryList = false;
00244
00245 $oCountryList = oxNew( 'oxcountrylist' );
00246 $oCountryList->loadActiveCountries();
00247 if ( $oCountryList->count() ) {
00248 $this->_oCountryList = $oCountryList;
00249 }
00250 }
00251 return $this->_oCountryList;
00252 }
00253
00259 public function getOrderRemark()
00260 {
00261 if ( $this->_sOrderRemark === null ) {
00262 $this->_sOrderRemark = false;
00263 if ( $sOrderRemark = oxSession::getVar( 'ordrem' ) ) {
00264 $this->_sOrderRemark = $sOrderRemark;
00265 } elseif ($sOrderRemark = oxConfig::getParameter( 'order_remark' )) {
00266 $this->_sOrderRemark = $sOrderRemark;
00267 }
00268 }
00269 return $this->_sOrderRemark;
00270 }
00271
00277 public function isNewsSubscribed()
00278 {
00279 if ( $this->_blNewsSubscribed === null ) {
00280 $blNews = false;
00281 if ( ( $blNews = oxConfig::getParameter( 'blnewssubscribed' ) ) === null ) {
00282 $blNews = true;
00283 }
00284 if ( ( $oUser = $this->_getActiveUser() ) ) {
00285 $blNews = $oUser->getNewsSubscription()->getOptInStatus();
00286 }
00287 $this->_blNewsSubscribed = $blNews;
00288 }
00289 return $this->_blNewsSubscribed;
00290 }
00291
00299 public function setShowShipAddress( $blShowShipAddress )
00300 {
00301
00302
00303 }
00304
00310 public function showShipAddress()
00311 {
00312 if ( $this->_blShowShipAddress === null ) {
00313 $sAddressId = (int) oxConfig::getParameter( 'oxaddressid' );
00314 $this->_blShowShipAddress = ( $sAddressId == -2 ) ? 0 : oxConfig::getParameter( 'blshowshipaddress' );
00315
00316 if ( ( $oUser = $this->_getActiveUser() ) ) {
00317
00318 if ( $sWishId = $this->_getWishListId() ) {
00319
00320 if ( $sWishId && oxSession::getVar( 'blshowshipaddress' ) === null ) {
00321
00322 oxSession::setVar( 'blshowshipaddress', 1 );
00323 $this->_blShowShipAddress = 1;
00324 }
00325 }
00326
00327 if ( oxConfig::getParameter( 'blshowshipaddress' ) ) {
00328 $sAddressId = $this->_getSelectedAddress();
00329 if ( '-2' == $sAddressId ) {
00330
00331 oxSession::setVar( 'blshowshipaddress', 0 );
00332 $this->_blShowShipAddress = 0;
00333
00334 oxSession::deleteVar( 'deladdrid' );
00335 }
00336 }
00337 }
00338 }
00339 return $this->_blShowShipAddress;
00340 }
00341
00349 public function setDelAddress( $oDelAddress )
00350 {
00351
00352 }
00353
00359 public function getDelAddress()
00360 {
00361 if ( $this->_oDelAddress === null ) {
00362 $this->_oDelAddress = false;
00363 if ( $this->showShipAddress() ) {
00364 $sAddressId = $this->_getSelectedAddress();
00365 if ( $sAddressId && $sAddressId != '-1' ) {
00366 $oAdress = oxNew( 'oxbase' );
00367 $oAdress->init( 'oxaddress' );
00368 if ( $oAdress->load( $sAddressId ) ) {
00369 $this->_oDelAddress = $oAdress;
00370 }
00371 }
00372 }
00373 }
00374 return $this->_oDelAddress;
00375 }
00376
00377 }