Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [TinyMCE] Jak dostosować do skryptu CMS, do API standardowego edytora, czy...
WebCM
post 27.05.2010, 16:39:49
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Dostosowałem TinyMCE do skryptu CMS. Teraz zostaje pytanie, jak go zaimplementować, aby był kompatybilny z dotychczasowym API.

Pierwotnie zaplanowałem utworzyć możliwość podpięcia dowolnego edytora. Na razie dostosowałem tylko TinyMCE, ale muszę go wprowadzić. Czy warto stworzyć także furtkę dla innych edytorów WYSIWYG?

Administrator lub redaktor ma mieć wybór, czy chce używać standardowego (który po prostu wstawia partie HTML lub BBCode do <textarea>), czy WYSIWYG.

Aktualnie ładuję edytor tak

W kodzie PHP dołączam skrypty
  1. $content->addScript(LANG_DIR.'edit.js');
  2. $content->addScript('cache/emots.js');
  3. $content->addScript('lib/editor.js');

W kodzie HTML wywołuję edytor:
Kod
var f = document.forms[0] //forma
var e = new Editor(f.txt) //utwórz edytor nad polem txt
e.emots() //dodaj emotikony pod polem <textarea>
e.protect() //ochroń przed utratą danych
f.elements[0].focus() //focus pierwszego elementu formularza

Mogę po prostu załadować edytor WYSIWYG w editor.js, ale po co w takim razie ładować standardowy edytor i jego plik językowy?

Innym wyjściem jest stworzenie mostu dla edytorów WYSIWYG. Jak to najlepiej uczynić?

Próbuję to zrobić tak, aby zachować kompatybilność z API standardowego edytora:
Kod
function Editor(o, bbcode)
{
    this.o = tinymce.add(new tinymce.Editor(o, {

        //Global settings
        dialog_type: 'modal',
        gecko_spellcheck: true,

        //Entities - UTF-8 needs only critical characters
        entities: '160,nbsp,38,amp,60,lt,62,gt',

        //Theme
        theme: 'advanced',
        theme_advanced_resizing: true,
        theme_advanced_toolbar_location: 'top',
        theme_advanced_toolbar_align: 'left',
        theme_advanced_statusbar_location: 'bottom',

        // i inne opcje

    }));
    this.o.render();
}

Editor.prototype.emots = function() {};
Editor.prototype.protect = function() {};

Czy to dobre podejście? W przeciwnym razie musiałbym osobno obsługiwać edytor standardowy i graficzny w szablonach.

No dobrze, ale jak to rozwiązać od strony serwera?

Po prostu (to tylko uproszczony przykład, aby zrozumieć sens):

  1. if( $cfg['typ_edytora'] == 'wysiwyg' )
  2. {
  3. //No dobrze, ale załadowanie tiny_mce.js należy już do skryptu portowego editor.js?
  4. $content->addScript('plugins/' . $cfg['nazwa_edytora'] . '/editor.js');
  5. }
  6. else
  7. {
  8. $content->addScript(LANG_DIR.'edit.js');
  9. $content->addScript('cache/emots.js');
  10. $content->addScript('lib/editor.js');
  11. }
questionmark.gif

Czy stworzyć bardziej ambitny i elastyczny port w PHP lub JS?

Jak najlepiej podejść do problemu?

Ten post edytował WebCM 27.05.2010, 16:40:31


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
MamKonika
post 30.05.2010, 15:20:49
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.05.2010

Ostrzeżenie: (10%)
X----


No to post 2. ALE CO
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 13:54