Zápis podmínky – délka textu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
n.u.r.v.
Člen | 485
+
0
-

Ahoj, na stránkách si vypisuji ve sloupci novinky a chtěl bych aby když má text víc než 200znaků, aby byl zkrácen na těch 200 znaků + přidán odkaz na celou aktualitu…

Udělal jsem to takto:

<h3>Aktuality pro tento měsíc</h3>
{if $actuallyListCount>0}
    {foreach $actuallyList as $item}
        <h4>{$item->TITLE}</h4>
           {if $item->TEXT|length >= 200}
               <p>{$item->TEXT|noescape|truncate:200} <a href="odkaz...">pokračování.</a></p>
           {else}
               <p>{$item->TEXT|noescape}</p>
           {/if}
    {/foreach}
{else}
    <p>Pro tento měsíc nejsou dostupné žádné aktuality.</p>
{/if}

Problém je že to nějak nefunguje – i text o délce 80 znaků to v podmínce bere jako >=200

Přitom když vypíšu {$item->TEXT|length}, tak se zobrazí správná délka textu

Co dělám špatně? Díky

Edit: pomohlo místo |length dá strlen()…Ale proč to nefunguje s tím helperem?

Editoval n.u.r.v. (29. 5. 2014 23:44)

Tomáš Votruba
Moderator | 1114
+
0
-

Pokud voláš helper jinak než při výpisu proměnné, je potřeba volat takto:

{if $template->lenght($item->TEXT) >= 200}

Případně můžeš rovnou použít strlen:

{if strlen($item->TEXT) >= 200}
n.u.r.v.
Člen | 485
+
0
-

jj, právě jsem na to přišel a dal jsem to jako edit do původního příspěvku…díky :-)

Jan Tvrdík
Nette guru | 2595
+
0
-

Doufám že je jasné, že strlen počítá bajty, nikoliv znaky.

Tomáš Votruba
Moderator | 1114
+
0
-

Co by tedy bylo vhodnější?

Jan Tvrdík
Nette guru | 2595
+
0
-

Třeba mb_strlen.