jednoduchý WYSIWYG Editor pro Nette

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

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.

  1. Neplacený,
  2. Mělo by si to rozumět s nejnovějšími Nette 2.0,
  3. Uživatelé budou pomocí něj vytvářet a ukládat záznamy do databáze (čistě text, žádné obrázky),
  4. 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 | 210
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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

Aurielle
Člen | 1281
+
0
-

Zrovna se do implementace chystám, až budou nějaké výsledky můžu sem postnout řešení…

rixi
Člen | 109
+
0
-

Mne sa osvedcil CkEditor v kombinacii s CkFinderom. Je to pekne riesenie aj s uploadovanim obrazkov a suborov, ktore mi oproti TinyMCE viac sadlo, co sa tyka konfiguracie a grafickeho rozhrania okien. Ale asi tak, ze kolko ludi, tolko chuti.

nanuqcz
Člen | 822
+
0
-

Co se týče CKEditoru, mám takový tip :-)

CKFinder je placený, takže se vám tam bude pořád vypisovat jejich otravná hláška, ať si jejich findera koupíte. Ale existuje freeware náhrada , kterou už nějakou dobu spokojeně používám, takže doporučuju ;-)

Tharos
Člen | 1030
+
0
-

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)

nanuqcz
Člen | 822
+
0
-

Tharos: Wow, díky :-) Myslel jsem, že existuje jen ta jedna.

zoltinho
Člen | 24
+
0
-

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
+
0
-

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)

lopikol
Začátečník | 75
+
0
-

Přidávám se k prosbě zoltinho.

zoltinho
Člen | 24
+
0
-

Odkládám to na neurčito (počkám si po 1.6.)

Potřeboval bych alespoň náhradní řešení a to, aby se při výpisu uložené textarey z databáze vykreslovaly ‚entery‘. Aby, když uživatel uloží zařádkovaný text, se vypsal tak jak ho tam uložil.

Patrik Votoček
Člen | 2221
+
0
-
<p>{$content|nl2br}</p>
Aurielle
Člen | 1281
+
0
-

Není tohle třeba vypsat bez escapování?

voda
Člen | 561
+
0
-

Nemělo by to být:

<p>{!$content|escape|nl2br}</p>

Jinak by se <br> taky nahradily za entity.

Martin
Člen | 171
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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í?

nanuqcz
Člen | 822
+
0
-

na1k: Taky se zákazníkům u nás docela často dařilo rozhodit celý design přes WYSIWYG editor. Od té doby, co jsme jim zakázali kopírování obsahu z wordu/excelu/externích stránek, se neobjevil ani jeden problém :-D

Jan Tvrdík
Nette guru | 2595
+
0
-

Stačí výstup z TinyMCE prohnat přes Texy!.

Martin
Člen | 171
+
0
-

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)

Martin
Člen | 171
+
0
-

Jan Tvrdík napsal(a):

Stačí výstup s TinyMCE prohnat přes Texy!.

Dík, zkusím. Ono oproti tomu, co měl zákazník doteď, bude cokoli jiného mnohasetprocentním zlepšením bezpečnosti, ale jak se tvrdí, stačí i jediné malé opomenutí.

Jan Tvrdík
Nette guru | 2595
+
0
-

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
+
0
-

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)

na1k
Člen | 288
+
0
-

Jan Tvrdík napsal(a):

Stačí výstup z TinyMCE prohnat přes Texy!.

Tohle fakt jde? Jsem nevěděl, že Texy umí i validovat HTML :-p

To je ale potřeba nějak vypnout texifikaci, ne?

Aurielle
Člen | 1281
+
0
-

Texyfikace si myslím že ničemu vadit nebude… Naopak, funkce navíc :D

Jan Tvrdík
Nette guru | 2595
+
0
-

Běžte si to řešit jinam, děkuji.

Patrik Votoček
Člen | 2221
+
0
-

@Jan Tvrdík: proč? sanitizace dat s Nette souvisí.

Edit: je fakt že s tématem tohoto vlákna už tolik ne…