Создание пользовательского формата представления стоимости товара в Drupal Commerce

Главные вкладки

Аватар пользователя Sun-fire Sun-fire 2 июня 2011 в 15:56

При создании интеренет-магазина с помощью модуля 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 обещают включить в одно из следующих обновлений модуля, но пока этого функционала нет, можно пользоваться таким временным решением.

Комментарии

Аватар пользователя seremenko seremenko 5 июня 2011 в 22:01

Подскажите, существует ли модуль для управления весами модуля ?

«Хук должен выполнятся после того, как отработают хуки модуля commerce currency, для этого задаем соответствующий вес нашему модулю в таблице system»

Аватар пользователя xy2 xy2 5 июня 2011 в 22:55

надо не хуки размножать, а слать патчи:
http://drupal.org/node/1175612

сделают или не сделают UI к этому - это другой вопрос
разработчику просто неоткуда узнать, как принято писать цены в незнакомой ему валюте

Аватар пользователя Sun-fire Sun-fire 8 июня 2011 в 0:48

Десятичный разделитель в большинстве магазинов встречается именно в виде точки, а не комы. Поэтому в такой форме и добавил в патч.