jednoduchý WYSIWYG Editor pro Nette
- zoltinho
- Člen | 24
Zdravím, mám dotaz ohledně WYSIWYG editorů, ještě jsem s žádným nepracoval, a potřeboval bych poradit s výběrem pro Nette.
- Neplacený,
- Mělo by si to rozumět s nejnovějšími Nette 2.0,
- Uživatelé budou pomocí něj vytvářet a ukládat záznamy do databáze (čistě text, žádné obrázky),
- Mělo by jít potom snadno porovnat dva záznamy, kde se liší.
To začtvrté je důležité a tak nevím jestli jít do TinyMCE (protože je to tu zmíněné na fóru) nebo Texy (to známe z wiki, ale tam uživatel musí ovládat formátování). Slyšel jsem tu na fóru že TinyMCE je špatný, a jinde zas že je nejlepší z free wysiwyg editorů.. Třetí často zmiňovaný je OCKEditor, jen nevím jestli to nemá spíš funkčnost, kterou nevyužiju, jde mi hlavně o jednoduchost. Mám v tom guláš tak prosím napište svůj názor do čeho se mám dát.. Děkuji
- Michalek
- Člen | 211
zoltinho napsal(a):
Texy (to známe z wiki, ale tam uživatel musí ovládat formátování).
https://github.com/…/Texyla/wiki
Viz tady na fóru :)
- Ondřej Mirtes
- Člen | 1536
V Texy půjde krásně čistě porovnávat dvě revize textu díky čisté syntaxi. To ti WYSIWYG editor, co generuje HTML, neumožní.
- zoltinho
- Člen | 24
Vybíral jsem jen z WYSIWYG, a přitom poklad mám přímo pod rukama :) na Texyle běží toto fórum, moc dobře se mi s ním pracuje a tak jdu do ní:) navíc je to české a co je české to je hezké
Díky, zachránili jste mi ztracený čas s TinyMCE. I tak by mě zajímalo, proč Tiny někdo chválí a druzí posílají do pekel
- darkkknightik
- Člen | 4
dle me tedy nejsou WYSIWYG… „What you see is what you get“, česky „co vidíš, to dostaneš“. Kdybch z texy dostal co vidim… tak nevim nevim
- Martin
- Člen | 171
TinyMCE je pro běžné uživatele docela dobré, zvládá i DragAndDrop z Wordu, nebo nakopírovat jakoukoli vyrenderovanou html stránku či její část. Ty ho musíš správně nastavit a smířit se s tím, že produkovaný html kód nebude zrovna akurátní, i když se to už dost zlepšilo.
Texy! vyžaduje alespoň minimální inteligenci, ale neděláš-li fórum pro analfabety, je to také dobrá volba.
Prostě záleží na cílové skupině.
Editoval Martin (20. 5. 2011 0:31)
- bojovyletoun
- Člen | 667
darkkknightik napsal(a):
dle me tedy nejsou WYSIWYG… „What you see is what you get“, česky „co vidíš, to dostaneš“. Kdybch z texy dostal co vidim… tak nevim nevim
mě stačí kliknout v texyle na náhled… tak nevim nevim :)
No naštěstí texyla má dobré GUI pro amatéry a profík ocení klávesové zkratky (jen jich je docela málo v základu)
- zoltinho
- Člen | 24
toto je spíš otázka pro ty, kteří s Texy umí.
Stáhl jsem si nejnovější Texy z Githubu , ale připadá mi, že example v něm pro Nette je plny chyb. Po doplnění chybějícího středníku na 202 řádku v TexlaPresenteru se Texyla na localhostu rozběhne, ale při stisknutí tlačítka náhled/HTML skončí na „prosím čekejte“. Tak nevím jestli to brát jako dobrý zdroj.
Neexistuje někde nějaký tutoriál, jak krok po kroku to rozchodit v Nette? Nebo mohl by to tu někdo velmi stručně popsat? To co jsem si o tom přečetl je z roku 2009 a předpokládám, že se ledacos změnilo.
Asi je to na dýl tu popisovat pro někoho jasné věci, ale určitě tím pomůžete mnoha dalším.. celé/á to/a texy je fakt moc dobrá věc a nějaký tutoriál by si to tu zasloužilo
- Tharos
- Člen | 1030
Podle mě existuje i ještě zdařilejší free náhrada. Je možné ji používat pod licencí LGPLv2.
Editoval Tharos (20. 5. 2011 11:16)
- zoltinho
- Člen | 24
Každopádně, jestli má někdo Texylu rozchozenou na Nette 2.0, a podělil by se, co všechno pro to udělal, tak bych mu 10× poděkoval. A kdyby udělal na to tutoriál, tak by tu byl navíc zvěčněný, a námi začátečníky opěvovaný.
@gmvasek: určitě sem nezapomeň pustit své poznatky, díky)
- Pavel Kouřil
- Člen | 128
Zkus nad tím spustit code migration z https://github.com/nette/tools, protože Texyla afaik má poslední commit, který není uplně kompatibilní s poslední verzí Nette [změnily se názvy tříd/Namespaců atd].
Jinak rocházet texylu nad nette měnícím se pod rukama je docela sranda, sám jsem nad tím zabil jedno odpoledne. Pak jsem tedy výsledek push requestnul [a asi omylem zapomněl odmázl před commitem jeden středník], ale od té doby se zase nette změnilo. Každopádně plánuju, pokud se k tomu nikdo neodhodlá, zase nad nejnovějším sandboxem [asi po vydání bety? nebo final, protože _teď_ to cenu nemá] ji zase upravit a push requestnout.
Editoval Pajka (20. 5. 2011 18:49)
- Martin
- Člen | 171
Zdravím. Zneužiji tohoto tématu k dotazu na zkušenější borce. Na základě požadavků zadavatele mám na backendu pro vkládání dynamických stránek použit TinyMCE, vygenerový obsah nechávám Nette po odeslání formuláře plně escapovat před uložením do databáze. Na frontendu nechávám tento kód vypisovat bez escapování. Není v tom bezpečnostní díra?. Přecijen editorské oprávnění má u té firmy více lidí a mohou tam copypastnout kdeco.
- nanuqcz
- Člen | 822
Kdysi jsem četl o jedné hackerské technice (tehdy se používala k prolamování e-mailových účtů, ale dá se to použít i tady):
Útočník do napadaného mailu/HTML stránky vloží javascript, který
útočníkovi odesílá SESSION_ID všech návštěvníků, kteří stránku
navštíví/kteří si přečtou e-mail.
V tvojem případě, pokud by se nějakému editorovi podařilo takový
javascript propašovat do některého ze článků, a nějaký admin (který by
měl víc práv v administraci než ten editor), by si článek zobrazil, mohl
by se ten editor pohybovat v administraci pod jeho identitou (dokud by se admin
neodhlásil a session by tak vy-expirovala).
…teoreticky, nikdy jsem to nezkoušel :-) Snad jsem to vysvětlil srozumitelně.
Editoval xxxObiWan (21. 5. 2011 15:52)
- Martin
- Člen | 171
Jasně, dík. Takže nejlépe zkontrolovat, zda v kódu je javascript a v takovém případě vůbec neukládat (není důvod jim to povolovat, mají si kreslit hezké stránky s obrázky, grafy a tabulkami, ne programovat javascript). Nebo použít funkce pro odstranění javascriptu z html? Předpokládám, že to řeší toto (bohužel odkaz je tam neplatný, zatím hledám, kde ta wiki je). Edit: při hledání jsem našel mnohakilobajtové kódy, zajišťující bezpečnost výstupu z TinyMCE. Přímo v PHP či Nette nic takového není? Tedy že chci zachovat html formátování, odstranit jen skripty a samozřejmě to, co by mohlo způsobit problém v databázi? Nebo je rozpor už v zadání? Zjistil jsem, že editoři vkládají i formuláře, odesílající výsledek na jiný server. Jde to vůbec ošetřit?
Ještě je nějaké riziko?
Editoval Martin (21. 5. 2011 16:24)
- na1k
- Člen | 288
Martin, například ti někdo může (po přepnutí na
editaci zdrojáku) vložit </div>
a tobě se může
v extrémním případě rozpadnout celá stránka :-|
Bohužel se nedá stoprocentně spolehnout ani na běžný výstup (tj. nedovolíš upravovat zdroják) a už jsem se setkal s tím, že se zákazníkovi podařilo editorem stvořit tak šílený kód, že to totálně zničilo celý layout a z webu byla kaše. Byl to myslím CKEditor, ale něco podobného (byť v menším měřítku) už mi udělal i TinyMCE. Nevím jestli na to mám takovou smůlu, ale když wysiwyg prohlašuje že má 100% valid output, nevěřím mu to.
Když už je tu tenhle topic, tak se rovnou zeptám – řešíte tohle nějak? A vemte prosím v potaz, že pro drtivou většinu zákazníků nepřipadá Texy/Texyla v úvahu a chtějí při editaci vidět přesně to, co pak bude na stránce. Nějaké fakt blbuvzdorné řešení?
- Martin
- Člen | 171
na1k napsal(a):
Martin, například ti někdo může (po přepnutí na editaci zdrojáku) vložit
</div>
a tobě se může v extrémním případě rozpadnout celá stránka :-|Bohužel se nedá stoprocentně spolehnout ani na běžný výstup (tj. nedovolíš upravovat zdroják) a už jsem se setkal s tím, že se zákazníkovi podařilo editorem stvořit tak šílený kód, že to totálně zničilo celý layout a z webu byla kaše. Byl to myslím CKEditor, ale něco podobného (byť v menším měřítku) už mi udělal i TinyMCE. Nevím jestli na to mám takovou smůlu, ale když wysiwyg prohlašuje že má 100% valid output, nevěřím mu to.
Když už je tu tenhle topic, tak se rovnou zeptám – řešíte tohle nějak? A vemte prosím v potaz, že pro drtivou většinu zákazníků nepřipadá Texy/Texyla v úvahu a chtějí při editaci vidět přesně to, co pak bude na stránce. Nějaké fakt blbuvzdorné řešení?
</div>
jsem zkoušel a v pohodě – všechny
přebytečné ukončovací tagy TinyMCE odstraní. Zatím jsem neobjevil nic, co
bych tam vložil a rozhodilo mi to layout, jedině příliš široká tabulka
leze do pravého sloupce. To se tak nějak dá předpokládat, kupodivu
zákazník si postěžoval :-)
Editoval Martin (21. 5. 2011 18:50)
- Jan Tvrdík
- Nette guru | 2595
Martin wrote:
</div>
jsem zkoušel a v pohodě – všechny přebytečné ukončovací tagy TinyMCE odstraní.
A když si vypnu javascript a ten HTML kód si napíšu ručně? Nikdy nevěřte ničemu, co posílá uživatel.
- Martin
- Člen | 171
Doteď to tak měli – textareu, do které kopírovali výstup z Frontpage. Takže v tomto ohledu to nebude horší a asi to kontrolovat nebudu (požadavek byl doslova vše jako dosud, jen s novými šablonami, Nette a TinyMCE). Mě šlo spíše o to, co mohou zkopírovat bůhvíodkud z webu (nebo Wordu, Pdf) do TinyMCE, když se jim na nějaké stránce bude něco líbit. Snad to ani nebude z pornostránek, jde o elektrotechniku, ale zákazník dokáže i nemožné. Pamatuji výlet několikačlenné skupiny programátorů k váženému zákazníkovi cca 1400 Km (v autě narvaném několika kusy IBM PC i s monitory), abychom na místě během minuty zjistili, že mají vypadlou zástrčku počítačové sítě. Místní správce jim tvrdil, že síť je OK, jen naše programy ukazují „black screen“, což byl jediný k nám došlý popis chyby (online připojení nebylo umožněno z „bezpečnostních“ důvodů). Od té doby jsme síť poolovali (to byly časy…) a vypisovali veliký žlutý nápis při poruše komunikace.
Edit: Nedalo mi to a ručně jsem tam vložil
</div></div></div></div></div></div>
.
Kupodivu vše OK, musím se podívat, jak vlastně grafik čaroval.
Edit2: Grafik není kouzelník, měl jsem tam zasunutou drobnou kontrolu. Když se to ale „dobře“ napíše, layout se nakonec rozhodí.
Editoval Martin (21. 5. 2011 19:36)
- Patrik Votoček
- Člen | 2221
@Jan Tvrdík: proč? sanitizace dat s Nette souvisí.
Edit: je fakt že s tématem tohoto vlákna už tolik ne…