Přeformátování textu (v HTML) před vypsáním v šabloně
- Tori
- Člen | 32
Pěkné dopoledne,
z databáze dostanu texty článků jako HTML (z wysiwyg editoru), které
potřebuju trochu přeskládat – prázdné odstavce nahradit za
</li><li>
(protože design je nakódovaný takhle).
Napsala jsem si helper, který to udělá, to je ok. Ale každý sudý
<li>
má mít jinou třídu – tzn. nejlepší mi připadá
to HTML rozsekat do pole (pro jednotlivé prvky seznamu) a pak cyklem vypsat.
Kde by bylo nejvhodnější ten převod na pole provést? Asi
v presenteru, že?
- saimons
- Člen | 293
Otazka mi prijde trosku mimo tema Nette, ale mozna by ti pomohlo toto: http://simplehtmldom.sourceforge.net/
- llsm
- Člen | 121
Tori napsal(a):
Ale každý sudý
<li>
má mít jinou třídu
toho by melo jit pomerne snadno docilit javascriptem/ajaxem. A jeste jednoduseji (pokud jde o neco jednoducheho jako treba podbarveni) by to melo jit jen pomoci css bez pridavani tridy. Zkus se podivat na tuhle stranku
Tori napsal(a):
taky ten prázdný odstavec může obsahovat i nějaké bílé znaky, takže stejně bych musela každý odstavec testovat regulárem.
regularni vyraz je mozna zbytecne slozity, slo by toho docilit i pomoci fce
trim
, ale regularem, pokud ho spravne napises taky nic
nezkazis…
- Tori
- Člen | 32
Trim nebude fungovat na pevné mezery (a nevím, jestli budou jako entita nebo ne).
Asi jsme se nepochopili, tak dám konkrétní příklad:
vstup z DB:
<p>text - prvni blok</p>
<p>text</p>
<p> </p>
<p>text - druhy blok</p>
<p> </p>
<p>text - treti blok</p>
<p>text</p>
<p>
</p>
<p>text - ctvrty blok</p>
A požadovaný výstup:
<ul class='dvouSloupcovy'>
<li><h2>Nadpis článku</h2></li>
<li>
<!-- odtud až do příštího komentáře jsou přeformátovaná data z DB -->
<p>text - prvni blok</p>
<p>text</p>
</li>
<li class='pravy'>
<p>text - druhy blok</p>
</li>
<li>
<p>text - treti blok</p>
<p>text</p>
</li>
<li class='pravy'>
<p>text - ctvrty blok</p>
<!-- a uzavření odrážky + seznamu už je zase napevno v šabloně -->
</li>
</ul>
- llsm
- Člen | 121
Na odstraneni pevnych mezer muze poslouzit str_replace
, ale
podle me je wysiwyg editory spis nedelaji. Pokud spravne chapu, ze pozadovany
vystup uz mas az do faze, kdy ti tam akorat chybi class u tech sudych
<li>, tak u toho plati, co jsem psal vyse…
Jinak toto tema se netyka Nette a patri spis na jine forum.