00001 <?php
00002
00007 class oxcmp_cur extends oxView
00008 {
00013 public $aCurrencies = null;
00014
00019 protected $_oActCur = null;
00020
00025 protected $_blIsComponent = true;
00026
00038 public function init()
00039 {
00040
00041 $myConfig = $this->getConfig();
00042 if ( !$myConfig->getConfigParam( 'bl_perfLoadCurrency' ) ) {
00043
00044 $aCurrencies = $myConfig->getCurrencyArray();
00045 $this->_oActCur = current( $aCurrencies );
00046 return;
00047 }
00048
00049 $iCur = oxConfig::getParameter( 'cur' );
00050 if ( isset( $iCur ) ) {
00051 $aCurrencies = $myConfig->getCurrencyArray();
00052 if (!isset( $aCurrencies[$iCur] ) ) {
00053 $iCur = 0;
00054 }
00055
00056
00057 $myConfig->setActShopCurrency( $iCur );
00058
00059
00060 $oBasket = $this->getSession()->getBasket();
00061
00062 $oBasket->onUpdate();
00063 }
00064
00065 $iActCur = $myConfig->getShopCurrency();
00066 $this->aCurrencies = $myConfig->getCurrencyArray( $iActCur );
00067
00068 $this->_oActCur = $this->aCurrencies[$iActCur];
00069
00070
00071 if ( !isset( $oBasket ) ) {
00072 $oBasket = $this->getSession()->getBasket();
00073 }
00074
00075 $oBasket->setBasketCurrency( $this->_oActCur );
00076
00077 $sClass = $this->getConfig()->getActiveView()->getClassName();
00078 $sURL = $myConfig->getShopCurrentURL();
00079 $sURL .= "cl={$sClass}";
00080
00081
00082
00083 $sVal = oxConfig::getParameter( 'fnc' );
00084 $aFnc = array( 'tobasket', 'login_noredirect', 'addVoucher' );
00085 if ( $sVal && in_array( $sVal, $aFnc ) ) {
00086 $sVal = '';
00087 }
00088
00089 if ( $sVal ) {
00090 $sURL .= "&fnc={$sVal}";
00091 }
00092
00093
00094 if ( $sVal = oxConfig::getParameter( 'cnid' ) ) {
00095 $sURL .= "&cnid={$sVal}";
00096 }
00097
00098
00099 if ( $sVal= oxConfig::getParameter( 'anid' ) ) {
00100 $sURL .= "&anid={$sVal}";
00101 }
00102
00103
00104 if ( $sVal = basename( oxConfig::getParameter( 'tpl' ) ) ) {
00105 $sURL .= "&tpl={$sVal}";
00106 }
00107
00108
00109 $iPgNr = ( int ) oxConfig::getParameter( 'pgNr' );
00110 if ( $iPgNr > 0 ) {
00111 $sURL .= "&pgNr={$iPgNr}";
00112 }
00113
00114
00115
00116 if ( $sVal = rawurlencode( oxConfig::getParameter( 'searchparam', true ) ) ) {
00117 $sURL .= "&searchparam={$sVal}";
00118 }
00119
00120
00121 if ( $sVal = oxConfig::getParameter( 'searchcnid' ) ) {
00122 $sURL .= "&searchcnid={$sVal}";
00123 }
00124
00125
00126 if ( $sVal = oxConfig::getParameter( 'searchvendor' ) ) {
00127 $sURL .= "&searchvendor={$sVal}";
00128 }
00129
00130
00131 if ( $sVal = oxConfig::getParameter( 'searchmanufacturer' ) ) {
00132 $sURL .= "&searchmanufacturer={$sVal}";
00133 }
00134
00135 reset( $this->aCurrencies );
00136 while ( list( , $oItem ) = each( $this->aCurrencies ) ) {
00137 $oItem->link = "{$sURL}&cur={$oItem->id}";
00138 }
00139
00140 parent::init();
00141 }
00142
00152 public function render()
00153 {
00154 parent::render();
00155 $this->_oParent->setActCurrency( $this->_oActCur );
00156
00157 $this->_oParent->addTplParam( 'currency', $this->_oParent->getActCurrency() );
00158 return $this->aCurrencies;
00159 }
00160 }