Jak zprovoznit TinyMCE v Nette

Užitečné odkazy

Navěšení TinyMCE na textareu

Pomocí třídy (doporučeno)

$form->addTextArea('text', 'Text')
    ->setAttribute('class', 'mceEditor');
tinyMCE.init({
    mode: "specific_textareas",
    editor_selector: "mceEditor",
    ...
});

Pomocí ID

$form->addTextArea('text', 'Text')
    ->setHtmlId('mceEditor');
tinyMCE.init({
    mode: "exact",
    elements: "mceEditor",
    ...
});

Zprovoznění validace

Aby bylo možné používat na textareu s TinyMCE validaci, je nutné zajistit, aby se před Nette validací uložil napsaný text do textarey.

Pokud je ve formuláři jen jedno tlačítko, nebo je jich tam více, ale všemi se spouští validace, tak lze uložení obsahu navázat na onSubmit formuláře.

$form->getElementPrototype()->onsubmit('tinyMCE.triggerSave()');

Pokud jedno z tlačítek validaci nespouští (třeba tlačítko „Zpět“, nastavuje se pomocí metody setValidationScope), tak je validace navázána na onClick těch tlačítek, které validaci spouští.

foreach ($form->getComponents(true, 'SubmitButton') as $button) {
    if (!$button->getValidationScope()) continue;
    $button->getControlPrototype()->onclick('tinyMCE.triggerSave()');
}