Автор Тема: Prestashop FAQ - Как именить настройки визуального редактора.  (Прочитано 4448 раз)

29 Октября 2014, 15:48:12
  • Ветеран
  • *****
  • Сообщений: 105578
  • Репутация: +39546/-0
    • Просмотр профиля
    • Webstudio UwK
В PrestaShop 1.6 используется текстовый редактор TinyMCE в минимальной конфигурации. Его можно дополнить расширенными функциями, для вставки кода, flash, видео...
Для этого нужно отредактировать файл /js/tinymce.inc.js. Откройте этот файл и замените код на
function tinySetup(config)
{
    if(!config)
        config = {};
    if (typeof config['editor_selector'] != 'undefined')
        config['selector'] = '.'+config['editor_selector'];
    default_config = {
        selector: ".rte" ,
        plugins : "visualblocks, preview searchreplace print insertdatetime, hr charmap colorpicker anchor code link image paste pagebreak table contextmenu filemanager table code media autoresize textcolor emoticons",
        toolbar2 : "newdocument,print,|,bold,italic,underline,|,strikethrough,superscript,subscript,|,forecolor,colorpicker,backcolor,|,bullist,numlist,outdent,indent",
        toolbar1 : "styleselect,|,formatselect,|,fontselect,|,fontsizeselect,",
        toolbar3 : "code,|,table,|,cut,copy,paste,searchreplace,|,blockquote,|,undo,redo,|,link,unlink,anchor,|,image,emoticons,media,|,inserttime,|,preview ",
        toolbar4 : "visualblocks,|,charmap,|,hr,",
           
        external_filemanager_path: ad+"/filemanager/",
        filemanager_title: "File manager" ,
        external_plugins: { "filemanager" : ad+"/filemanager/plugin.min.js"},
        language: iso,
        extended_valid_elements: 'pre[*],script[*],style[*]',
        valid_children: "+body[style|script],pre[script|div|p|br|span|img|style|h1|h2|h3|h4|h5],*[*]",
        valid_elements : '*[*]',
        force_p_newlines : false,
        cleanup: false,
        forced_root_block : false,
        force_br_newlines : true, 
        menu: {
            edit: {title: 'Edit', items: 'undo redo | cut copy paste | selectall'},
            insert: {title: 'Insert', items: 'media image link | pagebreak'},
            view: {title: 'View', items: 'visualaid'},
            format: {title: 'Format', items: 'bold italic underline strikethrough superscript subscript | formats | removeformat'},
            table: {title: 'Table', items: 'inserttable tableprops deletetable | cell row column'},
            tools: {title: 'Tools', items: 'code'}
        }
 
    }
 
    $.each(default_config, function(index, el)
    {
        if (config[index] === undefined )
            config[index] = el;
    });
 
    tinyMCE.init(config);
 
};

Для того чтобы текст, внесенный через редактор, проходил проверку и сохранялся, нужно изменить определение переменных в нужных вам классах (CMS, Product, Category).
Или изменить методы проверки в классе Validate (файл /classes/Validate.php).
Cоздание интернет сайтов Webstudio UwK
12 Марта 2015, 13:52:04
Ответ #1
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте, при использования версии prestashop 1.6.0.13 файл "tinymce.inc.js." находится в другой директории /js/admin/tinymce.inc.js.
12 Марта 2015, 14:04:58
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 1010
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ошибка в коде, не видит подключаемый файл. Или файла нет, или прав доступа, или ситакс. ошибка.
12 Марта 2015, 14:33:07
Ответ #3
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А как сделать так, что бы редактор не удалял теги, например атрибут "rel"?
12 Марта 2015, 14:49:27
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 1207
  • Репутация: +29/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Добавлять текст через вставку кода. Тогда редактор сохраняет весь код.
12 Марта 2015, 14:55:56
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добавлять текст через вставку кода. Тогда редактор сохраняет весь код.

