MaxHub
Служба Заботы MaxSite CMS

Как разрешить html теги в комментариях?

Вопросы-ответы / 29 августа 2014

Нужно для внедрения визуального редактора в форму комментирования. Благодарю.

P. S. Если интересно, напишу статью об этом у себя на блоге.

Незрячий человек, занимающийся созданием, анализом и продвижением сайтов. Помимо этого, играю на гитаре и пою, пишу стихи и фантастику, интересуюсь идеей родовых поместий, жизни на природе.

Сайт

Комментариев: 8
  1. Сперва поучительная хрень о том, как надо задавать вопросы немного оффтопика. Что значит разрешить html-тэги? Почему вы не описываете суть и описание вашей проблемы? Почему постоянно надо гадать что у вас там стряслось?? Вам бы было интересно получить развёрнутый ответ? Ну так и отвечающим интересно прочитать подробный вопрос. Неужели так сложно набрать чуть больше букв? mad
    А теперь по сути вопроса как я его телепатическим образом понял.

    Html-тэги и сейчас разрешены. Но только ограниченный набор. Это сделано в целях безопасности. Однако, вы вполне можете переопределить набор фильтрации тэгов. Для этого вам нужно обработать хук mso_get_new_comment_args - принять массив аргументов $args и передать его по цепочке обработчиков хука дальше. Но перед передачей $args дальше вам нужно изменить значение ключа массива tags. Сейчас значение элемента массива $args с этим ключом по-умолчанию принимает значение -

    # разрешенные тэги
    if ( !isset($args['tags']) ) $args['tags'] = '<p><blockquote><br><span><strong><strong><em><i><b><u><s><рre><codе>';

    Процитированный код вы можете увидеть в файле \application\maxsite\common\comments.php в строке 360. Там как раз описывается функция mso_get_new_comment, которая занимается обработкой новых комментариев.

    В общем, вам нужно расширить это значение. Это можно сделать через плагин (написать плагин, который навешивается на указанный хук) или попробовать настроить связку ushki_to_hook и ushki - в принципе, вполне реальный вариант.

    Чтобы развить ваши телепатические способности приводить вариант решения пока не буду wink Да, сегодня я сама отзывчивость и доброта smile

    ЗЫ: Писать или не писать статью - решать вам самому. Не нужно идти на поводу у аудитории, когда у вас прёт творческая энергия cheese

  2. Я написал статью в редакторе. Опубликовав комментарий, я увидел, что теги параграфа отображаются в списке комментариев. Вот поэтому я и задался вопросом расширения количества допустимых html тегов.

    P. S. Посмотрю в указанном файле.

  3. Итак. Добавил в common/comments.php другие теги, но по-прежнему заголовки отображаются, как параграфы, а последующие абзацы - с тегами. Причём, если аписать сделать 2 абзаца, теги будут показываться вокруг каждого из них.

    Буду благодарен за ответ: искать проблему в движке или в редакторе? Если в движке, то где может блокироваться написание второго абзаца в комментариях и вывод заголовков?

  4. Разместил редактор в админке в поле ввода текста и в полях настроек главной страницы - там всё нормально, значит проблема в движке.

  5. Добавил в common/comments.php другие теги, но по-прежнему заголовки отображаются, как параграфы, а последующие абзацы - с тегами. Причём, если аписать сделать 2 абзаца, теги будут показываться вокруг каждого из них.

    Обычно такой фигнёй страдают именно редакторы. Сами посудите - зачем движку обрамлять параграфами абзацы без особой надобности? Ведь сейчас стандартный редактор в админке не добавляет параграфы к тексту, так? А вот именно для вашего редактора движок старается, добавляет. Странно, не находите?

    Разместил редактор в админке в поле ввода текста и в полях настроек главной страницы - там всё нормально, значит проблема в движке.

    Я бы не был так категоричен, ибо для полной уверенности в вашей логике нужно проверять не результат сохранения в базе, а распечатки переменной $_POST на входе в движок.

    Сделайте проверку. Добавьте в нужных местах код типа такого:

    pr($_POST);

    И посмотрите, что движку передаёт на обработку ваш редактор.

  6. Правильно я понял, что надо этот код вставить в текст в режиме html?

  7. Нет. Неверно. Функция pr() - стандартная функция движка, помогающая в отладке. Её нужно вставлять в php файлах движка в нужных местах, где вы хотите узнать содержимое какой-либо переменной. Например, её можно вставить в упомянутую выше функцию mso_get_new_comment (в самом её начале).

  8. А. Благодарю.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Вход / регистрация или войти без комментирования
  Имя и сайт используются только при регистрации

Авторизация MaxSiteAuth. Войти через loginza

(обязательно)