【问题标题】:If statement with Content block in October CMS十月 CMS 中带有内容块的 if 语句
【发布时间】:2018-01-09 23:05:51
【问题描述】:

在 10 月的 CMS 中,我想知道是否有一种方法可以检查内容块是否为空?

我将它包含在一个消息标签中,如果没有填充该块,我不希望显示它。

类似:

{% if not empty content 'homepage/message' %}
      <div class="ui message positive home-messages">
          {% content 'homepage/message' %}
        </div>
{% endif %}

【问题讨论】:

    标签: octobercms


    【解决方案1】:

    这并不能回答您的实际问题
    但我相信它确实可以解决您的问题。

    我的理解是,当内容块为空时,您希望删除整个&lt;div&gt; 块,

    给出简单的html/twig代码

    <div class="ui message positive home-messages">
        {% content 'homepage/message' %}
    </div>
    

    这可以通过 jQuery 来完成。

    $(document).ready(function() {
        if ( $.trim( $('div.message').text() ).length == 0 ) {
            $('div.message').remove();
        }
    });
    

    $('div.message') :找到带有“消息”类的&lt;div&gt;
    $('div.message').text() :复制封闭的文本(删除所有html标签)
    @ 987654329@ :剪掉所有空格,包括回车和不间断空格 (&amp;nbsp;)
    $.trim( $('div.message').text() ).length :测量剩下的长度
    如果为零,则 &lt;div&gt; 块为空(无文本或空子 html 块),因此
    $('div.message').remove(); :删除整个 &lt;div&gt;

    如果您需要指定多个类以避免使用 message 类删除其他空 div 块,您可以链接这些类,
    例如$('div.message.home-messages')

    您可以将jQuery代码保存到/themes/&lt;theme&gt;/assets/javascript/remove_empty.js
    然后用

    将其注入相关页面
    function onEnd() {
        $this->addJs('assets/javascript/remove_empty.js');
    } 
    

    您可以改为将remove_empty.js 添加到布局文件底部的 JavaScript 资产列表中,以便在整个网站上使用。如上所述,注入它意味着它只会伴随该页面。

    你可以使用更简单的

    $(document).ready(function() {
        $('div.message:empty').remove();
    }); 
    

    但这将要求您的 html/twig 全部为一行...

    <div class="ui message positive home-messages">{% content 'homepage/message' %}</div>
    

    ...否则&lt;div&gt; 块将包含回车符(空格),因此不会是:empty

    另见:
    * Using an if statement to check if a div is empty
    * How do I remove empty elements from the dom using jQuery?

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      相关资源
      最近更新 更多