Исправление html кода для bb редактора

Если вдруг ваш сайт на DLE случайно поломал отображение верстки в админке, то данная заметка для вас.
Как это обычно бывает?
В настройках сайта используется по-умолчанию BBcode редактор для написания новостей и статических страниц.
Установлена галочка "автоматический перенос строк" и все прекрасно.
Но в какой то момент из-за шила в пятой точке, либо по любой другой причине админ сайта включает на сайте визуальный редактор кода.
Для свежих версий DLE это может быть как LiveEditor (WYSIWYG),
так и TinyMCE (WYSIWYG) и вот тут начинаются чудеса.
Как только вы включаете визуальный редактор (WYSIWYG) то отключается "автоматический перенос строк" для всех новых публикаций и всех тех, что вы будите редактировать.
Появляется избыточный (даже мусорный) html код. Эдакий аналог редактор Word в худщем своем виде.
Через некоторое время вы понимаете - Стандартный (BBcode) редактор значительно лучше и устанавливаете в админке сайта для работы с новостями.
И вот тут сюрприз: ваша публикаци в режиме редактирования превращается в чистый html без переноса строк.
Людям далеким от html эта каша ломает мозг, как жить дальше?
Многие на этот этапе пугаются и включают (WYSIWYG) редактор обратно, продолжают страдать и жевать кактус.
Но есть решение данной проблемы!
Существует мнение что у dle постоянная проблема с этим переключением редакторов, в принципе основные проблемы, это теги:
<br><p><strong>–
Необходимо поправить парсер, он сам будет выдавать более менее нормальный код.
Для этого нужно
Открыть файл engine/classes/parse.class.php и найти:
if( !$use_html ) {
$txt = str_ireplace( "<br>", "\n", $txt );
$txt = str_ireplace( "<br />", "\n", $txt );
}
Выше добавить:
if( !$wysiwig ){
$txt = preg_replace( "#<p>(.+?)<\/p>#is", "$1\n", $txt );
$txt = preg_replace( "#<strong>(.+?)<\/strong>#is", "[b]$1[/b]", $txt );
$txt = str_replace( "<br />", "\n", $txt );
}
После этих правок то, что раньше было в виде html в режиме (BBcode) - тепреь опять отображается как нужно.
Вот только в тот момент как вы захотите обновить свою версию DLE на самую свежую наши правки опять поломаются.
Но и этого можно избежать.
Нам лишь нужно провести "перестроение публикаций"
После которого код новостей будет восстановлен.
Теперь весь алгоритм по порядку:
1. Проверяем, что в настройках сайта установлен Стандартный (BBcode) редактор
для
- Редактор при добавлении/редактировании новостей в админпанели
- Редактор при добавлении/редактировании статических страниц в админпанели
- Редактор для комментариев и персональных сообщений на сайте
- Редактор при добавлении публикаций на сайте
- Редактор для быстрого редактирования публикаций на сайте
2. Открыть файл engine/classes/parse.class.php и найти:
if( !$use_html ) {
$txt = str_ireplace( "<br>", "\n", $txt );
$txt = str_ireplace( "<br />", "\n", $txt );
}
Выше добавить:
if( !$wysiwig ){
$txt = preg_replace( "#<p>(.+?)<\/p>#is", "$1\n", $txt );
$txt = preg_replace( "#<strong>(.+?)<\/strong>#is", "[b]$1[/b]", $txt );
$txt = str_replace( "<br />", "\n", $txt );
}
3. Переходим на страницу /admin.php?mod=dboption и сохраняем копию БД
4. Переходим в раздел Перестроение публикаций /admin.php?mod=rebuild
и запускаем "перестроение публикаций"
5. Проверяем успешность изменений.
6. Открыть файл engine/classes/parse.class.php и найти:
if( !$wysiwig ){
$txt = preg_replace( "#<p>(.+?)<\/p>#is", "$1\n", $txt );
$txt = preg_replace( "#<strong>(.+?)<\/strong>#is", "[b]$1[/b]", $txt );
$txt = str_replace( "<br />", "\n", $txt );
}
и удалить.
Задача выполнена.
Решение реализовал Виктор Ермаков (admin@rezer.net)
Если Вы хотите оставить заказ на разработку сайта или получить предварительную консультацию воспользуйтесь формой по ссылке ниже.
Обратная связь
Наш специалист ответит вам в течении суток.
Похожие публикации
[Из песочницы] Sublime Text 3 жив. (Настройка и работа)
Sublime Text 3 — кроссплатформенный текстовый редактор. Краткий гайд для начинающих работать в sublime и в сфере вёрстки. Тут собрано всё самое необходимое и важное. (По ссылкам найдёте больше, если... читать далее
Мысли о клиентской программе для постинга новостей на ДЛЕ-сайты
Все чаще мне в голову приходит мысль о необходимости разработки отдельной клиентской программы для компьютера, через которую клиенты нашей стулии могли бы оформлять материалы для своих сайтов. Т.е.... читать далее
Notepad++ 5.1.4
Notepad++ - это мощный редактор текстовых файлов (замена стандартного Блокнота) с поддержкой синтаксиса большого количества языков программирования, ориентирован для работы в операционной системе MS... читать далее
Box-shadows Device
Всем привет! Хочу представить вашему вниманию небольшую разработку — Box-shadows Device (#bSd). Это инструмент, который чем-то напоминает конструктор или css редактор. В нем вы можете создавать... читать далее
Brackets для сомневающихся и новичков
СД: НЧ Без плагинов Brackets не лучше других редакторов, но с ними его стоит хотя бы попробовать. Введение Не так давно на Хабре было опубликовано множество статей, касающихся тем или иным образом... читать далее
Сайт компании Авторент.СУ
Официальный сайт компании Авторент.Су Прокат легковых автомобилей без водителя в Санкт-Петербурге. Таблицы с расчетами цен на аренду, онлайн-калькуляторы и формы для заполнения анкет. Реализована... читать далее
Комментарии (2)
Прокомментировать
Облако тегов
angular CSS css es6 frontend habrahabr.ru HTML html html5 JavaScript javascript js react ReactJS seo SEO на Хабрахабре skillfactory vue Блог компании RUVDS.com Блог компании SkillFactory Веб-дизайн Дизайн Интернет-маркетинг Поисковая оптимизация Программирование Разработка веб-сайтов Уроки CSS на Хабрахабре автомобильный сайт браузеры верстка вёрстка дайджест дизайн интернет-магазин корпоративный сайт модуль разработка ссылки фронтенд
Реклама на сайте
заказ автобуса на свадьбу