• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
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 в конце абзацев.
 
Последнее редактирование:
danneo,
1) Предупреждение за нарушение правил раздела: не указана версия ДЛЕ
2) Заголовок темы не читабелен
3) Как и через что собираетесь вставлять? Если через стандартный модуль добавления новостей - он не обрезает теги <p>,<b> и <h2>., если включён любой редактор, кроме BBcode. (Админка - Настройки - Новости)
 
danneo,
1) Предупреждение за нарушение правил раздела: не указана версия ДЛЕ
2) Заголовок темы не читабелен
3) Как и через что собираетесь вставлять? Если через стандартный модуль добавления новостей - он не обрезает теги <p>,<b> и <h2>., если включён любой редактор, кроме BBcode. (Админка - Настройки - Новости)
вставлять хочу в своем модуле. Сделал поле textarea. В него пока без редактора добавляю html-код. Хотя планирую добавить и виз.редактор. Мне нужно, чтобы на сайте выводились html-теги для нормальной верстки, не br
 
Зачем тогда используете $parse->BB_Parse? Это парсер ббкодов.
Да и вообще, зачем использовать все эти парсеры, если всё равно планируете вставлять HTML как есть? Используйте просто $db->safesql() и всё.
Но если уж приспичило, то используйте так:
PHP:
$parse->allow_code = false;
$full_story = $parse->process( $_POST['full_story'] );
 
Последнее редактирование:
заменяйте html на сущности при добавлении в БД и меняйте обратно когда вытягиваете из БД
PHP:
htmlspecialchars()
htmlspecialchars_decode()
 
Зачем тогда используете $parse->BB_Parse? Это парсер ббкодов.
Да и вообще, зачем использовать все эти парсеры, если всё равно планируете вставлять HTML как есть? Используйте просто $db->safesql() и всё.
Но если уж приспичило, то используйте так:
PHP:
$parse->allow_code = false;
$full_story = $parse->process( $_POST['full_story'] );
Да наверно, от того, что сам ничего не знаю точно, как безопаснее и удобнее в будущем. Но все же и этот код не помог. Все теги выверзаются, остается только текст с переносами, как в БД (\n не видны)
Тогда такой вопрос: как лучше хранить в БД текст, в bb-коде или html-коде?
заменяйте html на сущности при добавлении в БД и меняйте обратно когда вытягиваете из БД
PHP:
htmlspecialchars()
htmlspecialchars_decode()
что касаемо htmlspecialchars. Как его правильно применять? Например, я его использую для обработки заголовка, где могут быть кавычки. А вывожу заголовок уже без обратного кодирования, без htmlspecialchars_decode. В исходном коде кавычки так и выводяться &quot; ну а для пользователей это незаметно.
Нужно всегда делать обратное кодирование при выводе?
И еще такой вопрос, как правильно тогда искать в БД в заголовках, когда у них могут быть &quot; и прочие символы ? Нужно запрос также переводить в сущности, а потом искать?
 
Последнее редактирование:
как лучше хранить в БД текст, в bb-коде или html-коде?
А это Вам нужно самому ответить...

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

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

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

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