OpenCart 🇺🇦

Схема

public mixed updateCurrencies ( $force = false )

Аргументы

Аргумент Возможный тип Описание
$force = false

Описание

Метод пока еще не документирован.

Исходный код

if (extension_loaded('curl')) {
	$data = array();

	if ($force) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "currency WHERE code != '" . $this->db->escape($this->config->get('config_currency')) . "'");
	} else {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "currency WHERE code != '" . $this->db->escape($this->config->get('config_currency')) . "' AND date_modified < '" .  $this->db->escape(date('Y-m-d H:i:s', strtotime('-1 day'))) . "'");
	}

	foreach ($query->rows as $result) {
		$data[] = $this->config->get('config_currency') . $result['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);
	curl_setopt($curl, CURLOPT_HEADER, false);
	curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
	curl_setopt($curl, CURLOPT_TIMEOUT, 30);

	$content = curl_exec($curl);

	curl_close($curl);

	$lines = explode("\n", trim($content));

	foreach ($lines as $line) {
		$currency = utf8_substr($line, 4, 3);
		$value = utf8_substr($line, 11, 6);

		if ((float)$value) {
			$this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '" . (float)$value . "', date_modified = '" .  $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = '" . $this->db->escape($currency) . "'");
		}
	}

	$this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '1.00000', date_modified = '" .  $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = '" . $this->db->escape($this->config->get('config_currency')) . "'");

	$this->cache->delete('currency');
}