Вызов сниппета в чанке

Здравствуйте.
В следствии моей неопытности возникла проблема — есть написанный мною сниппет, который умножает полученные TV-значения и возвращает результат (такие вот извращения, ибо не понял, как можно решить этот вопрос иначе). Данный сниппет вызываю в шаблоне — все нормально подсчитывает и выводит нужный результат. Но как только вставляю вызов сниппета в чанк, который выступает шаблоном в вызове getResources, ничего не происходит — результат не показывает. Понимаю, что делаю глупость, но правильного решения не знаю. Подскажите пожалуйста, как правильно вставить результат работы сниппета в чанк.
Заранее благодарю за помощь.
Богдан Остапчук
15 августа 2013, 19:42
modx.pro
10 377
0

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

Виталий Киреев
16 августа 2013, 06:50
0
Возможно нужен префикс tv. для используемых TV-шек.
    Воеводский Михаил
    16 августа 2013, 08:01
    0
    Или Без точки. Гетресурсу Нужен префикс для ьв. Какой именно, можно прочитать на РТФМе.
    Василий Наумкин
    16 августа 2013, 08:06
    0
    Может, покажешь эти вызовы и сниппет?
      Богдан Остапчук
      16 августа 2013, 10:42
      0
      Стыдно показывать)
      <?php
      $price = $modx->resource->getTVValue('itemPrice');
      $kurs = $modx->resource->getTVValue('kurs');
      $res = $price * $kurs;
      return $res;
      Понимаю, что можно делать это по-умному, но я не придумал как. Может, подскажете.

      Чанк
      <div class="tile-item" onclick="">
          <h6>[[+pagetitle]]</h6>
          [[+tv.itemImg]]
          <p>
             [[+introtext:ellipsis=`150`]]
          </p>
          <div class="tile-item-absolute">
               <p>Цена: <span>[[вызов результата сниппета]] грн.</span></p>
               <a class="item-button" href="[[~[[+id]]]]">Подробнее</a>
          </div>
      </div>
        Іван Клімчук
        16 августа 2013, 11:01
        0
        http://rtfm.modx.com/revolution/2.x/making-sites-with-modx/customizing-content/input-and-output-filters-(output-modifiers)
        фильтр multiply,mpy
        Читайте внимательно доки и не занимайтесь фигней :)
          Богдан Остапчук
          19 августа 2013, 14:58
          0
          да, нужно быть более внимательным) я, наверное, сначала не очень понял, как они работают)
          спасибо, что подсказали решение.
          Василий Наумкин
          16 августа 2013, 11:08
          0
          Ты получаешь ТВ у текущего ресурса, в котором вызывается getResources.
          А нужно получать у того, который оформляется в данный момент. Примерно вот так:

          Вызов сниппета:
          [[!getResources?
          	&includeTVs=`1`
          	&tpl=`myTpl`
          ]]
          Его чанк myTpl:
          <p>Цена: <span>[[+tv.itemPrice:getKurs=`[[+tv.kurs]]`]] грн.</span></p>
          Сниппет getKurs:
          return round($input * $options, 2);

          Это решение для твоего вопроса.

          Но лучше еще немного всё упростить, потому что держать курс в ТВ у каждого товара неудобно. Его нужно прописать в системную настройку kurs и вызывать сниппет вот так:
          <p>Цена: <span>[[+tv.itemPrice:getKurs]] грн.</span></p>

          Ну и сам сниппет станет таким:
          $kurs = $modx->getOption('kurs');
          return round($input * $kurs, 2);
            Богдан Остапчук
            19 августа 2013, 14:59
            0
            Спасибо за ответ, в дальнейшем буду знать, как решать такого рода проблемы. В данный момент использовал фильтры.
            Евгений Борисов
            20 августа 2013, 01:28
            0
            Попробуйте вместо ellipsis сниппет summary. Имхо, описание обрывающееся на пол слове как-то не кашерно смотрится.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          9