prestashop:如果描述长于XXX个字符,则在产品描述中显示更多内容

时间:2014-02-16 18:33:39

标签: javascript php prestashop prestashop-1.5

如果描述只有一定数量的字符,你们会建议我使用一种方式让我更多按钮出现吗?

{if isset($product) && $product->description }
    <!-- full description -->
    <div id="idTab1"  style="overflow:hidden;height:250px;font-family:avantgarde-book;font-size:12px;line-height:14px;">{$product->description}</div>
    <input id="button" type="button" style="margin-top:5px;font-size:12px;color:white;font-family:avantgarde-book; width:120px;background:#4e3248;border:none;height:30px;border-radius:5px;" value="Mostrar +" onclick="showMore()"> 
            <input id="button2" type="button" style="margin-top:5px;display:none;font-size:12px;color:white;font-family:avantgarde-book; width:120px;background:#4e3248;border:none;height:30px;border-radius:5px;" value="Mostrar -" onclick="showLess()">

{/if}

我到目前为止得到了这个代码并且工作正常,但是即使它的描述太短,按钮也会出现,所以我想让条件只显示描述是XXX长度或更多的字符数... < / p>

1 个答案:

答案 0 :(得分:1)

这很简单,因为prestashop使用smarty。

假设您要将描述限制为200个字符,并在显示之后阅读更多按钮

您可以使用count_characters。这是一个例子:

{if isset($product) && $product->description }
        {* full description *}
        <div id="idTab1"  style="overflow:hidden;height:250px;font-family:avantgarde-book;font-size:12px;line-height:14px;">{$product->description}</div>
        {if $product->description|count_characters:true > 200 }
            <input id="button" type="button" style="margin-top:5px;font-size:12px;color:white;font-family:avantgarde-book; width:120px;background:#4e3248;border:none;height:30px;border-radius:5px;" value="Mostrar +" onclick="showMore()"> 
            <input id="button2" type="button" style="margin-top:5px;display:none;font-size:12px;color:white;font-family:avantgarde-book; width:120px;background:#4e3248;border:none;height:30px;border-radius:5px;" value="Mostrar -" onclick="showLess()">
        {else}
            {* don't display anything *}
        {/if}

{/if}

您可以从这里了解count_characters及其属性

http://www.smarty.net/docsv2/en/language.modifier.count.characters.tpl

P.S在智能语法中以某种方式显示内容的正确方法是在这些标签之间显示{* *}

BR的

(如果这有助于你不要忘记接受它:))