Автор Тема: Как убрать чистку html-кода в TinyMCE редакторе  (Прочитано 1354 раз)

04 Сентябрь 2019, 03:42:50
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вобщем проблема такая.
Подключил к сайту FancyBox
Создал обычные информационные страницы. Некоторые из них с фотографиями. Самое то открывать их в модальном окне, но....
Чтобы все работало, нужно вставить следующий код:
<a data-fancybox="gallery" href="big_1.jpg"><img src="small_1.jpg"></a>А реально вставляется только
<a href="big_1.jpg"><img src="small_1.jpg"></a>То есть при сохранении режется код.

Где нужно что убрать или добавить, чтобы этого не было.

P.S. Установлен модуль SmartBlog и в нем, как ни странно, тот же редактор сохраняет без обрезания) 
04 Сентябрь 2019, 11:48:28
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
https://prestashop-forum.ru/index.php/topic,10485.msg65609.html

В  /js/admin/tinymce.inc.js добавьте в default_config тулбары и кнопки.
04 Сентябрь 2019, 13:14:28
Ответ #2
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
https://prestashop-forum.ru/index.php/topic,10485.msg65609.html

В  /js/admin/tinymce.inc.js добавьте в default_config тулбары и кнопки.

default_config у меня вот такой:
    default_config = {
        editor_selector: ".rte",
        selector: ".rte",
        content_css: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css",
        plugins: "imagetools, ecpicker, bootstrapaccordion, editattributes, bs_alert, bs_images, powerpaste, advlist, smileys, youtube, fullscreen, fontawesome, visualblocks, preview searchreplace print insertdatetime, hr charmap anchor code link image paste pagebreak table contextmenu filemanager table code media textcolor editattributes",
        toolbar1: "styleselect,|,formatselect,|,fontselect,|,fontsizeselect, editattributes",
        toolbar2: "newdocument,print,|,undo,redo,|,cut,copy,paste,searchreplace,|,bold,italic,underline,strikethrough,superscript,subscript,|,forecolor,ecpicker,backcolor,|,bullist,numlist,alignleft,aligncenter,alignright,alignjustify,outdent,indent,blockquote,|,bs_alert,bs_images,bootstrapaccordion,",
        toolbar3: "code,preview,visualblocks,fullscreen,|,charmap,table,youtube,fontawesome,image,media,smileys,hr,inserttime,link,unlink,anchor,",
        browser_spellcheck: true,
        image_advtab: true,
        external_filemanager_path: baseAdminDir + "filemanager/",
        filemanager_title: "File manager",
        external_plugins: {"filemanager": baseAdminDir + "filemanager/plugin.min.js"},
        contextmenu: "paragraph link image inserttable | cell row column deletetable",
        language: iso_user,
        skin: "prestashop",
        statusbar: false,
        relative_urls: false,
        convert_urls: false,
        fontsize_formats: "8pt 10pt 12pt 14pt 18pt 24pt 36pt 42pt 48pt 52pt 58pt 62pt 68pt 72pt 86px 100px 116px 132px 148px",
        entity_encoding: "raw",
        link_title: true,
        verify_html: false,
        forced_root_block: false,
        force_br_newlines : false,
        convert_newlines_to_brs : false,
        force_p_newlines : false,
        height: 400,
        menu: {
            edit: {title: 'Edit', items: 'undo redo | cut copy paste | selectall'},
            insert: {title: 'Insert element', items: 'charmap fontawesome image media emoticons hr inserttime link anchor | 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'}
        },
// и много еще всего
    };

Даже   verify_html: false, установлен. Но все тоже самое.
04 Сентябрь 2019, 14:37:45
Ответ #3
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
04 Сентябрь 2019, 15:00:44
Ответ #4
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
04 Сентябрь 2019, 15:44:29
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
extended_valid_elements : "em[class|name|id],span[*],i[*],br[*],script[src|type|language]",добавьте
04 Сентябрь 2019, 16:16:38
Ответ #6
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
extended_valid_elements : "em[class|name|id],span[*],i[*],br[*],script[src|type|language]",добавьте

