00001 <?php
00002
00011 class Pricealarm extends oxUBase
00012 {
00017 protected $_sThisTemplate = 'pricealarm.tpl';
00018
00023 protected $_oArticle = null;
00024
00029 protected $_sBidPrice = null;
00030
00035 protected $_iPriceAlarmStatus = null;
00036
00046 public function render()
00047 {
00048 parent::render();
00049
00050 $this->_aViewData['product'] = $this->getProduct();
00051 $this->_aViewData['bidprice'] = $this->getBidPrice();
00052 $this->_aViewData['success'] = $this->getPriceAlarmStatus();
00053
00054 return $this->_sThisTemplate;
00055 }
00056
00069 public function addme()
00070 {
00071 $myConfig = $this->getConfig();
00072 $myUtils = oxUtils::getInstance();
00073
00074
00075 $sMac = oxConfig::getParameter( 'c_mac' );
00076 $sMacHash = oxConfig::getParameter( 'c_mach' );
00077 $oCaptcha = oxNew('oxCaptcha');
00078 if (!$oCaptcha->pass($sMac, $sMacHash)) {
00079 $this->_iPriceAlarmStatus = 2;
00080 return;
00081 }
00082
00083
00084
00085 $aParams = oxConfig::getParameter( 'pa' );
00086 if ( !isset( $aParams['email'] ) || !$myUtils->isValidEmail( $aParams['email'] ) ) {
00087 $this->_iPriceAlarmStatus = 0;
00088 return;
00089 }
00090
00091 $oCur = $myConfig->getActShopCurrencyObject();
00092
00093 $dPrice = $myUtils->currency2Float( $aParams['price'] );
00094
00095 $oAlarm = oxNew( "oxpricealarm" );
00096 $oAlarm->oxpricealarm__oxuserid = new oxField( oxSession::getVar( 'usr' ));
00097 $oAlarm->oxpricealarm__oxemail = new oxField( $aParams['email']);
00098 $oAlarm->oxpricealarm__oxartid = new oxField( $aParams['aid']);
00099 $oAlarm->oxpricealarm__oxprice = new oxField( $myUtils->fRound( $dPrice, $oCur ));
00100 $oAlarm->oxpricealarm__oxshopid = new oxField( $myConfig->getShopId());
00101 $oAlarm->oxpricealarm__oxcurrency = new oxField( $oCur->name);
00102
00103 $oAlarm->oxpricealarm__oxlang = new oxField(oxLang::getInstance()->getBaseLanguage());
00104
00105 $oAlarm->save();
00106
00107
00108 $oEmail = oxNew( 'oxemail' );
00109 $this->_iPriceAlarmStatus = (int) $oEmail->sendPricealarmNotification( $aParams, $oAlarm );
00110 }
00111
00117 public function getBidPrice()
00118 {
00119 if ( $this->_sBidPrice === null ) {
00120 $this->_sBidPrice = false;
00121
00122 $aParams = $this->_getParams();
00123 $oCur = $this->getConfig()->getActShopCurrencyObject();
00124 $iPrice = oxUtils::getInstance()->currency2Float( $aParams['price'] );
00125 $this->_sBidPrice = oxLang::getInstance()->formatCurrency( $iPrice, $oCur );
00126 }
00127 return $this->_sBidPrice;
00128 }
00129
00135 public function getProduct()
00136 {
00137 if ( $this->_oArticle === null ) {
00138 $this->_oArticle = false;
00139 $aParams = $this->_getParams();
00140 $oArticle = oxNew( 'oxarticle' );
00141 $oArticle->load( $aParams['aid'] );
00142 $this->_oArticle = $oArticle;
00143 }
00144 return $this->_oArticle;
00145 }
00146
00152 private function _getParams()
00153 {
00154 return oxConfig::getParameter( 'pa' );
00155 }
00156
00162 public function getPriceAlarmStatus()
00163 {
00164 return $this->_iPriceAlarmStatus;
00165 }
00166
00167 }