Formátování textu z databáze

MichalJ
Člen | 6
+
0
-

Ahoj,
řeším problém s formátováním textu z databáze (článku). Mám ho tam uložený včetně základních html značek (br,p,img..), ale latte šablona to jako HTML nepřekládá.
Vím, že se tu problém již řešil (https://forum.nette.org/…vaneho-textu), ale vzhledem k tomu že jsem v Nette začátečník, chtěl bych poprosit o podrobnější návod jak rozjet to Texy – kam zaregistrovat apod.

Případně existuje nějaký jiný způsob jak HTML z databaze v latte zprovoznit?

Děkuji,
Michal

jik
Člen | 146
+
+1
-

v latte šabloně zakázat escapování obsahu proměnné:

{$promenna|noescape}
MichalJ
Člen | 6
+
0
-

To jsem zkoušel, ale neřeší to problém s HTML. Tagy v textu stále zůstávají tak jak jsou v databázi zapsané.

jik
Člen | 146
+
0
-

hmm… takto to používám a je to bez problémů.

  1. smazat adresář cache
  2. není to vyescapované již při ukládání do db?
BuMoRi
Člen | 109
+
0
-

Nehledáš filtr striptags?

kejlicz
Člen | 201
+
0
-

Máš zapnutý vývojový režim?

MichalJ
Člen | 6
+
0
-

Ahoj,
omlouvám se, ale vzhledem k pracovní vytíženosti jsem se k problému nestihl vrátit dříve.
Vývojový režim zapnutý nemám, je to normálně na produkčním webu.
Zjistil jsem, že tagy jsou v databazi uloženy správně ve formátu (<p><b> …), ale pak když si zobrazím zdrojový kod stranky tak jsou ve formátu &ltp&gt a podobně.
Zřejmě musím použít nějakou kombinaci dešifrovacích funkcí, zkoušel jsem html_entity_decode() a další podobné.. ale správné řešení se mi ještě nalézt nepodařilo.

Editoval MichalJ (19. 4. 2018 22:13)

Pavel Kravčík
Člen | 1180
+
0
-

@MichalJ: Tak si vymaž cache. Změna se nemusí projevit hned. :) Jak už radil výše @kejlicz.

MichalJ
Člen | 6
+
0
-

Cache promazávám samozřejmě po každém novém nahrání na server :)

GEpic
Člen | 562
+
0
-

Zjistil jsem, že tagy jsou v databazi uloženy správně ve formátu (<p><b> …), ale pak když si zobrazím zdrojový kod stranky tak jsou ve formátu &ltp&gt a podobně.

@MichalJ však už ti to @jik psal nahoře:

{$promenna|noescape}

dej to tam, promaž cache a bude ti to fungovat správně.

Editoval GEpic (20. 4. 2018 11:11)

MichalJ
Člen | 6
+
0
-

Ok, noescape mi původně nešlo, ale ted konečně zafungovalo.
Děkuji moc za rady.

GEpic
Člen | 562
+
+1
-

Jen nechápu proč nepracuješ ve vývojovém režimu – tenhle problém bys vyřešil už před 8 dny. :D

Editoval GEpic (20. 4. 2018 12:32)

David Matějka
Moderator | 6445
+
+1
-

@TheNEoo ahoj, takovy filter je zbytecny, bude delat v podstate to same, jako |noescape.. ale co radeji pouzivam je, ze rovnou ten Html objekt posilam z presenteru do sablony. v te pak neni nutne |noescape pouzit

GEpic
Člen | 562
+
+1
-

noescape bych se asi vyhnul při výpisu dat z databáze, když vím, že tam bude html.

Jedna věc je chránit výpis, a druhá věc je chránit tento html kód už při uložení (ořezat od něj, co nechceš – <script>, <iframe>, atp.). Protože když se nad tím zamyslíš, pokud nechceš aby se nějaké věci vypisovali a pokaždé je při „renderu“ hlídáš, neni lepší tomu předejít a nenechat si to ani ukládat do databáze?

Editoval GEpic (21. 4. 2018 11:46)