我有使用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
作为回复。
答案 0 :(得分:1)
您正在使用slice,它实际上正在使用array_slice,它返回数组。
如果你只想获得一个元素,那么你可以使用php语法:
{% set paragraphs = content | split('</p>') %}
{% set firstParagraph = paragraphs[0] ~ '</p>' %}
{% set secondParagraph = paragraphs[1] ~ '</p>' %}
请阅读有关twig语法和变量here的更多信息。