Вопрос о phx

Есть такой код:

[[+tv.aviable:is=`0`:then=`Нет в наличии`:else=`[[+tv.aviable:gt=`1`:and:lt=`10`:then=`<i class="fa fa-circle"></i>`:else=`[[+tv.aviable:ge=`10`:and:lt=`30`:then=`<i class="fa fa-circle"></i> <i class="fa fa-circle"></i>`:else=`[[+tv.aviable:ge=`30`:then=`<i class="fa fa-circle"></i> <i class="fa fa-circle"></i> <i class="fa fa-circle"></i>`:else=``]]`]]`]]`]]
Также нужно при выполнении одного из условий, записывать значение в then в другой TV-параметр.

Подскажите, можно обойтись phx или нужно писать сниппет и также вызывать в then?
nweb
05 июля 2016, 11:27
modx.pro
1 461
0

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

Павел Романов
05 июля 2016, 19:03
+2
Ну вообще-то конечно сниппет — самое оптимальное для таких вложенностей.
Но если стоит pdoTools и выводите соответствующими инструментами, то попробуйте Fenom использовать:
{var $av = $_pls['tv.aviable']}
{if $av == 0}
	Нет в наличии
{else}
	{if $av > 1 && < 10}
		<i class="fa fa-circle"></i>
	{else}
		{if $av >= 10 && < 30}
			<i class="fa fa-circle"></i> <i class="fa fa-circle"></i>
		{else}
			{if $av >= 30}
				<i class="fa fa-circle"></i> <i class="fa fa-circle"></i> <i class="fa fa-circle"></i>
			{/if}
		{/if}
	{/if}
{/if}
Вроде, нигде не ошибся ))
    Павел Карелин
    06 июля 2016, 12:34
    0
    Если хочешь выполнять условия в шаблоне/чанке то юзай шаблонизаторы. Тут уже как тебе больше нравится, можно юзать fenom pdotools или залепить свой, например Twig.
      Павел Романов
      27 сентября 2016, 16:41
      2
      +1
      Поправочка (всё-таки ошибся))):

      {var $av = $_pls['tv.aviable']}
      {if $av == 0}
      	Нет в наличии
      {else}
      	{if $av > 1 && $av < 10}
      		<i class="fa fa-circle"></i>
      	{else}
      		{if $av >= 10 && $av < 30}
      			<i class="fa fa-circle"></i> <i class="fa fa-circle"></i>
      		{else}
      			{if $av >= 30}
      				<i class="fa fa-circle"></i> <i class="fa fa-circle"></i> <i class="fa fa-circle"></i>
      			{/if}
      		{/if}
      	{/if}
      {/if}
      Viktor
      16 июля 2016, 20:02
      -1
      почему не работает такая конструкция? при условии что созданному ресурсу больше 7 дней, пишет «new»

      [[*createdon:strtotime:date=`%Y%m%d`:add=`7`:gt=` +phx:input=«now»:strtotime:date="%Y%m%d" `:then=`new`:else:`old`]]
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4