Nette\String truncate
- Jeremy88
- Člen | 3
https://api.nette.org/….String.html#…
Mám funkci, která řeší podobnou věc, ale navíc je tam taky pod nepovinným parametrem, aby se celý řetězec přidal do atributu title buďto ve span nebo abbr tagu.
U span to řeším ještě navíc pomocí css:
cursor: help;
border-bottom: 1px dotted #555;
Tak pokud naznáte, že by se to mohlo občas hodit, požádal bych někoho šikovného o rozšíření metody truncate v tomto smyslu.
Já sám jsem to používal třeba když jsem výpis z db řešil tabulkou a nechtěl jsem, aby některý řádky byly vyšší než ostatní, ale bylo potřeba aspoň nějakou formou jejich obsah zpřístupnit.
- Ondřej Mirtes
- Člen | 1536
HTML se do takového „jádra“, jako je String::truncate nehodí. Napsal bych si na to helper, nějak takto:
public static function truncateHelper($string, $length) {
return '<span title="' . $string . '">' . String::truncate($string, $length) . '</span>';
}
Po registraci do šablony:
$template->registerHelper('truncate', 'Helpers::truncateHelper');
…by se to dalo používat takto:
{$stringToTruncate |truncate:'10'}
Editoval LastHunter (25. 6. 2009 8:58)
- mancze
- Člen | 58
LastHunter napsal(a):
…by se to dalo používat takto:
{$stringToTruncate |truncate:'10'}
Nebo spíš
{!$stringToTruncate |truncate:'10'}
protože jinak by se span vyescapoval, nemýlím-li se. Proto pro takové věci obvykle používám filtry. Tam se na výkřičník nezapomene ;).
Editoval mancze (25. 6. 2009 9:09)
- Ondřej Mirtes
- Člen | 1536
mancze napsal(a):
LastHunter napsal(a):
…by se to dalo používat takto:
{$stringToTruncate |truncate:'10'}
Nebo spíš
{!$stringToTruncate |truncate:'10'}
protože jinak by se span vyescapoval, nemýlím-li se. Proto pro takové věci obvykle používám filtry. Tam se na výkřičník nezapomene ;).
Přemýšlel jsem nad ním, ale podle mě je to tak, že se escapuje jen ten samotný řetězec a výstup už escapovaný není. Stejně jako když bych dal {$text |texy}, tak to má vliv jen kdybych do Texy posílal HTML značky, které chci jako HTML značky interpretovat. Ale třeba se mýlím, chce to ozkoušet.
Honza M. napsal(a):
Proč tam máte ty apostrofy okolo desítky?
Nebyl jsem si jistý, jak to tam s těmi parametry je. Jestli tam být nemusí, tím líp :)
Editoval LastHunter (25. 6. 2009 12:34)