Автор Тема: Курсы валют  (Прочитано 482 раз)

17 Январь 2017, 15:47:46
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени суток.
Можете подсказать как в списке валют изменить отображение курса обмена на более читабельный?
Например, "Доллары США" вместо 0.037 на 27.027
Сам никак не могу разобраться
17 Январь 2017, 16:15:27
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Кликни на Править и поменяй курс.
17 Январь 2017, 16:27:15
Ответ #2
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Но тогда у меня просто откроется форма редактирования. В нём тот же курс валюты в неудобном виде. Этот курс указывается относительно основной валюты магазина.

В моём случае основная валюта - гривна с курсом 1. Тогда доллары США будут 1:27.027=0.037
Я хочу, чтобы в общем перечне курсов вместо 0.037 показывался читабельный курс до пересчёт относительно валюты по-умолчанию.
Или добавить свой новый столбец с уже своем цифрой. Но какой файл нужно править?
17 Январь 2017, 16:49:04
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добавлять новое полуе нужно в класс, таблицу и шаблон.
Класс вылюты /classes/Currency.php, таблица ps_currency.

Prestashop FAQ - как добавить новое поле к товару
вот пример.
17 Январь 2017, 17:06:10
Ответ #4
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не совсем то, что мне нужно.
Файл /controllers/admin/AdminCurrenciesController.php
В public function __construct() массив $this->fields_list отвечает за столбцы в разделе Локализация-->Валюты
$this->fields_list = array(
            'id_currency' => array('title' => $this->l('ID'), 'align' => 'center', 'class' => 'fixed-width-xs'),
            'name' => array('title' => $this->l('Currency')),
            'iso_code' => array('title' => $this->l('ISO code'), 'align' => 'center', 'class' => 'fixed-width-xs'),
            'iso_code_num' => array('title' => $this->l('ISO code number'), 'align' => 'center', 'class' => 'fixed-width-xs'),
            'sign' => array('title' => $this->l('Symbol'), 'width' => 20, 'align' => 'center', 'orderby' => false, 'search' => false, 'class' => 'fixed-width-xs'),
            'conversion_rate' => array('title' => $this->l('Exchange rate'), 'type' => 'float', 'align' => 'center', 'width' => 130, 'search' => false, 'filter_key' => 'currency_shop!conversion_rate'),
            'active' => array('title' => $this->l('Enabled'), 'width' => 25, 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false, 'class' => 'fixed-width-sm'),
        );
'conversion_rate' - как раз то, что я хочу изменить. Эти данные и показывают курс валюты и он где-то математически высчитывается. Я хочу изменить это.
Или просто добавить свой столбец: после 'conversion_rate' => ...... ставлю свою 'conversion_rate_my' => array('title' => $this->l('Exchange rate MY'), 'type' => 'float', 'align' => 'center', 'width' => 130, 'search' => false, 'filter_key' => 'currency_shop!conversion_rate'),
А как указать какие данные она выводит...
Но в каком файле/функции не могу найти.
17 Январь 2017, 17:32:25
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тему почитайте, что я вам дал будет понятно.

Схема добавления нового поля (общая для всех, не только для товара)
1. Добавить новое поле в таблицу
2. Добавить новое поле в класс.
3. Добавить проверку и сохранение нового поля в контроллер.
4. Добавить новое поле в шаблон.
5. Для показа нового поля в админке, добавить в файл "Admin...Controller.php"