Вызов сниппета в чанке
Здравствуйте.
В следствии моей неопытности возникла проблема — есть написанный мною сниппет, который умножает полученные TV-значения и возвращает результат (такие вот извращения, ибо не понял, как можно решить этот вопрос иначе). Данный сниппет вызываю в шаблоне — все нормально подсчитывает и выводит нужный результат. Но как только вставляю вызов сниппета в чанк, который выступает шаблоном в вызове getResources, ничего не происходит — результат не показывает. Понимаю, что делаю глупость, но правильного решения не знаю. Подскажите пожалуйста, как правильно вставить результат работы сниппета в чанк.
Заранее благодарю за помощь.
В следствии моей неопытности возникла проблема — есть написанный мною сниппет, который умножает полученные TV-значения и возвращает результат (такие вот извращения, ибо не понял, как можно решить этот вопрос иначе). Данный сниппет вызываю в шаблоне — все нормально подсчитывает и выводит нужный результат. Но как только вставляю вызов сниппета в чанк, который выступает шаблоном в вызове getResources, ничего не происходит — результат не показывает. Понимаю, что делаю глупость, но правильного решения не знаю. Подскажите пожалуйста, как правильно вставить результат работы сниппета в чанк.
Заранее благодарю за помощь.
Комментарии: 9
Возможно нужен префикс tv. для используемых TV-шек.
Или Без точки. Гетресурсу Нужен префикс для ьв. Какой именно, можно прочитать на РТФМе.
Может, покажешь эти вызовы и сниппет?
Стыдно показывать)
Чанк
<?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>
http://rtfm.modx.com/revolution/2.x/making-sites-with-modx/customizing-content/input-and-output-filters-(output-modifiers)
фильтр multiply,mpy
Читайте внимательно доки и не занимайтесь фигней :)
фильтр multiply,mpy
Читайте внимательно доки и не занимайтесь фигней :)
да, нужно быть более внимательным) я, наверное, сначала не очень понял, как они работают)
спасибо, что подсказали решение.
спасибо, что подсказали решение.
Ты получаешь ТВ у текущего ресурса, в котором вызывается getResources.
А нужно получать у того, который оформляется в данный момент. Примерно вот так:
Вызов сниппета:
Это решение для твоего вопроса.
Но лучше еще немного всё упростить, потому что держать курс в ТВ у каждого товара неудобно. Его нужно прописать в системную настройку kurs и вызывать сниппет вот так:
Ну и сам сниппет станет таким:
А нужно получать у того, который оформляется в данный момент. Примерно вот так:
Вызов сниппета:
[[!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);
Спасибо за ответ, в дальнейшем буду знать, как решать такого рода проблемы. В данный момент использовал фильтры.
Попробуйте вместо ellipsis сниппет summary. Имхо, описание обрывающееся на пол слове как-то не кашерно смотрится.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.