{% placeholder %}

{%placeholder%}标签将呈现一个占位符部分,通常在Layouts中使用。 此标记将返回使用{%put%}标记添加的任何占位符内容,或任何已定义的默认内容(可选)。

  1. {% placeholder name %}

然后可以在任何后续页面或部分页面中将内容注入占位符。

  1. {% put name %}
  2. <p>Place this text in the name placeholder</p>
  3. {% endput %}

默认占位符内容

占位符可以具有可以由页面替换或补充的默认内容。 如果未在页面上定义具有默认内容的占位符的{%put%}标记,则会显示默认占位符内容。 布局模板中的占位符定义示例:

  1. {% placeholder sidebar default %}
  2. <p><a href="/contacts">Contact us</a></p>
  3. {% endplaceholder %}

该页面可以向占位符注入更多内容。 {%default%}标记指定应显示默认占位符内容的位置。 如果未使用标记,则占位符内容将被完全替换。

  1. {% put sidebar %}
  2. <p><a href="/services">Services</a></p>
  3. {% default %}
  4. {% endput %}

检查占位符是否存在

在布局模板中,您可以使用placeholder()函数检查占位符内容是否存在。 这使您可以根据页面是否提供占位符内容生成不同的标记。 例:

  1. {% if placeholder('sidemenu') %}
  2. <!-- Markup for a page with a sidebar -->
  3. <div class="row">
  4. <div class="col-md-3">
  5. {% placeholder sidemenu %}
  6. </div>
  7. <div class="col-md-9">
  8. {% page %}
  9. </div>
  10. </div>
  11. {% else %}
  12. <!-- Markup for a page without a sidebar -->
  13. {% page %}
  14. {% endif %}

自定义属性

placeholder标签接受两个可选属性 &mdash; titletype。 CMS本身不使用title属性,但可以被其他插件使用。 type属性管理占位符类型。 目前支持两种类型&mdash; texthtml。 文本占位符的内容在显示之前进行转义。 标题和类型属性应在占位符名称和default属性之后定义(如果已显示)。 例:

  1. {% placeholder ordering title="Ordering information" type="text" %}

具有默认内容,标题和类型属性的占位符示例。

  1. {% placeholder ordering default title="Ordering information" type="text" %}
  2. There is no ordering information for this product.
  3. {% endplaceholder %}