Truncate s ignorováním HTML tagů
- Pavel Kravčík
- Člen | 1193
Overflow: hidden
třeba na tři řádky a pod tím tlačítko,
co javascriptem velikost dle obsahu. Nebudeš nic ořezávat proto nemusíš
kontrolovat DOM strukturu.
- Daewoo
- Člen | 34
Díky všem. Nakonec jsem to HTML vyhodil a truncatem ořízl na tolik, kolik bylo třeba. Nechci se v tom teď nějak víc šťourat.
Lepším řešením by bylo přidat si do Latte vlastní filtr, který by tu mou věc zajišťoval (inspirace např. v https://stackoverflow.com/…gnoring-tags – existuje spousta možností, každá má své mouchy a nutno řádně otestovat), ale chtěl jsem spíš znát, zda mi něco základního neuniklo a zda bych nevynalézal kolo. Pokud to jednoduše aktuálně nejde, nechme to být. Ještě jednou děkuju.
- japlavaren
- Člen | 404
ja pouzivam vlastny filter remove tags a potom to truncatujem:
<?php
$template->getLatte()->addFilter('removeTags', function ($str) {
$str = Strings::replace($str, array(
"~\r?\n~" => ' ',
'~<br[^>]+>\s*~i' => PHP_EOL,
'~<[^>]*>~' => ' ',
'~ +~' => ' ',
));
return trim($str);
});
?>
je tam kopu veci, co to neriesi viz. html entity a pod, ale zatial to stacilo takto a uz to pouzivam niekolko rokov
Editoval japlavaren (23. 11. 2017 16:25)