2013-09-10 2 views
1

В пользовательском модуле, я включил CKEditorCKEditor отсутствует/неправильная BasePath в Drupal 7

drupal_add_js('sites/all/libraries/ckeditor/ckeditor.js',array('weight'=>JS_LIBRARY+1)); 
drupal_add_js('sites/all/libraries/ckeditor/adapters/jquery.js',array('weight'=>JS_LIBRARY+2)); 

И в моих JS я теперь создание экземпляра в текстовое поле с помощью

jQuery('#myTextArea').ckeditor(); 

Это работало, но теперь нет. Глядя в Firebug, я вижу, что ckeditor пытается получить доступ к config.js и что он ищет его по URL-адресу страницы. Он должен смотреть http://example.com/sites/all/libraries/ckeditor/.

Я не могу думать, что недавно изменилось, что могло сломать его!

Я пробовал передать конфигурацию { basePath: '/sites/all/libraries/ckeditor/' } в вызов ckeditor(), но это игнорируется, возможно, это невозможно установить во время выполнения?

Кто-нибудь знает, что я делаю неправильно, или если это ошибка, есть ли работа?

+0

Подумайте, что это ошибка в Drupal WYSIWYG https://drupal.org/node/1829534 – artfulrobot

+0

... но исправление в этом отчете об ошибке не исправить ... – artfulrobot

+0

Это работает, когда агрегация JS Drupal не поворачивается на. то есть включить js-агрегацию, и проблема проявляется, отключите ее, и она работает. – artfulrobot

ответ

1

Как я заметил, это, кажется, делать с тем, когда редактор загружается через агрегацию JS в Drupal

Вот некрасиво хак, что он работал на меня.

Редактировать сайты/все/библиотеки/CKEditor/файл ckeditor.js и до сжатого JS кода дополнения:

window.CKEDITOR_BASEPATH = 'http://example.com/sites/all/libraries/ckeditor/'; 

Тогда просто помните, чтобы сделать это каждый раз при обновлении.

PS. Кредит на basepath hint.

0

У CKEditor (проверено 4.4.4) возникает проблема с определением правильного базового пути при изменении имени файла ckeditor.js по умолчанию. Например, при добавлении кэш-памяти для развертывания в режиме реального времени или использования агрегированного имени.

Вы можете легко воспроизвести такое поведение, при выходе объекта: CKEDITOR.basePath

Вы находитесь на веб-сайте (предположим http://example.de) с пути/а/б/с/д, с использованием оригинального CKEditor имя файла /ext/ckeditor/ckeditor.js:

Website: http://example.de/a/b/c/d 
CKeditor: http://example.de/ext/ckeditor/ckeditor.js 

console.log(CKEDITOR.basePath); //output: http://example.de/ext/ckeditor/ 

Вы на том же сайте, тот же путь и ckeditor.js изменился:

Website: http://example.de/a/b/c/d 
CKeditor: http://example.de/ext/ckeditor/ckeditor-whatever.js 

console.log(CKEDITOR.basePath); //output: http://example.de/a/b/c/ 

Обычно JavaScript Консоль показывает ошибки, такие как:

Line 1: Uncaught SyntaxError: Unexpected token < 
Uncaught TypeError: Cannot set property 'dir' of undefined 

Поэтому всегда необходимо установить базовый путь, если изменить имя файла по умолчанию ckeditor.js в.

Смежные вопросы