Как разрешить HTML теги в цитатах (внутри <qoute>)?

Главные вкладки

Аватар пользователя VasyOK VasyOK 8 июня 2022 в 12:27

Поставил модуль quote. Внутри цитат нет HTML тегов. Это можно как-то исправить? Это не стороне фронта или бека реализовано? Если фронта, тут можно что-то исправить ?

$('.node-quote-all a').once().click(function (e) {
        e.preventDefault();
        let commentArea = getCommentArea();
        let curValue = getCommentAreaCurValue(commentArea);
        let parent = $(this).closest('.node');
        let username = parent.find('a.username').first().text();
        let alltext = parent.find(drupalSettings.quote.quote_selector_node_quote_all).text().substring(0, quoteLimit);
        let value = curValue + '<blockquote><strong>' + Drupal.t('@author wrote:', {'@author': username}) + '</strong> ' + alltext + '</blockquote><p><br/></p>';
        setCommentAreaValue(commentArea, value);
        commentArea.focus();
});

Комментарии

Аватар пользователя VasyOK VasyOK 8 июня 2022 в 14:34

Вроде на фронте. Если так подправить теги не режет. Не знаю насколько это грамотно.

function getSelectionHtml() {
                var html = "";
                if (typeof window.getSelection != "undefined") {
                    var sel = window.getSelection();
                    if (sel.rangeCount) {
                        var container = document.createElement("div");
                        for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                            container.appendChild(sel.getRangeAt(i).cloneContents());
                        }
                        html = container.innerHTML;
                    }
                } else if (typeof document.selection != "undefined") {
                    if (document.selection.type == "Text") {
                        html = document.selection.createRange().htmlText;
                    }
                }
                return html;
}

и

$('.comment-quote-sel a').once().click(function(e) {
                e.preventDefault();
                /*было let selected = getSelectedText();*/
                let selected = getSelectionHtml();
                if (selected.length) {
                    let commentArea = getCommentArea();
                    let curValue = getCommentAreaCurValue(commentArea);
                    let parent = $(this).closest('.comment');
                    let username = parent.find('a.username').text();
                    let value = curValue + '<blockquote><strong>' + Drupal.t('@author wrote:', { '@author': username }) + '</strong> ' + selected + '</blockquote><p><br/></p>';
                    setCommentAreaValue(commentArea, value);
                    commentArea.focus();
                }

            });

$('.comment-quote-all a').once().click(function(e) {
                e.preventDefault();
                let commentArea = getCommentArea();
                let curValue = getCommentAreaCurValue(commentArea);
                let parent = $(this).closest('.comment');
                let username = parent.find('a.username').text();
                /*Было let alltext = parent.find(drupalSettings.quote.quote_selector_comment_quote_all).text().substring(0, quoteLimit);*/
                let alltext = parent.find(drupalSettings.quote.quote_selector_comment_quote_all).html().substring(0, quoteLimit);
                let value = curValue + '<blockquote><strong>' + Drupal.t('@author wrote:', { '@author': username }) + '</strong> ' + alltext + '</blockquote><p><br/></p>';
                setCommentAreaValue(commentArea, value);
                commentArea.focus();
});