2009-03-26 9 views
5

Ich versuche TinyMCE zu arbeiten. Ich habe es mit der normalen Methode der Einbeziehung von tiny_mce.js und dann mit tinymce.init (...) versucht und es funktioniert. Ich habe dann versucht, tiny_mce.gzip.js + php compressor und es hat funktioniert, aber es war sehr langsam.TinyMCE: alle Dateien packen, anstatt sie dynamisch zu laden ... möglich?

Jetzt habe ich bereits meine CSS- und JS-Dateien in eins von jedem verpackt mit all meinen Dateien zusammen verkettet. Im Falle von Javascript werden sie auch minimiert.

In beiden Fällen sind sie mit einem Zeitstempel von einem der Dateien versioniert so habe ich URLs wie:

/script/script.1233454569.js

, die zu einer PHP-Datei umleitet, die entweder Aufschläge eine zwischengespeicherte Version oder erstellt die zwischengespeicherte Version (falls erforderlich) und dient dazu. Es fügt expires headers hinzu und arbeitet mit gzip compression und funktioniert grundsätzlich gut.

Ich möchte winzige MCE in diesen Mechanismus passen, aber es erweist sich als schmerzhaft. Ordnung scheint wichtig zu sein. Zur Zeit habe ich:

  • tiny_mce.js
  • MyScript.js
  • default_editor.js (aus dem einfachen Thema)
  • en.js (dito)

aber es wird kommen mit "du bist undefiniert", für die ich bei Google keine passende Antwort finden konnte. Das ist wirklich irritierend. Hat jemand Erfahrung damit?

Sind andere Editoren besser geeignet für die Verpackung, wie ich oben beschrieben habe, anstatt ihre eigenen Schemata auf dich zu zwingen (was mich unendlich ärgert)?

Antwort

3

Ich habe versucht, genau das gleiche zu tun und verbrachte viel zu viel Zeit versuchen. Am Ende entschied ich mich für den GZip-Kompressor von TinyMCE und konzentrierte mich darauf, die CSS-Dateien und Bilder für das zu kombinieren, was ich brauchte. Das Problem ist, dass TinyMCE massiv ist, es lädt dynamisch die Dateien, die es benötigt, und es nutzt keine existierende JavaScript-Bibliothek, so dass es am Ende eine Menge des gleichen Codes repliziert, wenn Sie bereits irgendeine Art von Bibliothek verwenden. war der einzige andere Editor, den ich hatte die gleichen Funktionen und Browser-Kompatibilität, aber es sah nicht so aus, als wäre es einfacher in Bezug auf die Integration in meine Caching-Schema (das klingt ähnlich wie Ihres) und ich denke, die Lizenzierung machte es zu einer Nicht-Wahl für mich. Sie können einen list von Editoren ansehen, die hier verfügbar sind, aber das waren die zwei, die ich als die besten von dieser Liste empfand. Am Ende entschied ich mich, mit TinyMCE zu gehen und einen WYSIWYG-Editor für MooTools auf meine To-Do-Liste zu setzen, da dies das JavaScript-Framework ist, das ich am häufigsten verwende.

Wenn Sie es hacken würden, würde ich vorschlagen, jedes Skript herauszufinden, das Ihre spezifische Implementierung von TinyMCE benötigt, kombinieren Sie sie in Reihenfolge, und dann isolieren und kommentieren Sie den Code, der jede Datei lädt. Wenn Sie mutig sind, können Sie auch die kombinierte Datei packing ausprobieren. Wenn Sie es zur Arbeit bekommen, würde ich es gerne wissen.

+0

ich im Grunde wurde im Anschluss an die Logik (oder versuchen zu) der gzip-Komprimierungsverfahren die richtige Liste der Dateien in der richtigen Reihenfolge zu erhalten. Ich muss aber trotzdem etwas vermissen. Es ist irritierend. Ich hasse es, wenn etwas zu unflexibel ist, um einfach nur statisch vorgeladen zu sein. – cletus

+0

Ich habe das auch versucht. Zwischen dieser und der Code-Replikation entschied ich, dass meine mögliche Lösung meine eigene sein würde. Als eine weitere Option möchten Sie vielleicht in den Editor schauen, den Wordpress verwendet. Es könnte TinyMCE sein, aber es ist ziemlich schnell. – VirtuosiMedia

+0

Sie können auch versuchen, in jeder Datei zu suchen, die die gzip-Datei aufruft, um zu sehen, ob sie zusätzliche Dateien laden (was ich vermute, dass sie das tun). Führen Sie speziell in der Datei tiny_mce_src.js eine Suche nach "file:" durch, die zu einer Reihe von Kommentaren führt, die auf die aufgerufenen Dateien hinweisen. – VirtuosiMedia

3

Ich habe auch versucht TinyMCE in einem minimierten Skript verketten, hier ist was ich es tat, um zu arbeiten:

in tiny_mce_src.js Änderung dieser Linie ...

if (n.src && /tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)) { 

werden entweder .. .

if (n.src && /YourFullScriptName.js/.test(n.src)) { 

oder auch nur ein Teil des Skripts Namen ...

if (n.src && /ullScriptNa/.test(n.src)) { 

Es ist die Linie, die die baseUrl ausarbeitet, damit es alle anderen Dateien laden, die TinyMCE benötigt. Die Sache ist, wegen der Lizenz können wir das nicht tun. Ich habe eine gewisse Hoffnung haben durch diese Zugabe vor der verketteten tiny_mce.js Datei ...

var tinyMCEPreInit = {base : 'tinymce/jscripts/tiny_mce/'}; 

folgende Spocke's advice, aber ich kann nicht scheinen, dass entweder zu arbeiten. Die einzige andere Sache, an die ich denken kann, ist, dass wir entweder das winzige _ mce.js oder das winzige _gzip .js Skript dynamisch laden, und dann den/die gewünschten Textbereich (e) initialisieren von dort. Aber ich bin noch lange nicht fertig mit der Arbeit.

hoffe, das hilft,

Cheers,

DJDaveMark

+0

'var tinyMCEPreInit' muss möglicherweise' window.tinyMCEPreInit' sein – huyz

+0

var tinyMCEPreInit = {base: 'tinymce/jscripts/tiny_mce /' , Suffix: '.min', Abfrage: ''}; Das funktioniert für mich .. – TechieBrij

0

begann ich den Gzip Compressor und verknüpft mich mit Fiddler in der Rendering-Prozess.

Im Grunde das, was im Browser angekommen ist, habe ich eingefangen und in eine eigene Datei gepackt.

Schmutzige aber die Arbeit

Verwandte Themen