TinyMCE: възможно ли е пакетирането на всички файлове вместо динамичното им зареждане?

Опитвам се да накарам TinyMCE да работи. Опитах го, използвайки нормалния метод за включване на tiny_mce.js и след това с помощта на tinymce.init(...) и работи. След това опитах tiny_mce.gzip.js + php компресор и той работи, но беше наистина бавен.

Сега вече пакетирам моите CSS и JS файлове в един от всеки с всички мои файлове, свързани заедно. В случая с Javascript те също са минимизирани.

И в двата случая те са версирани с клеймо за време на един от файловете, така че имам URL адреси като:

/script/script.1233454569.js

който пренасочва към PHP файл, който или обслужва кеширана версия, или изгражда кешираната версия (ако е необходимо) и я обслужва. Добавя изтичащи заглавки и прави gzip компресия и като цяло работи добре.

Искам да вкарам малък mce в този механизъм, но се оказва болезнено. Редът изглежда има значение. В момента имам:

  • tiny_mce.js
  • myscript.js
  • default_editor.js (от простата тема)
  • en.js (същото)

но идва с „u е неопределен“, за което не можах да намеря подходящ отговор в Google. Това е наистина дразнещо. Някой има ли опит с това?

Има ли други редактори, по-подходящи за опаковане, както описах по-горе, вместо да ви натрапват собствените си схеми (което ме дразни безкрайно)?


person cletus    schedule 26.03.2009    source източник


Отговори (3)


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

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

person VirtuosiMedia    schedule 26.03.2009
comment
По принцип следвах логиката (или се опитвах) на метода за компресиране на gzip, за да получа правилния списък с файлове в правилния ред. Сигурно все пак нещо ми липсва. Това е дразнещо. Мразя, когато нещо е твърде негъвкаво, за да бъде просто статично предварително заредено. - person cletus; 26.03.2009
comment
Опитах и ​​това. Между това и репликацията на кода реших, че моето евентуално решение ще бъде да напиша мое собствено. Като друга опция обаче може да искате да разгледате редактора, който Wordpress използва. Може да е TinyMCE, но е доста бърз. - person VirtuosiMedia; 26.03.2009
comment
Може също да искате да опитате да търсите във всеки файл, който gzip файлът извиква, за да видите дали зареждат допълнителни файлове (което подозирам, че го правят). По-конкретно, във файла tiny_mce_src.js направете търсене за file:, което ще доведе до поредица от коментари, които може да показват извиканите файлове. - person VirtuosiMedia; 26.03.2009
comment
На втори поглед тези коментари може да не са това, което си мислех, че са, може просто да са начинът, по който той го разделя. - person VirtuosiMedia; 26.03.2009
comment
Отидох една крачка напред след това и анализирах регистрационните файлове за достъп на Apache, за да видя какво се извиква, но изглежда, че не можете просто да опаковате партидата. Изглежда, че известна инициализация/подреждане е важно преди зареждане на теми, например. Дразнещо. - person cletus; 27.03.2009
comment
Всъщност не съм се регистрирал за форума на TinyMCE и не съм попитал, защото изглежда модераторът там наистина не е полезен за много различни въпроси, но това също може да е опция. Ако те не знаят в какъв ред се извикват файловете, добре... - person VirtuosiMedia; 27.03.2009
comment
Това, което разбрах обаче е, че това не е само редът, но и времето, тъй като обектът tinymce трябва да направи определено количество инициализация, преди да извика default_editor.js и т.н., или просто умира, тъй като тези скриптове трябва да разчитат на определени неща, които са готово вече. - person cletus; 27.03.2009
comment
Намерих тази тема, обясняваща малко техния процес, но не предлага много помощ: tinymce.moxiecode.com/punbb/viewtopic.php?id=10777 Тази тема обаче може да е по-полезна: tinymce.moxiecode.com/punbb/viewtopic.php?id=4937 - person VirtuosiMedia; 27.03.2009

Също така се опитах да свържа 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, но аз изглежда също не мога да накарам това да работи. Единственото друго нещо, за което се сещам, тъй като използваме Prototype, е динамично да заредим скрипта tiny_mce.js или tiny_mce_gzip.js, след което да инициализираме текстовите области, които искаме оттам. Но далеч не съм приключил с това да проработи.

Надявам се това да помогне,

наздраве,

DJDaveMark

person Community    schedule 03.05.2009
comment
var tinyMCEPreInit може би трябва да е window.tinyMCEPreInit - person huyz; 21.12.2012
comment
var tinyMCEPreInit = {base: 'tinymce/jscripts/tiny_mce/', суфикс: '.min', заявка: ''}; Това работи за мен.. - person TechieBrij; 06.03.2018

Стартирах Gzip Compressor и се свързах с Fiddler в процеса на изобразяване.

По принцип това, което пристигна в браузъра, наваксах и го опаковах в собствен файл.

Мръсен, но работещ

person Community    schedule 13.07.2009