Вывод цены с двумя знаками после запятой — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
Строка 25: Строка 25:
 
Пример вызовов макроса:
 
Пример вызовов макроса:
 
<source lang="xml">
 
<source lang="xml">
<xsl:value-of select="document(concat('udata://custom/format_price/', $price))/udata/value"/>
+
<xsl:value-of select="document(concat('udata://custom/format_price/', $price))/udata"/>
 
</source>
 
</source>
  
 
<source lang="xml">
 
<source lang="xml">
<xsl:value-of select="document(concat('udata://custom/format_price/', '754.4'))/udata/value"/>
+
<xsl:value-of select="document(concat('udata://custom/format_price/', '754.4'))/udata"/>
 
</source>
 
</source>

Текущая версия на 08:46, 21 апреля 2014

Актуально для версии 2.9.6

Задача: Выводить цену на страницах сайта с двумя знаками после запятой

Реализация:

В файл ~/classes/modules/custom.php добавим определение макроса format_price, который будет возвращать цену с двумя знаками после запятой:

public function format_price( $price )
{
     return number_format( $price, 2 );
}

Макрос format_price() принимает единственный параметр $price - цену (число), которую нужно преобразовать.

TPL-шаблонизатор

Пример вызовов макроса:

%custom format_price( '%price%' )%
%custom format_price( '754.4' )%

XSLT-шаблонизатор

Пример вызовов макроса:

<xsl:value-of select="document(concat('udata://custom/format_price/', $price))/udata"/>
<xsl:value-of select="document(concat('udata://custom/format_price/', '754.4'))/udata"/>