Diskuze: WYSIWYG Editor pre databázu
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 25 zpráv z 25.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
A chceš, aby to byl přímo WYSIWYG (něco, jako word), nebo aby se tučnost, kurzíva atd. vkládaly pomocí BBkódů ([B][/B]), něco jako tady, jenom místo BBkódů jsou tu hvězdičky atd...?
Mužeš zkusit přeba Froalu: https://www.froala.com/wysiwyg-editor
Ukázka Froaly zde: https://codepen.io/…a/pen/PpgxGL
Já používám https://alex-d.github.io/Trumbowyg/
Případně tinymce community
Najviac sa mi páči asi ten Trumbowyg, len nikde som nenašiel nejaké demo kde je to celé funkčne ukázane s formulárom ktorý sa odosiela cez POST.. Našiel som iba nejakú starú verziu kde to je ako textarea, ale to je z roku pána. Inak bude možné potom spätne, z databáze vložiť formátovaný text do toho editora?
Ano bude, ale nejsem si jistý jestli dokážeš rozpoznat jestli je kód vygenerovaný editorem Trumbowyg nebo jestli uživatel napsal kód sám. To by potom bylo hodně nebezpečné, proto radši používám BBkódy...
Nejak sa mi poradilo ho rozchodiť, len mi to funguje nejak divne. Trebarz tučný text môžem dať len vtedy, keď označím nejaký text a kliknem na to B, ale keď kliknem na to B a niečo napíšem tak sa to akoby neaktivuje. A keď už niečo označím tučným, tak všetok ďalší text je tučný a nedá sa to vypnúť. Je to chyba u mňa, alebo to tak má byť?
Na té stránce si editor můžeš vyzkoušet, tak se podívej jestli se to děje i tam nebo pouze u tebe.
Jestli musíš řešit, jestli do toho napsal kód uživatel nebo jestli to
vygeneroval editor, je něco špatně. Uživatelský vstup by měl být vždy
neprůstřelně ošetřen. Je naprosto v pohodě přijímat HTML, jen se musíš
ujistit, že to je OK.
Já na to používám tuhle knihovnu: http://htmlpurifier.org/
Tak som sa nakoniec rozhodol asi pre tú froalu, ale vysvetlí mi niekto, ako môžem cez post odoslať údaje z divu?
Podarilo sa mi to, všetko funguje, až na to, že defaultne je ten align nastavený na stred, proste idem písať a defaultne mi tam nastaví align na center. Dá sa to nejak zmeniť, aby mi to nedávalo na stred, ale na left?
To je zvláštní, zarovnání by mělo být normálně vlevo. Pošli kód.
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="css/codemirror.min.css">
<link href="css/froala_editor.pkgd.min.css" rel="stylesheet" type="text/css" />
<link href="css/froala_style.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/codemirror.min.js"></script>
<script type="text/javascript" src="js/xml.min.js"></script>
<script type="text/javascript" src="js/froala_editor.pkgd.min.js"></script>
<section>
<div id="head">
<div class="line">
<h1><?=Forum::zistiTopicnazov($idtopicu);?></h1>
</div>
</div>
<div id="content">
<div class="line">
<div class="margin">
<form class="customform" action="reply" method="post" id="formular">
<!--<div class="s-12"><textarea placeholder="Vaša správa" name="sprava" rows="10"></textarea></div>-->
<div class="s-12">
<textarea id="txtEditor" name="txtEditor" form="formular"></textarea>
</div>
<input type="hidden" name="idtopic" value="<?=$idtopicu?>">
<div class="s-12 m-12 l-4"><button type="submit">Odpovedať</button></div>
</form>
</div>
</div>
<script>
$(function() {
$('textarea#txtEditor').froalaEditor({
toolbarButtons: ['bold', 'italic', 'underline', 'strikeThrough', 'subscript', 'superscript', 'fontFamily', 'fontSize', '|', 'specialCharacters', 'color', 'paragraphStyle', '|', 'align', 'formatOL', 'formatUL', 'outdent', 'indent', '-', 'insertHR', 'insertLink', 'insertImage', '|', 'undo', 'redo', 'clearFormatting', 'selectAll', 'html', 'applyFormat', 'removeFormat'],
pluginsEnabled: null
})
});
</script>
</div>
</section>
Tak, zarovnanie na stred som vyriešil, problém bol v dive v ktorom je textarea.. Chcel by som však nejak odstrániť to "Quick insert". Ďalej ma trápi šírka textarei, defaultne to je jeden riadok a aj keď nastavím v html rows tak sa nezväčší
Přidej za pluginsEnabled toto:
quickInsertButtons: null
Keď to tam pridám, tak mi to vôbec nezobrazí, zobrazí iba čistú textareu. Vie niekto ako ešte upravím počet tých rows?
Asi jsi někde vynechal čárku zkopíruj si tento kod:
$(function() {
$('textarea#txtEditor').froalaEditor({
toolbarButtons: ['bold', 'italic', 'underline', 'strikeThrough', 'subscript', 'superscript', 'fontFamily', 'fontSize', '|', 'specialCharacters', 'color', 'paragraphStyle', '|', 'align', 'formatOL', 'formatUL', 'outdent', 'indent', '-', 'insertHR', 'insertLink', 'insertImage', '|', 'undo', 'redo', 'clearFormatting', 'selectAll', 'html', 'applyFormat', 'removeFormat'],
pluginsEnabled: null,
quickInsertButtons: null
})
});
Výšku a šířku froaly nastavis taky v javascriptu. Příklad:
<script>
$(function() {
$('textarea#txtEditor').froalaEditor({
height: 300
})
});
</script>
Všetko už funguje, až na to že ten quick insert sa mi tam stále zobrazuje. Po kliknutí naň sa už síce nič nedeje, ale stále sa tam zobrazí.
To je zvláštní, zkus ještě místo:
quickInsertButtons: null
napsat:
quickInsertButtons: []
A pokud to taky nepůjde tak:
quickInsertButtons: ['']
Žiadna zmena, stále tam je, a keď chcem naň kliknúť pravým tlačítkom aby som zistil ako sa volá ten element, že ho nejak schovám, tak zmizne.
Poslední co me napadá je přidat:
quickInsertTags: ['']
Stále sa tam zobrazuje, musí to ísť predsa nejak vymazať.
Vyriešil som to nakoniec jednoduchým display:none v css classe toho tlačítka
Zobrazeno 25 zpráv z 25.