Как убрать чистку html-кода в TinyMCE редакторе

Автор vagvic, 04 сентября 2019, 03:42:50

« назад - далее »

vagvic

Вобщем проблема такая.
Подключил к сайту 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 и в нем, как ни странно, тот же редактор сохраняет без обрезания) 

Adik


vagvic

Цитата: Adik от 04 сентября 2019, 11:48:28
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, установлен. Но все тоже самое.

mAgency

Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

vagvic


tigran

extended_valid_elements : "em[class|name|id],span[*],i[*],br[*],script[src|type|language]",
добавьте

vagvic

Цитата: tigran от 04 сентября 2019, 15:44:29
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"

vagvic

Даже изменил немного
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]",
// и т.д.


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

Более того. Сам редактор везде изменился визуально и все сохраняет как надо, но в разделе "Дизайн" - "Страницы" он остался неизменным.

vagvic

Вобщем ответ почти близок. Prestashop 1.7.6

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

Если кто сможет посмотреть и найти где отключить правку html-кода. Буду благодарен.

PrestaMan

Для смс страниц редактировать нужно файл /js/tiny_mce/tinymce.min.js
Он сжат, разжимаете, вносите изменения и заново мининимизируете.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

coder

В классе /classes/Validate.php метод isCleanHtml режет многие вставки
public static function isCleanHtml($html, $allow_iframe = false) { return true; }

vagvic

Цитата: PrestaMan от 04 сентября 2019, 19:27:04
Для смс страниц редактировать нужно файл /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
// и т.д.


vagvic

Цитата: coder от 04 сентября 2019, 19:42:09
В классе /classes/Validate.php метод isCleanHtml режет многие вставки
public static function isCleanHtml($html, $allow_iframe = false) { return true; }
Да. Это мне известно. Первое, что всегда в Престе меняю. Но не помогло. Спасибо

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

Применено на сайте http://500rub.site

vagvic

Вопрос решен!
Все примитивно просто.
В админке: Параметры магазина -> Общее -> Использовать библиотеку HTMLPurifier поставить в положение "НЕТ"!!!

:o