If/Else в Modx

Опитвам се да обвия в моя шаблон блок в условни изрази:

<div class="widget widget_categories trip_widget">
    <div class="kd-widget-title"><h4>Book online</h4></div>
    <div class="trip-book-button">
        <a href="/bg[(site_url)]book-online.html/#id=[*trip-slug*]">Book now online</a>        
    </div>
</div>

Трябва да покажа този блок само ако [*trip-slug*] присъства.

Прочетох форума и документацията, но изглежда не мога да разбера правилния синтаксис.

Какво ми липсва?


person Mini John    schedule 25.09.2015    source източник


Отговори (2)


В Evolution имате нужда от приставката PHx (https://github.com/Temus/PHx), за да обработвате ресурс или шаблонни променливи тагове. С този плъгин можете да използвате следния код:

[*trip-slug:ne=`
  <div class="widget widget_categories trip_widget">
    <div class="kd-widget-title"><h4>Book online</h4></div>
    <div class="trip-book-button">
      <a href="/bg[(site_url)]book-online.html/#id=[*trip-slug*]">Book now online</a>        
    </div>
  </div>
`*]

Заместващи етикети в Ditto се анализират с (ограничен) PHx анализатор и можете да използвате следното в Ditto шаблон без приставката:

[+trip-slug:ne=`
  <div class="widget widget_categories trip_widget">
    <div class="kd-widget-title"><h4>Book online</h4></div>
    <div class="trip-book-button">
      <a href="/bg[(site_url)]book-online.html/#id=[+trip-slug+]">Book now online</a>        
    </div>
  </div>
`+]

И в двата случая бихте могли да работите и с основния фрагмент на Evolution if.

[[if? &is=`[*trip-slug*]:not_empty` &then=`
  <div class="widget widget_categories trip_widget">
    <div class="kd-widget-title"><h4>Book online</h4></div>
    <div class="trip-book-button">
      <a href="/bg[(site_url)]book-online.html/#id=[*trip-slug*]">Book now online</a>        
    </div>
  </div>
`]]

Заменете [* *] с [+ +] вътре в частите на шаблона Ditto.

person Jako    schedule 25.09.2015

Използвайте Изходен филтър в MODX Revolution (с което е маркирана тази страница) или PHx филтър в MODX Evolution (това е, което синтаксисът на вашите заместители предполага, че използвате).

MODX Evolution

[+trip-slug:ne=`
  <div class="widget widget_categories trip_widget">
    <div class="kd-widget-title"><h4>Book online</h4></div>
    <div class="trip-book-button">
      <a href="/bg[(site_url)]book-online.html/#id=[*trip-slug*]">Book now online</a>        
      </div>
  </div>
`+]

MODX революция

[[*trip-slug:notempty=`
  <div class="widget widget_categories trip_widget">
    <div class="kd-widget-title"><h4>Book online</h4></div>
    <div class="trip-book-button">
      <a href="/bg[(site_url)]book-online.html/#id=[*trip-slug*]">Book now online</a>        
    </div>
  </div>
`]]
person Mazuhl    schedule 25.09.2015
comment
Бутонът не се показва дори ако [*trip-slug*] присъства. - person Mini John; 25.09.2015
comment
Аз съм на Evolution btw. - person Mini John; 25.09.2015