Добавил
    default_config = {
        editor_selector: ".rte",
        selector: ".rte",
        content_css: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css",
        plugins: "imagetools, ecpicker, bootstrapaccordion, editattributes, bs_alert, bs_images, powerpaste, advlist, smileys, youtube, fullscreen, fontawesome, visualblocks, preview searchreplace print insertdatetime, hr charmap anchor code link image paste pagebreak table contextmenu filemanager table code media textcolor editattributes",
        toolbar1: "styleselect,|,formatselect,|,fontselect,|,fontsizeselect, editattributes",
        toolbar2: "newdocument,print,|,undo,redo,|,cut,copy,paste,searchreplace,|,bold,italic,underline,strikethrough,superscript,subscript,|,forecolor,ecpicker,backcolor,|,bullist,numlist,alignleft,aligncenter,alignright,alignjustify,outdent,indent,blockquote,|,bs_alert,bs_images,bootstrapaccordion,",
        toolbar3: "code,preview,visualblocks,fullscreen,|,charmap,table,youtube,fontawesome,image,media,smileys,hr,inserttime,link,unlink,anchor,",
        extended_valid_elements : "em[class|name|id],span[*],i[*],br[*],script[src|type|language]",
// и т.д.

Не сохраняет...

нужно сохранять именно атрибут data-fancybox="gallery"
04 Сентябрь 2019, 16:58:27
Ответ #7
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Даже изменил немного
default_config = {
        editor_selector: ".rte",
        selector: ".rte",
        content_css: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css",
        plugins: "imagetools, ecpicker, bootstrapaccordion, editattributes, bs_alert, bs_images, powerpaste, advlist, smileys, youtube, fullscreen, fontawesome, visualblocks, preview searchreplace print insertdatetime, hr charmap anchor code link image paste pagebreak table contextmenu filemanager table code media textcolor editattributes",
        toolbar1: "styleselect,|,formatselect,|,fontselect,|,fontsizeselect, editattributes",
        toolbar2: "newdocument,print,|,undo,redo,|,cut,copy,paste,searchreplace,|,bold,italic,underline,strikethrough,superscript,subscript,|,forecolor,ecpicker,backcolor,|,bullist,numlist,alignleft,aligncenter,alignright,alignjustify,outdent,indent,blockquote,|,bs_alert,bs_images,bootstrapaccordion,",
        toolbar3: "code,preview,visualblocks,fullscreen,|,charmap,table,youtube,fontawesome,image,media,smileys,hr,inserttime,link,unlink,anchor,",
        extended_valid_elements : "em[class|name|id],span[*],i[*],br[*],a[*],script[src|type|language]",
// и т.д.

Все равно не помогает.

Более того. Сам редактор везде изменился визуально и все сохраняет как надо, но в разделе "Дизайн" - "Страницы" он остался неизменным.
04 Сентябрь 2019, 18:30:09
Ответ #8
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вобщем ответ почти близок. Prestashop 1.7.6

Я разобрался, что в разделе "Дизайн->Страницы" используется другой модуль tinyMCE. И находится он /js/tiny_mce/tinymce.js
В этом скрипте все организовано совершенно по другому и мне, к сожалению, не понять как.

Если кто сможет посмотреть и найти где отключить правку html-кода. Буду благодарен.
04 Сентябрь 2019, 19:27:04
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Для смс страниц редактировать нужно файл /js/tiny_mce/tinymce.min.js
Он сжат, разжимаете, вносите изменения и заново мининимизируете.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
04 Сентябрь 2019, 19:42:09
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
В классе /classes/Validate.php метод isCleanHtml режет многие вставки
public static function isCleanHtml($html, $allow_iframe = false) { return true; }
04 Сентябрь 2019, 19:51:15
Ответ #11
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для смс страниц редактировать нужно файл /js/tiny_mce/tinymce.min.js
Он сжат, разжимаете, вносите изменения и заново мининимизируете.
Это мне известно. и я даже "разжал" файл, но не знаю я какие правки и куда вносить. есть догадки, что в строке:
                b = n((e = e || {}).schema), !1 === e.verify_html && (e.valid_elements = "*[*]"), v = r(e.valid_styles), y = r(e.invalid_styles, "map"), N = r(e.valid_classes, "map"), C = o("whitespace_elements", "pre script noscript style textarea video audio iframe object code"), x = o("self_closing_elements", "colgroup dd dt li option p td tfoot th thead tr"), w = o("short_ended_elements", "area base basefont br col frame hr img input isindex link meta param embed source wbr track"), E = o("boolean_attributes", "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"), _ = o("non_empty_elements", "td th iframe video audio object script pre code", w), k = o("move_caret_before_on_enter_elements", "table", _), T = o("text_block_elements", "h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"), S = o("block_elements", "hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption", T), R = o("text_inline_elements", "span strong b em i font strike u var cite dfn code mark q sup sub samp"), s((e.special || "script noscript style textarea").split(" "), function(e) {
                    P[e] = new RegExp("</" + e + "[^>]*>", "gi")
                }), e.valid_elements ? m(e.valid_elements) : (s(b, function(e, t) {
                    B[t] = {
                        attributes: e.attributes,
                        attributesOrder: e.attributesOrder
                    }, D[t] = e.children
// и т.д.
04 Сентябрь 2019, 19:57:16
Ответ #12
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В классе /classes/Validate.php метод isCleanHtml режет многие вставки
public static function isCleanHtml($html, $allow_iframe = false) { return true; }
Да. Это мне известно. Первое, что всегда в Престе меняю. Но не помогло. Спасибо

P.S. Если кому нужен модуль SmartBlog (Новостной) и TinyMCE Pro пишите, скину.

Применено на сайте http://500rub.site
25 Сентябрь 2019, 18:10:19
Ответ #13
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вопрос решен!
Все примитивно просто.
В админке: Параметры магазина -> Общее -> Использовать библиотеку HTMLPurifier поставить в положение "НЕТ"!!!

 :o