{% placeholder %}

October CMS Documentation Docs

{% placeholder %}

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

{% placeholder name %}

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

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

# 默认占位符内容

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

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

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

{% put sidebar %}
    <p><a href="/services">Services</a></p>
    {% default %}
{% endput %}

# 检查占位符是否存在

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

{% if placeholder('sidemenu') %}
    <!-- 带有侧边栏的页面标记 -->
    <div class="row">
        <div class="col-md-3">
            {% placeholder sidemenu %}
        </div>
        <div class="col-md-9">
            {% page %}
        </div>
    </div>
{% else %}
    <!-- 没有侧边栏的页面的标记 -->
    {% page %}
{% endif %}

# 自定义属性

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

{% placeholder ordering title="订购信息" type="text" %}

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

{% placeholder ordering default title="订购信息" type="text" %}
    该产品没有订购信息。
{% endplaceholder %}