File manager - Edit - /home/jardides/www/Jardi-design/old/administrator/components/com_j2store/models/currencies.php
Back
<?php /** * @package J2Store * @copyright Copyright (c)2014-17 Ramesh Elamathi / J2Store.org * @license GNU GPL v3 or later */ // No direct access to this file defined('_JEXEC') or die; require_once JPATH_ADMINISTRATOR.'/components/com_j2store/helpers/utilities.php'; class J2StoreModelCurrencies extends F0FModel { /** * This method runs before the $data is saved to the $table. Return false to * stop saving. * * @param array &$data The data to save * @param F0FTable &$table The table to save the data to * * @return boolean Return false to prevent saving, true to allow it */ protected function onBeforeSave(&$data, &$table) { if(!empty($data['currency_code'])) { $data['currency_numeric_code'] = J2Store::currency()->getCurrenciesNumericCode($data['currency_code']); if(empty($data['j2store_currency_id'])){ $app = JFactory::getApplication(); $currency = F0FTable::getAnInstance('Currency', 'J2StoreTable'); $currency->load(array( 'currency_code' => $data['currency_code'] )); if($currency->j2store_currency_id > 0){ $message = JText::_("J2STORE_CURRENCY_CODE_ALREADY_EXIST"); $app->enqueueMessage($message,'error'); return false; } } } return true; } protected function onAfterSave(&$table) { $store = J2Store::storeProfile(); if($store->get('config_currency_auto', 1)) { $this->updateCurrencies(false); } } public function updateCurrencies($force = false) { if (extension_loaded('curl')) { $store = J2Store::config(); //sanity check if($store->get('config_currency_auto', 1) != 1) return; $data = array(); $db = JFactory::getDbo(); //update the default currency $query = $db->getQuery(true); $query->update('#__j2store_currencies')->set('currency_value ='.$db->q('1.00000')) ->set('modified_on='.$db->q(date('Y-m-d H:i:s'))) ->where('currency_code='.$db->q($store->get('config_currency'))); $db->setQuery($query); try { $db->execute(); }catch(Exception $e) { $this->setError($e->getMessage()); } $query = $db->getQuery(true); $query->select('*')->from('#__j2store_currencies')->where('currency_code !='.$db->q($store->get('config_currency'))); if($force) { $nullDate = JFactory::getDbo( )->getNullDate( ); $query->where('(modified_on='. $db->q(date('Y-m-d H:i:s', strtotime('-1 day'))).' OR modified_on='.$db->q($nullDate).')'); } $db->setQuery($query); $rows = $db->loadAssocList(); foreach ($rows as $result) { $data[] = $store->get('config_currency') . $result['currency_code'] . '=X'; } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?s=' . implode(',', $data) . '&f=sl1&e=.csv'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $content = curl_exec($curl); curl_close($curl); $lines = explode("\n", trim($content)); foreach ($lines as $line) { $currency = JString::substr($line, 4, 3); $value = JString::substr($line, 11, 6); if ((float)$value) { $query = $db->getQuery(true); $query->update('#__j2store_currencies')->set('currency_value ='.$db->q((float)$value)) ->set('modified_on='.$db->q(date('Y-m-d H:i:s'))) ->where('currency_code='.$db->q($currency)); $db->setQuery($query); $db->query(); } } } } public function create_currency_by_code($code, $symbol) { //no records found. Dumb default data $item = F0FTable::getAnInstance('Currency', 'J2StoreTable'); $item->reset(); $item->j2store_currency_id = 0; $values = array(); $values['j2store_currency_id '] = null; $values['currency_title'] = $code; $values['currency_code'] = $code; $values['currency_position'] = 'pre'; $values['currency_symbol'] = $symbol; $values['currency_num_decimals'] = '2'; $values['currency_decimal'] = '.'; $values['currency_thousands'] = ','; $values['currency_value'] = '1.00000'; //default currency is one always $values['enabled'] = 1; $item->save($values); } public function getTableFields() { $tableName = $this->getTable()->getTableName(); static $sets; if ( !is_array( $sets) ) { $sets= array( ); } if(!isset($sets[$tableName])) { if (version_compare(JVERSION, '3.0', 'ge')) { $sets[$tableName] = $this->getDbo()->getTableColumns($tableName, true); } else { $fieldsArray = $this->getDbo()->getTableFields($tableName, true); $sets[$tableName] = array_shift($fieldsArray); } } return $sets[$tableName]; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings