формат цены темы в drupal ubercart

Что я пытаюсь достичь, так это оформить ценовой формат следующим образом. Я хочу удалить десятичные дроби только тогда, когда они равны 00.

Например, 5,00 евро должны быть 5 евро, но 5,50 евро должны остаться прежними, а не 5,5 евро. Я нашел форум об этой проблеме, но не знаю, как ее реализовать, особенно переопределение theme_uc_product_price() как предлагается здесь.


person user1031742    schedule 29.01.2012    source источник


Ответы (1)


Эти ссылки предлагают использовать либо модуль вычисляемого поля, либо функцию предварительной обработки, но это было бы просто с небольшим количеством JQuery:

Допустим, у вас есть такой div:

<div class="field-price">€ 5,00</div> 

Затем вы можете настроить таргетинг на этот элемент с помощью replace:

$('.field-price:contains(",00")').html(function(i, h) {
  return h.replace(/00/g, '');
});​

Я написал здесь демо:

http://jsfiddle.net/JySHQ/1/

Обратите внимание, пожалуйста, укажите, какая у вас версия Drupal, а затем я дам вам несколько советов о том, как реализовать, поскольку Javascript отличается в Drupal 6 от Drupal 7.

person Danny Englander    schedule 10.02.2012
comment
Привет спасибо за ответ. Я использую drupal 6. Ваш пример выглядит действительно полезным. Меня также беспокоят пользователи без javascript, потому что, хотите верьте, хотите нет, согласно аналитике, почти у 30% моих посетителей не включен javascript. - person user1031742; 12.02.2012
comment
Это больше похоже на косметическое изменение, так как это Javascript, он будет изящно деградировать и просто покажет конечные нули. Я посмотрел на другие решения в ваших ссылках, и они показались довольно сложными для реализации, поэтому я придумал JQuery. Если он вам нужен для Drupal 6, дайте мне знать, и я тоже помещу сюда код. - person Danny Englander; 12.02.2012
comment
Если вы будете так любезны, я бы попросил код, отменяющий theme_uc_product_price (), как это было предложено сопровождающим проекта ubercart. Я бы сказал, что этот код будет очень полезен для многих владельцев европейских магазинов, которым не нужно отображать конечные нули. Большое Вам спасибо. - person user1031742; 13.02.2012