用树枝分割两段中的文字

时间:2015-10-28 13:19:26

标签: twig

我有使用Twig生成的富文本。案文分为两段。 如何创建一个读取更多功能/按钮,显示第一个段落,第二个段落在按钮点击时可见?

我想到这样的事情:

  {% set paragraphs = content | split('</p>') %}
{% set firstParagraph = paragraphs | first ~ '</p>' %}
{% set secondParagraph = paragraphs[:2] ~ '</p>' %}
          <div class="accordion-group">
        <div class="accordion-heading">
          <a class="accordion-toggle custom-title" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo"></a>
          <p>{{ firstParagraph | raw }}</p>
        </div>
        <div id="collapseTwo" class="accordion-body collapse">
          <div class="accordion-inner">
            <p>{{ secondParagraph | raw }}</p>
          </div>
        </div>
        <script type="text/javascript">

          $(document).ready(function(){
            $('.SeeMore2').click(function(){
              var $this = $(this);
              $this.toggleClass('SeeMore2');
              if($this.hasClass('SeeMore2')){
                $this.text('{{ 'Read more' | t }}');      
              } else {
                $this.text('{{ 'Read less' | t }}');
              }
            });
          });
        </script>
        <a class="SeeMore2" data-toggle="collapse" href="#collapseTwo">{{ 'Read more' | t }}</a>

问题是第二段返回array作为回复。

1 个答案:

答案 0 :(得分:1)

您正在使用slice,它实际上正在使用array_slice,它返回数组。

如果你只想获得一个元素,那么你可以使用php语法:

{% set paragraphs = content | split('</p>') %}
{% set firstParagraph = paragraphs[0] ~ '</p>' %}
{% set secondParagraph = paragraphs[1] ~ '</p>' %}

请阅读有关twig语法和变量here的更多信息。