If/Else 在 Modx 中

If/Else in 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="[(site_url)]book-online.html/#id=[*trip-slug*]">Book now online</a>        
    </div>
</div>

I need to show that block only if [*trip-slug*] is present.

我已经通读了论坛和文档,但我似乎无法理解正确的语法。

我错过了什么?

在 MODX Evolution 中使用 Output Filter in MODX Revolution (which is what this page is tagged with) or a PHx filter(占位符的语法表明您正在使用)。

MODX进化

[+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="[(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="[(site_url)]book-online.html/#id=[*trip-slug*]">Book now online</a>        
    </div>
  </div>
`]]

在 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="[(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="[(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="[(site_url)]book-online.html/#id=[*trip-slug*]">Book now online</a>        
    </div>
  </div>
`]]

将 Ditto 模板块中的 [* *] 替换为 [++]。