PDA

Zobacz pełną wersję : Wykorzystanie TinyMCE we własnym komponencie.



fotomagik
03-03-2006, 13:43
Witajcie !

Piszę własny komponent dla Mambo/Joomla!
Moje tabele mają pola opisowe.
Chcę do ich edycji w panelu admina zastosować systemowy edytor CMS'a.

1) Po zastosowaniu w miejsce elementu <textarea> obiektu AreaEdit() pojawia się edytor (bot) ustawiony jako domyślny. Zawiera tekst ze zmiennej którą podaję mu jako jeden z parametrów.

Niestety kiedy po naciśnięciu przycisku ZAPISZ odczytuję zmienne (name, id) nie są one zmodyfikowane przed przesyłaniem formularza.

Może, ktoś próbował już podobnych "sztuczek" ?

2) Edytor nie daje się poprawnie osadzić na zakładce. Jakiś pomysł ?

Pozdrawiam
FotoMagik
__________________________________________________ ____
Tapety (http://www.wallpapers.com.pl/) :: Fotografie za darmo (http://www.fotofree.pl/) :: Rozmowy w radio (http://www.radio.twoje.com/)

nexus246
03-03-2006, 14:22
ja tak uzywam:
<?php
editorArea( 'editor1', $row->nazwa_pola , 'nazwa_pola', '500', '500', '75', '20' ) ;
?>

fotomagik
03-03-2006, 15:51
1) Czy id edytora musi nazywać się editor1, editor2 itd ?
2) Czy przepisanie zawartości $editor1 do $nazwa_pola należy wykonać ręcznie po validacji, czy dzieje się to automatycznie?
Bo
znalazlem taki fragment w admin.content.html.php:


// do field validation
if (form.title.value == ""){
alert( "<?php echo $adminLanguage->A_COMP_CONTENT_MUST_TITLE;?>" );
} else if (form.sectionid.value == "-1"){
alert( "<?php echo $adminLanguage->A_COMP_CONTENT_MUST_SECTION;?>" );
} else if (form.catid.value == "-1"){
alert( "<?php echo $adminLanguage->A_COMP_CONTENT_MUST_CATEG;?>" );
} else {
<?php getEditorContents( 'editor1', 'introtext' ) ; ?>
<?php getEditorContents( 'editor2', 'fulltext' ) ; ?>
submitform( pressbutton );
}

Pozdrawiam FotoMagik
__________________________________________________ ____________
Tapety (http://www.wallpapers.com.pl/) :: Fotografie za darmo (http://www.fotofree.pl/) :: Rozmowy w radio (http://www.radio.twoje.com/)

nexus246
03-03-2006, 17:29
1) Czy id edytora musi nazywać się editor1, editor2 itd ?


Wydaje mi się że chodzi tutaj o kolejne instancje edytora ale nigdy nie wnikałem :)



2) Czy przepisanie zawartości $editor1 do $nazwa_pola należy wykonać ręcznie po validacji, czy dzieje się to automatycznie?


Nie wiem czy dobrze rozumiem pytanie... Generalnie można je odebrać w docelowym pliku formularza tak samo jak każdą inną wartość z pola formularza.

fotomagik
06-03-2006, 09:59
Dzięki za podpowiedź.
Przeanalizowałem komponent com_content.html.php .

Przed wysłaniem formularza, czyli w sekcji validate musi nastąpić przepisanie zawartości okna edytora do zmiennej. Służy do tego funkcja getEditorContents .

A oto fragment z wyżej wymienionego pliku:


// do field validation
if (form.title.value == ""){
alert( "<?php echo $adminLanguage->A_COMP_CONTENT_MUST_TITLE;?>" );
} else if (form.sectionid.value == "-1"){
alert( "<?php echo $adminLanguage->A_COMP_CONTENT_MUST_SECTION;?>" );
} else if (form.catid.value == "-1"){
alert( "<?php echo $adminLanguage->A_COMP_CONTENT_MUST_CATEG;?>" );
} else {
<?php getEditorContents( 'editor1', 'introtext' ) ; ?>
<?php getEditorContents( 'editor2', 'fulltext' ) ; ?>
submitform( pressbutton );
}



Przy okazji uwaga.
TinyMCE nie działa na zakładkach. Dlatego można zastosować albo mosCE, albo nowy JCE (http://www.joomla.pl/index.php/content/view/172/12/) ... polecam ten ostatni.

nexus246
06-03-2006, 10:24
TinMCE działa jak najbardziej na zakładkach. Przynajmniej u mnie.