Форматирование своих полей в msProducts

После обновления минишопа до 2.1.11-pl перестали убираться лишние нули у дополнительных цен (свои дополнительные поля) в каталоге, при этом на странице самого товара цены по прежнему форматируются правильно. форматирую так
$pls['price'] = $miniShop2->formatPrice($pls['price']);
$pls['price2'] = $miniShop2->formatPrice($pls['price2']);
в файле core/components/minishop2/model/minishop2/msproduct.class.php
dapin
03 августа 2015, 22:49
modx.pro
976
0

Комментарии: 6

dapin
04 августа 2015, 20:17
0
Неужели никто не знает?
    Максим Кузнецов
    04 августа 2015, 20:29
    0
    Ну, тут может быть проблема банально c minishop'ом, точно не скажу — последние версии пока не стабильны.

    Могу предложить на правах самого простого варианта дописать фильтр вида [[+value:replace=`.00==`]]
      Максим Кузнецов
      04 августа 2015, 20:33
      0
      А вообще, при выводе на странице, значения выводит MODX через xPDO, и убирает лишние нули, превращая decimal в int.

      Что же до значения в категории, то вы, видимо, вызываете их через msProducts, а там никакой обработки нет (он знает формат только для веса, цены и других дефолтных параметров) — а так как он не знает, что за значение вы выводите, то и выдает как есть в БД — decimal.
        dapin
        04 августа 2015, 20:50
        0
        да через msProducts, но тогда 1) почему до обновления все работало; 2) через что еще можно вы выводить товары, через pdoresources?
          Максим Кузнецов
          04 августа 2015, 20:53
          0
          По первому вопросу, честно говоря — без понятия. Но, раз эта проблема возникла после обновления, вполне логично предположить, что дело в изменениях новой версии..)

          По второму: msProducts работает или на pdoTools или на очень схожей механике, т.е. менять mProducts особого смысла нет — да и зачем, ведь он и предназначен для отображения подобной информации.

          Тут или менять тип поля в бд (самый глупый из вариантов), или вешать &prepareSnippet на вызов или использовать вышеописанный фильтр — [[+value:replace=`.00==`]].
          На мой взгляд третий вариант — самый лаконичный и удобочитаемый. Ну и лишнюю нагрузку почти не выдает.
            dapin
            04 августа 2015, 21:34
            0
            да третий самый простой, воспользуюсь им если не найду в чем изменения (но не хочется ибо много различных выводов msProducts и в каждый придется забивать этот модификатор.)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      6