【问题标题】:If/Else in ModxModx 中的 If/Else
【发布时间】:2015-09-25 07:25:25
【问题描述】:

我正在尝试在我的模板中包含一个条件块:

<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>

仅当存在[*trip-slug*] 时,我才需要显示该块。

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

我错过了什么?

【问题讨论】:

    标签: modx modx-evolution


    【解决方案1】:

    在 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 Snippet。

    [[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 模板块中的 [* *] 替换为 [++]。

    【讨论】:

      【解决方案2】:

      在 MODX Revolution 中使用 Output Filter(这是此页面的标记)或在 MODX Evolution 中使用 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>
      `]]
      

      【讨论】:

      • 即使[*trip-slug*] 存在,按钮也不显示。
      • 顺便说一句,我正在进化。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 2014-05-20
      • 1970-01-01
      相关资源
      最近更新 更多