Ответить Новая тема Новый опрос 
 Меняем редактор TinyMCE на CKEditor
pukinnet
Новичок
Сообщений: 19
Регистрация: 28-10-2010


26-03-2012 04:49
В связи с возникшими проблемами с редактированием короткого описания товаров, из-за обновления 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).
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Anton


Профессионал
Сообщений: 462
Регистрация: 24-02-2011


26-03-2012 05:47
Жесть, файлы ядра затрагивать, конечно. Не проще ли Chrome поставить.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
pukinnet
Новичок
Сообщений: 19
Регистрация: 28-10-2010


26-03-2012 13:15
Не проще. Здесь скорее вопрос удобства и привычки. Мне удобно и комфортно работать в Файрфокс. Тем более нужно учитывать кроссбраузерность расширений, так как я не один пользователь и столкнуться с проблемами могут другие. А ядро затрагивается не настолько сильно, как кажется.
Как я вижу одно из решений - это организовывать работу сессий в js/ckeditor/plugins/kcfinder/core/autoload.php или писать модуль для интеграции. Но как, не знаю. К сожалению, знаний не хватает.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
tympi
Cпециалист
Сообщений: 265
Регистрация: 27-12-2011


14-04-2012 20:15
ors написал модуль))
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
savvato11


Cпециалист
Сообщений: 289
Регистрация: 01-09-2012


16-01-2013 04:59
tympi, а ссылочку можно, чего то я не видел в магазине у него такого...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос