用树枝将文本分成两段
Split text in two paragraphs with twig
我有使用 Twig 生成的富文本。正文分为两段。
如何创建阅读更多内容 function/button,其中显示第一段,而第二段将在单击按钮时可见?
我是这样想的:
{% 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>
问题是第二段returnsarray
作为回应。
您正在使用 slice, which is actually using array_slice,其中 returns 数组。
如果你只想获取一个元素,那么你可以使用 php 语法:
{% set paragraphs = content | split('</p>') %}
{% set firstParagraph = paragraphs[0] ~ '</p>' %}
{% set secondParagraph = paragraphs[1] ~ '</p>' %}
请阅读有关 twig 语法和变量的更多信息here。
我有使用 Twig 生成的富文本。正文分为两段。 如何创建阅读更多内容 function/button,其中显示第一段,而第二段将在单击按钮时可见?
我是这样想的:
{% 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>
问题是第二段returnsarray
作为回应。
您正在使用 slice, which is actually using array_slice,其中 returns 数组。
如果你只想获取一个元素,那么你可以使用 php 语法:
{% set paragraphs = content | split('</p>') %}
{% set firstParagraph = paragraphs[0] ~ '</p>' %}
{% set secondParagraph = paragraphs[1] ~ '</p>' %}
请阅读有关 twig 语法和变量的更多信息here。