Texy a jeho spravne pouziti v nette

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

Mam dotaz na pouziti Texy v aplikaci, ktera bude pristupna z venci (neco jako public blog). Ale nejsem si presne jistej jak Texy pouzit (rad bych potom pouzil i Texylu). Pokud budu mit nakej formular, kde si lidi napisi clanek tak ho pak budu ukladat do DB a potom nekde vypisovat. Neni mi jasne v jake fazi pouzit Texy jestli nak preparsovat na html pred ulozenim do DB a pak vypisovat uz jen kod z DB a nebo pouzit helper pri vypise? Pokud bych ukladal preparsovane veci do DB tak pak pro admina muzu nasadit napriklad TinyMCE (mozna je to zbytecne), ale pro nacitani uzivatelum bych to zase musel prekonvertovat zpet do Texy.

Pro texy jsem se rozhodl ze lze osetrit proti vsupu nezadouciho kodu, dival jsem se na nake nastaveni ze jdou zakazat napr JS atd, o to se potom postara ten parser zavolany pres helper od Texy?

Aurielle
Člen | 1281
+
0
-

Jak použiješ Texy je na tobě. Není mi jasná část „kovertování do tinymce a zpět do texy“, nicméně asi bych to řešil nějakým helperem společně s cache. Co ti vyjde z helperu je čistě podle toho, jak nastavené Texy helperu předáš.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

To, ve které fázi převod z Texy do HTML provést záleží pouze a jen na potřebách aplikace. Takže pokud je třeba možnost dokument dále editovat, tak je asi nejlepší si uložit zdrojový text v Texy a převod do HTML provádět při výpisu. A pokud to bude aplikaci zpomalovat, tak výsledné HTML třeba cachovat. Odpovídá to na něco z dotazu?

saimons
Člen | 293
+
0
-

Prave s tim TinyMCE jsem si rikal, ze by to mohl vyuzit treba administrator webu, prece jen je to pohodlnejsi na pouzivani (ikdyz je to otazkou), ale zase se mi tam bude dostavat nakej bordel v kodu z TinyMCE. Takze jestli jsem to dobre pochopil tak do DB ulozim jen vystup z formulare a pak pri vypise na to pouziji helper s texy a popripade cache. Diky za radu.

Peetee
Člen | 75
+
0
-

Rád bych ještě zmínil možnost do DB ukládat text v Texy! i HTML výstup z Texy! (do dvou sloupců). Toto řešení poskytuje dobrý výkon a snadno se kód v HTML udržuje aktuální.

Doporučuji se rozhodnout pro jedno nebo druhé řešení (Texy! + Texyla vs. HTML + TinyMCE), míchání by IMHO přineslo zmatky.

saimons
Člen | 293
+
0
-

Peetee napsal(a):

Rád bych ještě zmínil možnost do DB ukládat text v Texy! i HTML výstup z Texy! (do dvou sloupců). Toto řešení poskytuje dobrý výkon a snadno se kód v HTML udržuje aktuální.

Doporučuji se rozhodnout pro jedno nebo druhé řešení (Texy! + Texyla vs. HTML + TinyMCE), míchání by IMHO přineslo zmatky.

Zajimavej napad, ale jeste mam jednu otazku co me tak nak vrta hlavou. Pokud do db ulozim cistej vystup z formulare (neosetrenej pres Texy) a dejme tomu ze si ho pak otevre administrator na upravu a bude obsahovat nakej skodlivej kod (JS), tak si ho ten admin taky spusti a muze mu napriklad ukradnou session. Jak tohle resit, nebo kdyz se to nacte do textArea tak se ten JS nespusti?

bojovyletoun
Člen | 667
+
0
-

radší to otestuj, ale myslím, že se tak nestane: uložíš do db **texy**<script>...</script>.
Admin si to otevře: stane se něco takovéhleho $form[‚articleBody‘]=‚neosetreny text‘; Ale tohle si Nette přece umí ohlídat…

arron
Člen | 464
+
0
-

saimons napsal(a):

Prave s tim TinyMCE jsem si rikal, ze by to mohl vyuzit treba administrator webu, prece jen je to pohodlnejsi na pouzivani …

Pak mozna stoji za zvazeni, jestli vubec pouzivat Texy ze jo (ackoliv osobne s timhle tvrzenim silne nesouhlasim :-)). Jsem presvedceny, ze i TinyMCE pujde nakonfigurovat tak, aby Ti tam neprosel js a podobné. Pokud ale chces pouzivat Texy jenom kvuli tomuhle, tak ho mozna nema smysl pouzivat, ne?

Peetee napsal(a):

Rád bych ještě zmínil možnost do DB ukládat text v Texy! i HTML výstup z Texy! (do dvou sloupců). Toto řešení poskytuje dobrý výkon a snadno se kód v HTML udržuje aktuální.

Jenom skoda, ze pak mas v databazi skoro 2× tolik dat…prosel jsem uz mnoha fazemi toho, jak tohle spravne resit a jsem presvedceny, ze uplne nejspravnejsi reseni je cache prevedenych textu z Texy to HTML. Nikde se ti nic neuklada dvakrat (v DB), je to dostatecne rychle (nedochazi k prevodu pri kazdem pozadavku) a neni to narocne na spravu (akorat se pri uprave toho textu musi smazat prislusna cache (at ziji tagy)).

saimons
Člen | 293
+
0
-

arron napsal(a):

Pak mozna stoji za zvazeni, jestli vubec pouzivat Texy ze jo (ackoliv osobne s timhle tvrzenim silne nesouhlasim :-)). Jsem presvedceny, ze i TinyMCE pujde nakonfigurovat tak, aby Ti tam neprosel js a podobné. Pokud ale chces pouzivat Texy jenom kvuli tomuhle, tak ho mozna nema smysl pouzivat, ne?

Jako popravde jsem nikdy Texy nepouzival, ale kdyz jsem to ted prochazel tak se mi to zacalo libit. Hlavne kvuli tomu ze z toho jde doopravdy cistej kod a je to takove jednoduse prakticke, uz v zakladu to nepovoluje zadne praseciny. Kdybych nakonec pouzil TinyMCE, tak da se nak na strane serveru validovat ten vstup? Nekde na foru jsem cetl ze by teoreticky mohlo jit prohnat ten kod pres texy (kod z TinyMCE) a tim by se odstranilo vsechno nezadouci. Nebo existuje naka jina knihovna nebo neco co by to resilo, mam totiz obavu, ze ikdyz se budu snazit to co nejvice zabezpecit tak, je urcita pravdepodobnost, ze na neco zapomenu.

EDIT: A nebo to neukladat dvakrat do DB ale rovnou prevedene do HTML a pro editaci pouzit html2texy Bude zajistena rychlost, bezpecnost.

Editoval saimons (26. 5. 2011 10:35)