Grav CMS:如何根据条件显示/隐藏部分页面?

时间:2017-09-12 05:33:53

标签: twig grav

Grav的文档清楚地描述了how a whole page or a folder could be hidden from unregistered users。它还描述了how a whole page could be seen only by particular user groups

但是页面的内容是什么呢?比方说,某些链接或私人信息我想在某些条件下显示?

好的,对于注册用户,我在Login plugin docs找到了一个代码段:

{% if grav.user.authenticated %}
    content for registered users goes here
{% endif %}

但是要更广泛 - 如何根据PHP代码中的某些自定义逻辑显示/隐藏特定页面的 ,即不一定与用户相关?

我正在思考一个twig / shortcode插件,例如:

{% if some.custom.condition.or.PHP.function %}
   hidden content goes here
{% endif %}

[hidden_if_something] hidden content goes here [/hidden_if_something]

但不确定应该如何实施。所以工作的例子将不胜感激。感谢。

1 个答案:

答案 0 :(得分:3)

Grav文档here中有一个配方。这提供了一个如何在twig模板中呈现PHP代码结果输出的示例。

在示例中,他们创建了一个插件,并实现了一个twig扩展,提供了对php函数的访问。然后,他们可以像在树枝模板中一样简单地调用php函数。

{{ example() }}

在该示例之后,您可以在php中实现您想要的任何逻辑,并在twig if语句中调用该函数。

{% if example() == true %}
   your conditional output
{% endif %