У меня так не получается, возможно нужно что то изменить в конфигурации?
12 Марта 2015, 15:05:31
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 1207
  • Репутация: +29/-1
  • Сообщество PrestaShop
    • Просмотр профиля
12 Марта 2015, 15:13:34
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для страниц смс?

Или для СМС или в этом файле:
function tinySetup(config)
{
    if(!config)
        config = {};
    if (typeof config['editor_selector'] != 'undefined')
        config['selector'] = '.'+config['editor_selector'];
    default_config = {
        selector: ".rte" ,
        plugins : "visualblocks, preview searchreplace print insertdatetime, hr charmap colorpicker anchor code link image paste pagebreak table contextmenu filemanager table code media autoresize textcolor emoticons",
        toolbar2 : "newdocument,print,|,bold,italic,underline,|,strikethrough,superscript,subscript,|,forecolor,colorpicker,backcolor,|,bullist,numlist,outdent,indent",
        toolbar1 : "styleselect,|,formatselect,|,fontselect,|,fontsizeselect,",
        toolbar3 : "code,|,table,|,cut,copy,paste,searchreplace,|,blockquote,|,undo,redo,|,link,unlink,anchor,|,image,emoticons,media,|,inserttime,|,preview ",
        toolbar4 : "visualblocks,|,charmap,|,hr,",
           
        external_filemanager_path: ad+"/filemanager/",
        filemanager_title: "File manager" ,
        external_plugins: { "filemanager" : ad+"/filemanager/plugin.min.js"},
        language: iso,
        extended_valid_elements: 'pre[*],script[*],style[*]',
        valid_children: "+body[style|script],pre[script|div|p|br|span|img|style|h1|h2|h3|h4|h5],*[*]",
        valid_elements : '*[*]',
        force_p_newlines : false,
        cleanup: false,
        forced_root_block : false,
        force_br_newlines : true, 
        menu: {
            edit: {title: 'Edit', items: 'undo redo | cut copy paste | selectall'},
            insert: {title: 'Insert', items: 'media image link | pagebreak'},
            view: {title: 'View', items: 'visualaid'},
            format: {title: 'Format', items: 'bold italic underline strikethrough superscript subscript | formats | removeformat'},
            table: {title: 'Table', items: 'inserttable tableprops deletetable | cell row column'},
            tools: {title: 'Tools', items: 'code'}
        }
 
    }
 
    $.each(default_config, function(index, el)
    {
        if (config[index] === undefined )
            config[index] = el;
    });
 
    tinyMCE.init(config);
 
};
12 Марта 2015, 15:18:14
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 1207
  • Репутация: +29/-1
  • Сообщество PrestaShop
    • Просмотр профиля
12 Марта 2015, 16:52:15
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
http://www.tinymce.com/wiki.php/Configuration:valid_elements
tinyMCE.init({
        ...
        valid_elements : "a[href|ref=]"
});

Если поменять так как Вы написали, то автоматом получаю следующий шаблон:
<a href="images/fullscreen/1.jpg" ref=""></a>
А мне надо так:
<a href="images/fullscreen/1.jpg" rel="pretty" title="You can add caption to pictures."><img src="images/thumbnails/t_1.jpg" width="60" height="60" alt="Red round shape" /></a>
13 Марта 2015, 09:10:02
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
13 Марта 2015, 12:26:08
Ответ #11
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пацаны, так все сложно.... а как сделать, что бы любые теги и любые атрибуты редактор сохранял?
Или может посоветуете другой редактор ??
13 Марта 2015, 16:58:16
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 13276
  • Репутация: +14556/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если это сложно, то поменять редактор гораздо сложнее.
13 Марта 2015, 22:43:52
Ответ #13
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все оказалось еще намного проще. Надо было просто зайти в "Настройки/Общее" и там есть параметр "Использовать библиотеку HTMLPurifier" ставим на "Нет" и горя нет ))