Přidání WYSIWYG editoru do projektu
- iguana007
- Člen | 970
Já to řeším takto:
$this->addTextArea('main_text', 'Hlavní obsah článku')
->addRule(Form::FILLED, 'Položka %label musí být vyplněná')
->addRule(Form::MIN_LENGTH, 'Položka %label musí obsahovat min. %d znaků', 3);
//Nastavím class te textarea aby byla ve style class="ckeditor"
$this['main_text']->getControlPrototype()->class('ckeditor');
//Toto řeší submit formu, aby se obsah CKEDitoru předalo do té textarea, kterou jsem vytvořil výše
$this->getElementPrototype()->onsubmit('CKEDITOR.instances["' . $this['main_text']->getHtmlId() . '"].updateElement()');
a v template jen naincluduju javascript ckeditoru:
<script type="text/javascript" src="{$basePath}/js/ckeditor/ckeditor.js"></script>
- Jiří Nápravník
- Člen | 710
No TinyMCE v podstate zadny zasah v nette nepotrebuje, kdyz se podivas na dokumentaci, staci neco takoveho vlozit do sablony:
<script type="text/javascript" src="<your installation path>/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: "textarea",
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste moxiemanager"
],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
</script>
v tom selector, jenom nadefinujes, pro co se to ma definovat… Ja treba davam vsemu class .tinymce a selector pak vypada jako textarea.tinymce
- marau
- Člen | 50
Já mám rozšířený formulář o addEditor, ve kterém na základě nastavení uživatele zobrazuji příslušný editor – nastavením class na textarea (v administraci lze vybrat mezi tinymce a ckeditorem). Většina však využívá CK, v budoucích realizacích bych se asi na volbu editoru vykašlal, ale zase je hezké mít to takto rozšiřitelné, pokud by třeba klientovi daný editor nevyhovoval. Nemusí se to pak všude přepisovat a veškerá logika se změní pouze v rozšíření addEditor.