Помощь Как сделать обработку и вставку html-кода в БД в своем модуле?

Тема в разделе "DLE", создана пользователем danneo, 7 мар 2014.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.453
    Симпатии:
    113
    dle v.10.1
    Есть свой модуль.
    Не получается сохранить в БД текст в виде html-кода - нужны различные html-теги, типа <p>,<b><h2> и т.д.
    Нужно сделать через parse.class.php
    В addnews в админке нашел код:
    PHP:
    $full_story $parse->process$_POST['full_story'] );
    $full_story $db->safesql$parse->BB_Parse$full_story ) );
    После этого кода все вырезается. Остается из "тегов" только \r\n в конце абзацев.
     
    Последнее редактирование: 8 мар 2014
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    danneo,
    1) Предупреждение за нарушение правил раздела: не указана версия ДЛЕ
    2) Заголовок темы не читабелен
    3) Как и через что собираетесь вставлять? Если через стандартный модуль добавления новостей - он не обрезает теги <p>,<b> и <h2>., если включён любой редактор, кроме BBcode. (Админка - Настройки - Новости)
     
  3. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.453
    Симпатии:
    113
    вставлять хочу в своем модуле. Сделал поле textarea. В него пока без редактора добавляю html-код. Хотя планирую добавить и виз.редактор. Мне нужно, чтобы на сайте выводились html-теги для нормальной верстки, не br
     
  4. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Зачем тогда используете $parse->BB_Parse? Это парсер ббкодов.
    Да и вообще, зачем использовать все эти парсеры, если всё равно планируете вставлять HTML как есть? Используйте просто $db->safesql() и всё.
    Но если уж приспичило, то используйте так:
    PHP:
    $parse->allow_code false;
    $full_story $parse->process$_POST['full_story'] );
     
    Последнее редактирование: 8 мар 2014
  5. Doctor_zlo

    Doctor_zlo

    Moderator
    Регистр.:
    25 апр 2008
    Сообщения:
    464
    Симпатии:
    1.014
    заменяйте html на сущности при добавлении в БД и меняйте обратно когда вытягиваете из БД
    PHP:
    htmlspecialchars()
    htmlspecialchars_decode()
     
  6. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.453
    Симпатии:
    113
    Да наверно, от того, что сам ничего не знаю точно, как безопаснее и удобнее в будущем. Но все же и этот код не помог. Все теги выверзаются, остается только текст с переносами, как в БД (\n не видны)
    Тогда такой вопрос: как лучше хранить в БД текст, в bb-коде или html-коде?
    что касаемо htmlspecialchars. Как его правильно применять? Например, я его использую для обработки заголовка, где могут быть кавычки. А вывожу заголовок уже без обратного кодирования, без htmlspecialchars_decode. В исходном коде кавычки так и выводяться &quot; ну а для пользователей это незаметно.
    Нужно всегда делать обратное кодирование при выводе?
    И еще такой вопрос, как правильно тогда искать в БД в заголовках, когда у них могут быть &quot; и прочие символы ? Нужно запрос также переводить в сущности, а потом искать?
     
    Последнее редактирование: 8 мар 2014
  7. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    А это Вам нужно самому ответить...

    Составьте для себя чёткое ТЗ - что будет делать модуль, что в нём будет, как он будет работать и т.д. Если Вы хотите использовать BBcode - то это обработчик BBcode, если Wysiwyg или просто пустое поле для HTML - то это другая обработка. Есть варианты изменения в зависимости от настроек - то это тоже надо предусмотреть.

    Когда определитесь - появятся более конкретными вопросами, тогда и сможем ответить по существу. А пока - вариаций слишком много.
     
  8. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.453
    Симпатии:
    113
    судя по тому, что могу редактировать текст в других редакторах, а там html-код, то остановился на html-редакторе. Чтобы можно было переключаться в html-режим для вставки кода или кнопками редактора форматировать. Это нужно для админки.
    Но в то же время, планируется сделать другие поля в других разделах модуля функции для пользователей, чтобы они могли визуально форматировать текст - выделить жирным, заголовки, ссылки ставить и т.п. Но, я так понимаю, для них нужно уже bb-код, для большей безопасности, например, как в комментариях, не куча разных кнопок.
    Горбушка, можешь помочь с этим делом, что да как :) ?
     
  9. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    попробую на днях описать что и как... Это не 3 строчки просто.