При создании интеренет-магазина с помощью модуля Drupal Commerce может возникнуть потребность в конфигурировании формата представления стоимости товара.
По умолчанию стоимость товара отображается в формате:
1,234.25 UAH (на примере украинской гривны)
Для русскоязычного пользователя такой формат представления не совсем удобен. В текущей версии beta 3 функционал для изменения формата представления цены товара через пользовательский интерфейс отсутствует.
Задать правильное отображение стоимости товара можно с помощью небольшого модуля, который включает в себя вызов всего одного хука:
<?php
function mymodule_commerce_currency_info_alter(&$currencies, $langcode) {
$currencies['UAH']['symbol'] = 'грн.'; //задаем символ валюты, который нужно отображать
$currencies['UAH']['code_placement'] = 'hidden'; //прячем буквенный код валюты, который отображается по умолчанию вместо символа валюты
$currencies['UAH']['symbol_placement'] = 'after'; //указываем отображение символа валюты после стоимости
$currencies['UAH']['thousands_separator'] = ''; //убираем разделитель сотен, по умолчанию это символ ","
}
?>
Хук должен выполнятся после того, как отработают хуки модуля commerce currency, для этого задаем соответствующий вес нашему модулю в таблице system
Настройку формата отображения стоимости товара с помощью UI обещают включить в одно из следующих обновлений модуля, но пока этого функционала нет, можно пользоваться таким временным решением.
Комментарии
Подскажите, существует ли модуль для управления весами модуля ?
«Хук должен выполнятся после того, как отработают хуки модуля commerce currency, для этого задаем соответствующий вес нашему модулю в таблице system»
надо не хуки размножать, а слать патчи:
http://drupal.org/node/1175612
сделают или не сделают UI к этому - это другой вопрос
разработчику просто неоткуда узнать, как принято писать цены в незнакомой ему валюте
Создал патч.
Лучше бы сделал:
+ 'thousands_separator' => ' ',
+ 'decimal_separator' => ',',
а-то рубли будут лучше гривны отформатированы...
Десятичный разделитель в большинстве магазинов встречается именно в виде точки, а не комы. Поэтому в такой форме и добавил в патч.
Что-то не нравится мне такой подход... Но похоже другого варианта пока нет.