В связи с возникшими проблемами с редактированием короткого описания товаров, из-за обновления Firefox на 11 версию и глюков при вставке текста в TinyMCE, решил кардинально решить проблему, сменив его на CKEditor.
Итак качаем последнюю версию редактора
отсюда. Распаковываем и вставляем папку ckeditor с ее содержимым в папку js.
Теперь меняем редактор на примере страницы редактора товара AdminProducts.php из папки tabs администраторской директории. Находим в нем и комментируем код относящийся к TinyMCE:
Код:
// TinyMCE
/* global $cookie;
$iso = Language::getIsoById((int)($cookie->id_lang));
$isoTinyMCE = (file_exists(_PS_ROOT_DIR_.'/js/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en');
$ad = dirname($_SERVER["PHP_SELF"]);
echo '
<script type="text/javascript">
var iso = \''.$isoTinyMCE.'\';
var pathCSS = \''._THEME_CSS_DIR_.'\';
var ad = \''.$ad.'\';
</script>
<script type="text/javascript" src="'.__PS_BASE_URI__.'js/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="'.__PS_BASE_URI__.'js/tinymce.inc.js"></script>
<script type="text/javascript">
toggleVirtualProduct(getE(\'is_virtual_good\'));
unitPriceWithTax(\'unit\');
</script>'; */
Вставляем код добавляющий редактор CKEditor:
Код:
// CKEditor
echo '
<script type="text/javascript" src="'.__PS_BASE_URI__.'js/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="'.__PS_BASE_URI__.'js/ckeditor/adapters/jquery.js"></script>
<script type="text/javascript" src="'.__PS_BASE_URI__.'js/ckfinder/ckfinder.js"></script>
<script type="text/javascript">
$().ready(function() {
$(\'textarea.rte\').ckeditor();
});
toggleVirtualProduct(getE(\'is_virtual_good\'));
unitPriceWithTax(\'unit\');
</script>';
Сохраняем изменения. Теперь у нас на странице редактирования товаров должен появиться новый редактор. Управление конфигурацией редактора осуществляется изменением файла config.js в папке ckeditor.
Теперь перейдем к менеджеру изображений и файлов. Так как родной CKFinder платный, я остановился на KCFinder. Он более-менее сносно функционирует и обеспечивает минимально необходимый функционал. Правда были замечены глюки на винде со ссылками, но это похоже из-за несовместимости кодировок. Скачать его можно
здесь . Распаковываем и сохраняем папку kcfinder с исходниками или в папку js/ckeditor/plugins, или аналогично ajaximagemanager в папку администратора. Я выбрал первый вариант, поэтому все настройки будут описываться относительно этого варианта.
Открываем файл config.php в папке js/ckeditor/plugins/kcfinder. Указываем адрес корневой папки, где будут храниться наши изображения и файлы.Например:
Код:
'uploadURL' => "http://адрес-сайта.ру/img/cms"
В этом случае, все картинки и файлы будут храниться в созданных папках images (для картинок) и files (для остальных файлов), которые в свою очередь будут храниться в папке cms. Кроме того, в папке сms будет создана папка .thumbs для превьюшек. С остальными настройками можно ознакомиться на официальном сайте.
Для удобного добавления картинок и флэшек внесем запись
Код:
config.filebrowserBrowseUrl = '../js/ckeditor/plugins/kcfinder/browse.php?type=files';
config.filebrowserImageBrowseUrl = '../js/ckeditor/plugins/kcfinder/browse.php?type=images';
config.filebrowserFlashBrowseUrl = '../js/ckeditor/plugins/kcfinder/browse.php?type=flash';
config.filebrowserUploadUrl = '../js/ckeditor/plugins/kcfinder/upload.php?type=files';
config.filebrowserImageUploadUrl = '../js/ckeditor/plugins/kcfinder/upload.php?type=images';
config.filebrowserFlashUploadUrl = '../js/ckeditor/plugins/kcfinder/upload.php?type=flash';
в файл config.js, расположенный в js/ckeditor.
А вот теперь самое интересное: для того, чтобы получить доступ к этому менеджеру необходимо добавить условие, при котором всем имеющим доступ к страницам редактирования товаров, категорий, cms можно было пользоваться этим менеджером, а всем остальным нет. Поэтому прошу вашей помощи. Реализацию можно посмотреть на примере интеграции для друпаля (см. файл drupal.php в kcfinder/integration).