-
Публікації
11 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем Olegich
-
-
Также озадачился данной проблемой. У меня вообще какие-то чудеса происходят. Реальность меняется на глазах.
Я пробовал убрать убрать часть кода в файле ВАШ_САЙТ\catalog\view\theme\maket\template\module\language.tpl
А именно удалил <?php echo $text_language; ?> в блоке <div id="language">
Конечный код:
<?php if (count($languages) > 1) { ?> <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data"> <div id="language"> <?php foreach ($languages as $language) { ?> <img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" title="<?php echo $language['name']; ?>" onclick="$('input[name=\'language_code\']').attr('value', '<?php echo $language['code']; ?>'); $(this).parent().parent().submit();" /> <?php } ?> <input type="hidden" name="language_code" value="" /> <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" /> </div> </form> <?php } ?>
но надпись "Язык" остается. Более того, если удалить все кроме самого блока <div id="language"> то все остается, да к тому же и работает переключение языков
<?php if (count($languages) > 1) { ?> <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data"> <div id="language"> </div> </form> <?php } ?>
Вот что в Fireиug выдает
Только после удаления блока <div id="language"> языки исчезают полностью.
Как такое может быть?
Разобрался. Дело в том, что у меня был установлен модуль SEO мультиязык PRO, который ввел меня в заблуждение. Удаление строки <?php echo $text_language; ?> нужно было делать в самом модуле.
-
Проверить не могу, поэтому попробуйте и напишите, что получилось.
1. Уберите изменения, сделанные по моему коду в admin/model/localisation/currency.php
2. В Ваш модуль перед
$default=$db->query("SELECT code FROM " . DB_PREFIX . "currency WHERE value='1.00000000'")->fetch(PDO::FETCH_ASSOC);
добавьте строки
$currency_fee = $this->config->get('config_currency_fee'); if (!isset($currency_fee)) { $currency_fee = 1.0;}
Если всё правильно, то в этой переменной будет введенный коэффициент конвертации.
3. Дальше используйте этот коэффициент в строках, где получаете соответствующие курсы
$conEUR = $price / $valEUR * $currency_fee; // Конвертация в евро; ...... $conUSD = $price / $valUSD * $currency_fee; // Конвертация в доллар;
Если написать так и коэффициент больше единицы, то вы "повысите" курс гривны. Остальное - по аналогии.
Ругается на изменения по второму пункту:
-
Спасибо, все заработало.
-
для хитов и прочих модулей кроме рекомендуемых нужно писать не product_info а result
$this->data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($result['product_id']);
Что то ему не нравится. Ошибка
Notice: Undefined index: attribute_groups in... ...template\module\bestseller.tpl on line 20
bestseller.tpl
<div class="attributeModule"> <?php if ($product['attribute_groups']) { ?> <?php foreach ($product['attribute_groups'] as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php echo $attribute['text']; ?> <?php } ?> <?php } ?> <?php } ?> </div>
bestseller.php
foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $setting['image_width'], $setting['image_height']); } else { $image = false; } $this->data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($result['product_id']); if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_review_status')) { $rating = $result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'price' => $price, 'special' => $special, 'rating' => $rating, 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']), ); }
-
Верь в себя и в свою цель... В контроллере я вставил примерно сюда:
if ($product_info) { if ($product_info['image']) { $image = $this->model_tool_image->resize($product_info['image'], $setting['image_width'], $setting['image_height']); } else { $image = false; } $this->data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($product_info['product_id']); if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$product_info['special']) { $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; }
Спасибо. Все сделал и работает с модулем "Рекомендуемые". Попробовал тоже самое сделать с модулями "Последние" и "Хиты продаж". Увы фокус не получился. Ошибка :(
У меня на главной выводятся три эти модуля, разметка у них должна быть одинаковая.
-
Установил currency_fee от mrvira.
У меня вопрос. Как привязать фикс к файлу currency_uah.php ? Обновление идет с нужно мне банка. Файл размещается в корне сайта и запускается по расписанию. При этом отключается автоматическое обновление курсов в админке.
/**
* @Author Spy-Reality
* @Date of creation 14.03.2014
* @Date of renovation 16.08.2014
* @Site http://spy-reality.in.ua
* Парсер керса валют с ПРИВАТ 24 в OPENCART
*/
// Подключение к БД
include 'config.php';
$dbhost = DB_HOSTNAME;
$dbuser = DB_USERNAME;
$dbpass = DB_PASSWORD;
$dbname = DB_DATABASE;
$sqlchar='utf8';
$db = new PDO ( 'mysql:host=' . $dbhost . ';dbname=' . $dbname, $dbuser, $dbpass);
$db->query ( 'SET character_set_connection = '.$sqlchar );
$db->query ( 'SET character_set_client = '.$sqlchar );
$db->query ( 'SET character_set_results = '.$sqlchar );
$default=$db->query("SELECT code FROM " . DB_PREFIX . "currency WHERE value='1.00000000'")->fetch(PDO::FETCH_ASSOC);
if($default['code']== 'UAH'){
$xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
$price=1; // одна гривна;
$eur=$xml->xpath('//exchangerate[@ccy=EUR]');
$codEUR=$eur[0]->attributes()->ccy;
$valEUR=$eur[0]->attributes()->sale;
$conEUR=$price/$valEUR; // Корвентация в евро;
$usd=$xml->xpath('//exchangerate[@ccy=USD]');
$codUSD=$usd[0]->attributes()->ccy;
$valUSD=$usd[0]->attributes()->sale;
$conUSD=$price/$valUSD; // Конвертация в доллар;
$rub=$xml->xpath('//exchangerate[@ccy=RUR]');
$codRUB=$rub[0]->attributes()->ccy;
$valRUB=$rub[0]->attributes()->sale;
$conRUB=$price/$valRUB; // Конвертация в рубль;
$pln=$xml->xpath('//exchangerate[@ccy=PLZ]');
$codPLN=$pln[0]->attributes()->ccy;
$valPLN=$pln[0]->attributes()->sale;
$conPLN=$price/$valPLN; // Корвентация в злотый;
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');
$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
//echo $row['code'] ;
switch ($row['code']){
case 'UAH':
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" . $date . "' WHERE code = 'UAH'");
break;
case $codEUR:
if($valEUR==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conEUR, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codEUR . "'");
}else{
echo "Валюта EUR не обновлена (нет курса)
";
}
break;
case $codRUB:
if($valRUB==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conRUB, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codRUB . "'");
}else{
echo "Валюта RUB не обновлена (нет курса)
";
}
break;
case $codUSD:
if($valUSD==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conUSD, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codUSD . "'");
}else{
echo "Валюта USD не обновлена (нет курса)
";
}
break;
case $codPLN:
if($valPLN==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conEUR, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codEUR . "'");
}else{
echo "Валюта PLN не обновлена (нет курса)
";
}
break;
}
}
$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='UAH'")->fetch(PDO::FETCH_ASSOC);
echo 'Курс обновился в ('.$defaultd['date_modified'].')';
}elseif($default['code']== 'USD'){
$xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
$usd=$xml->xpath('//exchangerate[@ccy=USD]');
$valUSD=$usd[0]->attributes()->sale;
$eur=$xml->xpath('//exchangerate[@ccy=EUR]');
$valEUR=$eur[0]->attributes()->sale;
$euro=$valUSD/$valEUR;
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');
$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
switch ($row['code']){
case 'USD':
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" . $date . "' WHERE code = 'USD'");
break;
case 'UAH':
if($valUSD==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . $valUSD . "', date_modified = '" . $date . "' WHERE code = 'UAH'");
}else{
echo "Валюта UAH не обновлена (нет курса)
";
}
break;
case 'EUR':
if($euro==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($euro, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = 'EUR'");
}else{
echo "Валюта EUR не обновлена (нет курса)
";
}
break;
}
}
$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='USD'")->fetch(PDO::FETCH_ASSOC);
echo 'Курс обновился в ('.$defaultd['date_modified'].')';
}elseif($default['code']== 'EUR'){
$xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
$eur=$xml->xpath('//exchangerate[@ccy=EUR]');
$valEUR=$eur[0]->attributes()->sale;
$usd=$xml->xpath('//exchangerate[@ccy=USD]');
$valUSD=$usd[0]->attributes()->sale;
$dollar=$valEUR/$valUSD;
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');
$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
switch ($row['code']){
case 'EUR':
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" . $date . "' WHERE code = 'EUR'");
break;
case 'UAH':
if($valEUR==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . $valEUR . "', date_modified = '" . $date . "' WHERE code = 'UAH'");
}else{
echo "Валюта UAH не обновлена (нет курса)
";
}
case 'USD':
if($valEUR==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($dollar, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = 'USD'");
}else{
echo "Валюта USD не обновлена (нет курса)
";
}
break;
}
}
$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='EUR'")->fetch(PDO::FETCH_ASSOC);
echo 'Курс обновился в ('.$defaultd['date_modified'].')';
}else{
echo 'Курс не обновился!';
}
?>Подскажите, пожалуйста, как решить задачку.
Спасибо.
-
Спасибо, заработало. У меня была включена опция ЧПУ. После того как отключил, смог проследить правильные ссылки на страницы магазина.
- 1
-
А что, она у вас физически существует эта самая страница product/manufacturer_list ?))))))))
Информацию брал здесь
Папка product/
category.tpl - вывод группы товаров
manufacturer.tpl - вывод товаров по производителю (в 1.5.х не используется)
manufacturer_info.tpl - вывод товаров по производителю (только в 1.5.х)
manufacturer_list.tpl - страница со списком всех производителей (только в 1.5.х)
product.tpl - вывод одного товара
review.tpl - вывод отзыва о товаре в шаблоне product.tpl
search.tpl - поиск и результаты поиска
special.tpl - выбор специальных предложений (Special Offers)
compare.tpl - страница сравнения товаров (только в 1.5.х)
manufacturer_list взял только для примера.
В футере стандартного шаблона есть ссылка "Производители". У меня страница имеет следующий адрес: http://название_магазина/brands/
Это разве не одно и то же?
-
Подскажите а как поменять ссылки в шапке (Главная, Закладки, Коззина покупок, Оформление заказа) с поддержкой мультиязычности. Т.е. чтоб не просто вставить ссылку в виде <a href="http://ваш_сайт/contacts'>http://ваш_сайт/contacts">Контакты</a> а с помощью php.
Как я понимаю нужно менять файлы:
http://ваш_сайт/catalog/language/russian/common/header.php'>http://ваш_сайт/catalog/language/russian/common/header.php - языковой файл
http://ваш_сайт/catalog/controller/common/header.php '>http://ваш_сайт/catalog/controller/common/header.php
http://ваш_сайт/catalog/view/theme/ваша_тема/template/common/header.tpl'>http://ваш_сайт/catalog/view/theme/ваша_тема/template/common/header.tpl - файл шаблона
Проделанные действия:
добавил необходимые ссылки в header.tpl в <div class="links">
Для примера добавил ссылку на список производителей manufacturer_list (строка 90)
<div class="links"> <a href="<?php echo $home; ?>"><?php echo $text_home; ?></a> <a href="<?php echo $manufacturer_list; ?>"><?php echo $manufacturer_list; ?></a> <a href="<?php echo $wishlist; ?>" id="wishlist-total"><?php echo $text_wishlist; ?></a> <a href="<?php echo $shopping_cart; ?>"><?php echo $text_shopping_cart; ?></a> <a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a> </div>
Добавил две строки (41 и 52) в файл http://ваш_сайт/catalog/controller/common/header.php
$this->language->load('common/header'); $this->data['og_url'] = (isset($this->request->server['HTTPS']) ? HTTPS_SERVER : HTTP_SERVER) . substr($this->request->server['REQUEST_URI'], 1, (strlen($this->request->server['REQUEST_URI'])-1)); $this->data['og_image'] = $this->document->getOgImage(); $this->data['text_home'] = $this->language->get('text_home'); $this->data['text_manufacturer_list'] = $this->language->get('text_manufacturer_list'); $this->data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0)); $this->data['text_shopping_cart'] = $this->language->get('text_shopping_cart'); $this->data['text_search'] = $this->language->get('text_search'); $this->data['text_welcome'] = sprintf($this->language->get('text_welcome'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL')); $this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL')); $this->data['text_account'] = $this->language->get('text_account'); $this->data['text_checkout'] = $this->language->get('text_checkout'); $this->data['text_page'] = $this->language->get('text_page'); $this->data['home'] = $this->url->link('common/home'); $this->data['manufacturer_list'] = $this->url->link('product/manufacturer_list'); $this->data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL'); $this->data['logged'] = $this->customer->isLogged(); $this->data['account'] = $this->url->link('account/account', '', 'SSL'); $this->data['shopping_cart'] = $this->url->link('checkout/cart'); $this->data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
Добавил текст ссылки (строка 12) в файле http://ваш_сайт/catalog/language/russian/common/header.php
<?php // Text $_['text_home'] = 'Главная'; $_['text_wishlist'] = 'Закладки (%s)'; $_['text_shopping_cart'] = 'Корзина покупок'; $_['text_search'] = 'Поиск'; $_['text_welcome'] = '<a href="%s">Войти</a> или <a href="%s">зарегистрироваться</a>'; $_['text_logged'] = 'Вы вошли как <a href="%s">%s</a> <b>(</b> <a href="%s">Выйти</a> <b>)</b>'; $_['text_account'] = 'Постоянный покупатель'; $_['text_checkout'] = 'Оформление заказа'; $_['text_page'] = 'страница'; $_['text_manufacturer_list'] = 'Производители'; ?>
В результате выводит страницу магазина "Запрашиваемая страница не найдена!"
Подскажите, что и где нужно изменить, чтоб все работало.
-
Подскажите а как поменять ссылки с поддержкой мультиязычности. Т.е. чтоб не просто вставить ссылку в виде <a href="http://ваш_сайт/contacts">Контакты</a> а с помощью php.
Как я понимаю нужно менять файлы:
http://ваш_сайт/catalog/language/russian/common/header.php - языковой файл
http://ваш_сайт/catalog/controller/common/header.php
http://ваш_сайт/catalog/view/theme/ваша_тема/template/common/header.tpl - файл шаблона
Проделанные действия:
добавил необходимые ссылки в header.tpl в <div class="links">
Для примера добавил ссылку на список производителей manufacturer_list (строка 90)
<div class="links"> <a href="<?php echo $home; ?>"><?php echo $text_home; ?></a> <a href="<?php echo $manufacturer_list; ?>"><?php echo $manufacturer_list; ?></a> <a href="<?php echo $wishlist; ?>" id="wishlist-total"><?php echo $text_wishlist; ?></a> <a href="<?php echo $shopping_cart; ?>"><?php echo $text_shopping_cart; ?></a> <a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a> </div>
Добавил две строки (41 и 52) в файл http://ваш_сайт/catalog/controller/common/header.php
$this->language->load('common/header'); $this->data['og_url'] = (isset($this->request->server['HTTPS']) ? HTTPS_SERVER : HTTP_SERVER) . substr($this->request->server['REQUEST_URI'], 1, (strlen($this->request->server['REQUEST_URI'])-1)); $this->data['og_image'] = $this->document->getOgImage(); $this->data['text_home'] = $this->language->get('text_home'); $this->data['text_manufacturer_list'] = $this->language->get('text_manufacturer_list'); $this->data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0)); $this->data['text_shopping_cart'] = $this->language->get('text_shopping_cart'); $this->data['text_search'] = $this->language->get('text_search'); $this->data['text_welcome'] = sprintf($this->language->get('text_welcome'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL')); $this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL')); $this->data['text_account'] = $this->language->get('text_account'); $this->data['text_checkout'] = $this->language->get('text_checkout'); $this->data['text_page'] = $this->language->get('text_page'); $this->data['home'] = $this->url->link('common/home'); $this->data['manufacturer_list'] = $this->url->link('product/manufacturer_list'); $this->data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL'); $this->data['logged'] = $this->customer->isLogged(); $this->data['account'] = $this->url->link('account/account', '', 'SSL'); $this->data['shopping_cart'] = $this->url->link('checkout/cart'); $this->data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
Добавил текст ссылки (строка 12) в файле http://ваш_сайт/catalog/language/russian/common/header.php
<?php // Text $_['text_home'] = 'Главная'; $_['text_wishlist'] = 'Закладки (%s)'; $_['text_shopping_cart'] = 'Корзина покупок'; $_['text_search'] = 'Поиск'; $_['text_welcome'] = '<a href="%s">Войти</a> или <a href="%s">зарегистрироваться</a>'; $_['text_logged'] = 'Вы вошли как <a href="%s">%s</a> <b>(</b> <a href="%s">Выйти</a> <b>)</b>'; $_['text_account'] = 'Постоянный покупатель'; $_['text_checkout'] = 'Оформление заказа'; $_['text_page'] = 'страница'; $_['text_manufacturer_list'] = 'Производители'; ?>
В результате выводит страницу магазина "Запрашиваемая страница не найдена!"
Подскажите, что и где нужно изменить, чтоб все работало.
Валюта + % на курс ?
в Загальні питання
Опубліковано:
Сделал все как сказали. Для надежности все испытывал на свеже-установленном магазине.
При переходе по ссылке ocstore.loc/currency_uah.php (для обновления курсов) выдает ошибку
коэффициент:
store_id в таблице setting имеет значение "0" везде (смотрел через phpMyAdmin, если я вас правильно понял).
Может имеет значение расположение файла currency_uah.php ?
Вот конечный файл currency_uah.php
/**
* @Author Spy-Reality
* @Date of creation 14.03.2014
* @Date of renovation 16.08.2014
* @Site http://spy-reality.in.ua
* Парсер керса валют с ПРИВАТ 24 в OPENCART
*/
// Подключение к БД
include 'config.php';
$dbhost = DB_HOSTNAME;
$dbuser = DB_USERNAME;
$dbpass = DB_PASSWORD;
$dbname = DB_DATABASE;
$sqlchar='utf8';
$db = new PDO ( 'mysql:host=' . $dbhost . ';dbname=' . $dbname, $dbuser, $dbpass);
$db->query ( 'SET character_set_connection = '.$sqlchar );
$db->query ( 'SET character_set_client = '.$sqlchar );
$db->query ( 'SET character_set_results = '.$sqlchar );
$config_currency_fee=$db->query("SELECT config_currency_fee FROM " . DB_PREFIX . "setting WHERE store_id = '0'")->fetch(PDO::FETCH_ASSOC);
$currency_fee = 1.0;
if (!isset($config_currency_fee['config_currency_fee'])) { $currency_fee = $config_currency_fee['config_currency_fee']; }
$default=$db->query("SELECT code FROM " . DB_PREFIX . "currency WHERE value='1.00000000'")->fetch(PDO::FETCH_ASSOC);
if($default['code']== 'UAH'){
$xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
$price=1; // одна гривна;
$eur=$xml->xpath('//exchangerate[@ccy=EUR]');
$codEUR=$eur[0]->attributes()->ccy;
$valEUR=$eur[0]->attributes()->sale;
$conEUR = $price / $valEUR * $currency_fee; // Корвентация в евро;
$usd=$xml->xpath('//exchangerate[@ccy=USD]');
$codUSD=$usd[0]->attributes()->ccy;
$valUSD=$usd[0]->attributes()->sale;
$conUSD = $price / $valUSD * $currency_fee; // Конвертация в доллар;
$rub=$xml->xpath('//exchangerate[@ccy=RUR]');
$codRUB=$rub[0]->attributes()->ccy;
$valRUB=$rub[0]->attributes()->sale;
$conRUB=$price/$valRUB; // Конвертация в рубль;
$pln=$xml->xpath('//exchangerate[@ccy=PLZ]');
$codPLN=$pln[0]->attributes()->ccy;
$valPLN=$pln[0]->attributes()->sale;
$conPLN=$price/$valPLN; // Корвентация в злотый;
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');
$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
//echo $row['code'] ;
switch ($row['code']){
case 'UAH':
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" . $date . "' WHERE code = 'UAH'");
break;
case $codEUR:
if($valEUR==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conEUR, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codEUR . "'");
}else{
echo "Валюта EUR не обновлена (нет курса)
";
}
break;
case $codRUB:
if($valRUB==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conRUB, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codRUB . "'");
}else{
echo "Валюта RUB не обновлена (нет курса)
";
}
break;
case $codUSD:
if($valUSD==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conUSD, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codUSD . "'");
}else{
echo "Валюта USD не обновлена (нет курса)
";
}
break;
case $codPLN:
if($valPLN==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($conEUR, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = '" . $codEUR . "'");
}else{
echo "Валюта PLN не обновлена (нет курса)
";
}
break;
}
}
$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='UAH'")->fetch(PDO::FETCH_ASSOC);
echo 'Курс обновился в ('.$defaultd['date_modified'].')';
}elseif($default['code']== 'USD'){
$xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
$usd=$xml->xpath('//exchangerate[@ccy=USD]');
$valUSD=$usd[0]->attributes()->sale;
$eur=$xml->xpath('//exchangerate[@ccy=EUR]');
$valEUR=$eur[0]->attributes()->sale;
$euro=$valUSD/$valEUR;
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');
$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
switch ($row['code']){
case 'USD':
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" . $date . "' WHERE code = 'USD'");
break;
case 'UAH':
if($valUSD==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . $valUSD . "', date_modified = '" . $date . "' WHERE code = 'UAH'");
}else{
echo "Валюта UAH не обновлена (нет курса)
";
}
break;
case 'EUR':
if($euro==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($euro, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = 'EUR'");
}else{
echo "Валюта EUR не обновлена (нет курса)
";
}
break;
}
}
$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='USD'")->fetch(PDO::FETCH_ASSOC);
echo 'Курс обновился в ('.$defaultd['date_modified'].')';
}elseif($default['code']== 'EUR'){
$xml = simplexml_load_file('https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4');
$eur=$xml->xpath('//exchangerate[@ccy=EUR]');
$valEUR=$eur[0]->attributes()->sale;
$usd=$xml->xpath('//exchangerate[@ccy=USD]');
$valUSD=$usd[0]->attributes()->sale;
$dollar=$valEUR/$valUSD;
date_default_timezone_set('Europe/Kiev');
$date=date('Y-m-d H:i:s');
$stmt = $db->query("SELECT code FROM " . DB_PREFIX . "currency");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
switch ($row['code']){
case 'EUR':
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '1.00000000', date_modified = '" . $date . "' WHERE code = 'EUR'");
break;
case 'UAH':
if($valEUR==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . $valEUR . "', date_modified = '" . $date . "' WHERE code = 'UAH'");
}else{
echo "Валюта UAH не обновлена (нет курса)
";
}
case 'USD':
if($valEUR==true){
$db->exec("UPDATE " . DB_PREFIX . "currency SET value = '" . number_format($dollar, 8, '.', '') . "', date_modified = '" . $date . "' WHERE code = 'USD'");
}else{
echo "Валюта USD не обновлена (нет курса)
";
}
break;
}
}
$defaultd=$db->query("SELECT date_modified FROM " . DB_PREFIX . "currency WHERE code='EUR'")->fetch(PDO::FETCH_ASSOC);
echo 'Курс обновился в ('.$defaultd['date_modified'].')';
}else{
echo 'Курс не обновился!';
}
?>