ckeditor ve formulari

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

Dobry den,
potreboval bych se zeptat, jak zapracovat do formulare ckeditor a jak mu predat defaultni text z promenne. Predem dekuji za odpoved.

Editoval jirkamailto (4. 2. 2010 10:44)

toka
Člen | 253
+
0
-

Zdravím, postupujte následně, podobně:

Komponenta:

protected function createComponentFormEditor() {
    $form = new AppForm;

    $form->addTextarea('editor', 'Text:')

    $form->addSubmit('submitted', 'Uložit');
    $form->onSubmit[] = array($this, 'actionEditorSubmit');

    return $form;
}

Render:

public function renderEdit($id) {
    $formData = $this->model->getData($id);

    $this['formEditor']->setDefaults($formData);

}

JS v head:

<script type="text/javascript" src="{$baseUri}js/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="{$baseUri}js/ckeditor/ckeditor.js"></script>
<script type="text/javascript">
    /* <![CDATA[ */
    jQuery(document).ready(function() {
      CKEDITOR.replace('editor');
    });
    /* ]]> */
</script>

Editoval toka (4. 2. 2010 12:10)

jirkamailto
Člen | 27
+
0
-

Dobry den,
dekuji za odpoved, posunulo me to dal, ale jeste bych se potreboval zeptat, zdali jde nejak vykreslit primo v mem kodu, kdybych zavolal vykresleni editoru:

<?php
echo "<script type=\"text/javascript\">
				CKEDITOR.replace( 'editor',
    {
        toolbar : 'Full',
        uiColor : '#9AB8F3'

    });
			</script>
	";



$form->addTextArea('editor', 'Stranka:');

$form->addSubmit('message', 'Odeslat zprávu:');


echo $form;
?>
toka
Člen | 253
+
0
-

Vy nepoužíváte celé Nette, ale jenom Forms? To by mělo fungovat tak, jak to máte, ale buď bych použil konstrukci jQuery jQuery(document).ready(function() {...}); nebo umístil volání CKEDITOR.replace(...) až za vykreslení formuláře echo $form.

jirkamailto
Člen | 27
+
0
-

Ja pouzivam z nette jen nektere casti a nikoliv komplet. Diky za Vasi radu, dal jsem volani CKEDITOR.replace(…) za vykresleni formu a funguje to. Jeste jednou diky za pomoc.

toka
Člen | 253
+
0
-

Není zač.

PetrP
Člen | 587
+
0
-

toka napsal(a):

Komponenta:

protected function createComponentFormEditor() {
    $form = new AppForm;

    $form->addTextarea('editor', 'Text:')

    $form->addSubmit('submitted', 'Uložit');
    $form->onSubmit[] = array($this, 'actionEditorSubmit');

    return $form;
}

Render:

public function renderEdit($id) {
    $formData = $this->model->getData($id);

    $this['formEditor']->setDefaults($formData);

}

Na ID se lze dostat regulerne i v tavárničce:

protected function createComponentFormEditor()
{
	...
	$id = $this->getParam('id');

	$form->setDefaults($this->model->getData($id))

}

Považuju za lepší celou komponentu připravit už v továřničce než to dělat až behěm renderování.

toka
Člen | 253
+
0
-

PetrP napsal(a):

toka napsal(a):

Komponenta:

protected function createComponentFormEditor() {
    $form = new AppForm;

    $form->addTextarea('editor', 'Text:')

    $form->addSubmit('submitted', 'Uložit');
    $form->onSubmit[] = array($this, 'actionEditorSubmit');

    return $form;
}

Render:

public function renderEdit($id) {
    $formData = $this->model->getData($id);

    $this['formEditor']->setDefaults($formData);

}

Na ID se lze dostat regulerne i v tavárničce:

protected function createComponentFormEditor()
{
	...
	$id = $this->getParam('id');

	$form->setDefaults($this->model->getData($id))

}

Považuju za lepší celou komponentu připravit už v továřničce než to dělat až behěm renderování.

Zajímavé řešení, to mne ani nenapadlo, to takto dělat. Je to v něčem lepší, např. rychlost, atd., nebo se jen jedná o hezčí a čistší řešení?

Mortaelth
Člen | 24
+
0
-

Vím že to vůbec nesouvisí s Nette, ale nemohu nikde najít v CDedotor configu jak ho donutit nenahrazovat znaky jako š nebo ' za &...;
Ve starším FCK editoru jsem to našel, ale tady pátrám marně zatím.

Jo, ještě jedna věc: Na začátku mi pořád dává tag <p>, který tam nechci a při enteru bych ho chtěl defaultne donutit použít br místo p (vím že to jde s ctrl+enter)

Editoval Mortaelth (27. 2. 2010 11:52)

Tharos
Člen | 1030
+
0
-

Nahrazování znaků s diakritikou entitami lze zakázat direktivou config.entities_latin (pro nenahrazování ji je zapotřebí nastavit na false), „enter mód“ se nastavuje direktivou config.enterMode.

Vše je i s příklady dobře popsané v API.

Mortaelth
Člen | 24
+
0
-

Tharos napsal(a):

Nahrazování znaků s diakritikou entitami lze zakázat direktivou config.entities_latin (pro nenahrazování ji je zapotřebí nastavit na false), „enter mód“ se nastavuje direktivou config.enterMode.

Vše je i s příklady dobře popsané v API.

Díky, api (config) jsem prohledával, ale neviděl :-)

A po dlouhém hledání a nastavování se mi povedlo rozběhat i CKFinder pro upload souborů :-)