Twig / Timber有条件显示身体等级

时间:2017-09-14 16:45:12

标签: twig timber

如果网址中有特定的字符串,我正在寻找一种向正文添加类的方法。

我有一些逻辑工作,但以下语法: 1.不是DRY 2.由于if语句

,仅循环第一次迭代

我想我需要以某种方式在' if'之后放置一个数组。声明,但不确定语法。 任何帮助,将不胜感激。 感谢

{% if 'bus-data' in post.link %}
  <body class="{{body_class}} jumbo" data-template="base.twig">
{% elseif 'bus-data' not in post.link %}
  <body class="{{body_class}}" data-template="base.twig">
{% endif %}

{% if 'taxi-data' in post.link %}
  <body class="{{body_class}} jumbo" data-template="base.twig">
{% elseif 'taxi-data' not in post.link %}
  <body class="{{body_class}}" data-template="base.twig">
{% endif %}

{% if 'education-data' in post.link %}
  <body class="{{body_class}} jumbo" data-template="base.twig">
{% elseif 'education-data' not in post.link %}
  <body class="{{body_class}}" data-template="base.twig">
{% endif %}

{% if 'public-data' in post.link %}
  <body class="{{body_class}} jumbo" data-template="base.twig">
{% elseif 'public-data' not in post.link %}
  <body class="{{body_class}}" data-template="base.twig">
{% endif %}

2 个答案:

答案 0 :(得分:1)

你可以创建一个新的过滤器来解决这个问题,

过滤

$twig->addFilter(new Twig_SimpleFilter('contains', function ($value, $needles) {
    if (!is_array($needles)) $needles = [ $needles, ];
    foreach($needles as $needle) if (strpos($value, $needle) !== false) return true;
    return false;
});

枝条

<body class="{{body_class}}{% if post.link|contains(['bus-data', 'taxi-data', 'education-data', 'public-data',]) %} jumbo{% endif %}" data-template="base.twig">

答案 1 :(得分:0)

看起来我可能过于复杂化了一些非常简单的事情,离开它会让它变得更加清晰。 我只是整理了我的其他“如果&#39;循环:

{% if 'bus-data' in post.link %}
  <body class="{{body_class}} jumbo" data-template="base.twig">
{% elseif 'taxi-data' in post.link %}
  <body class="{{body_class}} jumbo" data-template="base.twig">
{% elseif 'education-data' in post.link %}
  <body class="{{body_class}} jumbo" data-template="base.twig">
{% elseif 'public-data' in post.link %}
  <body class="{{body_class}} jumbo" data-template="base.twig">
{% else %}
  <body class="{{body_class}}" data-template="base.twig">
{% endif %}