В некоторых стандартных шаблонах, инициализация TinyMCE + IMCE проходит нормально. В Ява коде имеем:
и
tinyMCE.init({
mode : "exact",
...............
elements : "edit-body",
file_browser_callback : "imceImageBrowser"
Но в других шаблонах, даже шестой версии, imceImageBrowser никак не цнициализируется.
Тоесть, в tinyMCE.init просто не добавляется строка file_browser_callback : "imceImageBrowser".
Возился с этим весь день. Понял много чего, но от куда берется эта переменная, и как она зависит от шаблона сайта - так и не понял.
Вложение | Размер |
---|---|
IMCE.gif | 4.22 КБ |
Комментарии
в теме надо добавить
<?php print $closure ?>
"в теме надо добавить <?php print $closure ?>"
Да, на некоторых блогах и форумах я тоже это вычитал. Естественно, не подходи. Иначе бы и спрашивал:)
Кстати, "<?php print $closure ?>" в конце страницы ничего и не добавляет. Имеется ввиду, что переменная $closure ничего не содержит.
Инициализиция tinyMCE происходит в Ява коде в хедере страницы.
В переменной которая выводится: " <?php echo $scripts ?>"
Но проблема в том, что в зависимости от шаблона, в этой переменной то есть строка "file_browser_callback : "imceImageBrowser". то нету.
И решение тут не такое уж и очевидное.
Вообще... пока думаю... как альтернативу, использовать только стандартную тему Garland и пытаться переделывать её под другие дизайны...
Но в чем же действительно проблема... пока так и не понял.
Решение покажется невероятным, но факт:
Видимо единоразово, при инсталяции, в тему в файл template.php было добавлено
<?phpfunction phptemplate_tinymce_theme($init, $textarea_name, $theme_name, $is_running) {
static $access, $integrated;
if (!isset($access)) {
$access = function_exists('imce_access') && imce_access();
}
$init = theme_tinymce_theme($init, $textarea_name, $theme_name, $is_running);
if ($init && $access) {
$init['file_browser_callback'] = 'imceImageBrowser';
if (!isset($integrated)) {
$integrated = TRUE;
drupal_add_js("function imceImageBrowser(fid, url, type, win) {win.open(Drupal.settings.basePath +'?q=imce&app=TinyMCE|url@'+ fid, '', 'width=760,height=560,resizable=1');}", 'inline');
}
}
return $init;
}
?>
Понятно, что я это заметил и пробовал добавить эту инициализацию в другие темы. Результата небыло.
Представьте моё удивление, когда я сейчас захожу, а эта долбаная imceImageBrowser появилась сама по себе! Поняяяяятно:)
Выбрал другую тему. Посмотрел. Иконки нет. Добавил в файл template.php вышеприведенный код. Посмотрел. Иконки нет. Зашел: Главная › Администрирование › Настройка сайта - Очистить кеш данных
Очистил. Проверил. Вот она блин!!! Эта долбаная иконка.
Оказывается. Я тут пол дня експериментирую, меняю всякие значения, возможно, кучу раз уже решил свою проблему, а оно мне всё время старый закешированный вариант показывало.
Вот такие пироги... уже тихонько начинаю ненавидеть Drupal
Я правильно понимаю, что вы TinyMCE включаете через тему? О.о
"Я правильно понимаю, что вы TinyMCE включаете через тему? О.о"
А вот я этого вопроса не понял.
Включаю его через Друпаловский модуль: http://drupal.org/project/tinymce
Пару дней экспериментировал. Пробовал и через http://drupal.org/project/wysiwyg
Пробовал и FCKeditor и BUEditor. TinyMCE вроде лучше.
Единственное, что мне очень не понравилось, это исчезновение возможности создать анонс заметки, как это работает с BUEditor.
Решение пока муторное. Зайти в html код заметки и добавить разделитель
<!--break-->
Но непосвященному юзеру это будет не под силу. Разве что попробую свою кнопку создать... но... вот изначально, как было с двумя окнами (без визуальных редакторов), было лучше.