2009-03-26 1 views
5

Я пытаюсь заставить TinyMCE работать. Я пробовал это, используя обычный метод включения tiny_mce.js, а затем используя tinymce.init (...), и он работает. Затем я попробовал tiny_mce.gzip.js + php compressor, и это сработало, но это было очень медленно.TinyMCE: упаковка всех файлов вместо их динамической загрузки ... возможна?

Теперь я уже упаковываю свои файлы CSS и JS в один из них, все мои файлы объединены вместе. В случае Javascript они также уменьшаются.

В обоих случаях они версированные с меткой времени одного из файлов, так что у меня есть URL-адреса, такие как:

/script/script.1233454569.js

, который перенаправляет на PHP файл, либо Подачи кешированную версию или строит кешированную версию (при необходимости) и обслуживает ее. Он добавляет срок действия заголовков и делает сжатие gzip и в основном работает хорошо.

Я хочу поместить крошечный mce в этот механизм, но это доказывает боль. Порядок, похоже, имеет значение. В настоящее время у меня есть:

  • tiny_mce.js
  • myscript.js
  • default_editor.js (от простой темы)
  • en.js (Ditto)

, но он идет вверх с «u undefined», для которого я не нашел подходящего ответа на google. Это действительно раздражает. У кого-нибудь есть опыт?

Являются ли какие-либо другие редакторы более подходящими для упаковки, как описано выше, вместо того, чтобы навязывать вам свои собственные схемы (что меня не раздражает)?

ответ

3

Я попытался сделать то же самое и потратил слишком много времени на попытку. В конце концов, я решил использовать компрессор GZip, предоставленный TinyMCE, и сосредоточился на объединении файлов и изображений CSS для того, что мне было нужно. Проблема в том, что TinyMCE массивный, он динамически загружает нужные ему файлы и не использует существующую библиотеку JavaScript, поэтому он заканчивает копирование большого количества одного и того же кода, если вы уже используете какую-либо библиотеку. FCKEditor был единственным другим редактором, который, как я чувствовал, имел те же функции и совместимость с браузерами, но это не выглядело так, как будто это будет проще с точки зрения интеграции в мою схему кэширования (которая похожа на вашу), и я думаю, что лицензирование сделал для меня не выбор. Вы можете посмотреть list редакторов, доступных здесь, но это были те, которые я считал лучшими из этого списка. В конце концов, я решил пойти с TinyMCE и добавил сделать WYSIWYG-редактор для MooTools в список дел, потому что это наиболее часто используемая инфраструктура JavaScript.

Если вы хотите взломать его, я бы предложил выяснить каждый сценарий, который требуется вашей конкретной реализации TinyMCE, объединить их в порядок, а затем изолировать и прокомментировать код, который загружает каждый файл. Если вы храбры, вы можете затем попробовать packing объединенный файл. Если вы его заработаете, я бы с удовольствием узнал.

+0

Я был в основном следуя логике (или пытается) метода сжатия GZIP, чтобы получить правильный список файлов в правильном порядке. Я все еще должен что-то пропускать. Это раздражает. Я ненавижу, когда что-то слишком негибкое, чтобы просто статически предустановить. – cletus

+0

Я тоже это пробовал. Между тем и репликацией кода я решил, что мое возможное решение будет писать мои собственные. Однако в качестве другого варианта вы можете посмотреть в редакторе Wordpress. Это может быть TinyMCE, но это довольно быстро. – VirtuosiMedia

+0

Вы также можете попробовать посмотреть в каждом файле, который вызывает gzip-файл, чтобы посмотреть, загружают ли они какие-либо дополнительные файлы (что я подозреваю, что они делают). В частности, в файле tiny_mce_src.js найдите поиск «файл:», который приведет к серии комментариев, которые могут указывать на вызванные файлы. – VirtuosiMedia

3

Я также попытался конкатенации TinyMCE в один свернутом сценарий, вот что я сделал, чтобы заставить его работать:

в tiny_mce_src.js изменить эту линию ...

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

быть либо .. ,

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

или даже только часть имени сценария ...

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

Это та линия, которая работает в BaseUrl поэтому он может загрузить все другие файлы, необходимые TinyMCE. Дело в том, что из-за лицензии мы не можем этого сделать. Я есть надежда, добавив это перед каскадным файла tiny_mce.js ...

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

следующие Spocke's advice, но я не могу получить, что работать. Единственное, что я могу придумать, так как мы используем Prototype, - это динамически загружать либо крошечный _ mce.js, либо малый _ mce _gzip .js скрипт, а затем инициализировать текстовую область (области), которую мы хотим оттуда. Но я далек от того, чтобы закончить работу.

Надеется, что это помогает,

Cheers,

DJDaveMark

+0

'var tinyMCEPreInit', возможно, должно быть' window.tinyMCEPreInit' – huyz

+0

var tinyMCEPreInit = {base: 'tinymce/jscripts/tiny_mce /' , суффикс: '.min', query: ''}; Это работает для меня .. – TechieBrij

0

Я завела Gzip компрессор и связала себя с Скрипач в Rendering процессе.

В основном это то, что прибыло в Браузер, я схватил и упаковал его в собственный файл.

Грязный но работает