Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Ламерский вопрос: что я не так сделал с кодом spoiler?

Ламерский вопрос: что я не так сделал с кодом spoiler?


     17.05.2020    спойлер, правка спойлера, spoiler    Общие вопросы, Общие вопросы по вёрстке, Шаблоны (TPL), Стили (CSS), Общие вопросы по PHP, Ламерские вопросы    107

вопрос
Пытаю править код тегов:

[spoiler]текст[/spoiler]
но не получается :(

Файл: engine/classes/parse.class.php

Найти:

<!--dle_spoiler--><div class=\"title_spoiler\"><a href=\"javascript:ShowOrHide('" . $id_spoiler . "')\"><img id=\"image-" . $id_spoiler . "\" style=\"vertical-align: middle;border: none;\" alt=\"\" src=\"{THEME}/dleimages/spoiler-plus.gif\" /></a>&nbsp;<a href=\"javascript:ShowOrHide('" . $id_spoiler . "')\"><!--spoiler_title-->" . $lang['spoiler_title'] . "<!--spoiler_title_end--></a></div><div id=\"" . $id_spoiler . "\" class=\"text_spoiler\" style=\"display:none;\"><!--spoiler_text-->{$matches[1]}<!--spoiler_text_end--></div><!--/dle_spoiler-->


заменить на:

<!--dle_spoiler--><div class=\"spoiler\"><button type=\"button\" class=\"spoiler-btn\"><!--spoiler_title-->" . $lang['spoiler_title'] . "<!--spoiler_title_end--></button><div class=\"spoiler-cont\" style=\"display:none;\"><!--spoiler_text-->{$matches[1]}<!--spoiler_text_end--></div></div><!--/dle_spoiler-->


Результат:

[spoiler]тект спойлера .<!--spoiler_text_end--></div></div><!--/dle_spoiler-->


Что же не так? Что и где прописать? Отблагодарю пивкой)

Ответил: doom45


$txt = str_replace( "<!--spoiler_text_end--></div><!--/dle_spoiler-->", '[/spoiler]', $txt );


заменить на:

$txt = preg_replace( "~<!--spoiler_text_end-->(.+?)<!--/dle_spoiler-->~siu", '[/spoiler]', $txt );


by dj-avtosh.

14 комментариев

dj-avtosh
PHP-developer

dj-avtosh - 17 мая 2020 09:21 -

Здравствуйте. Что не так и чего вы хотели добиться?

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

doom45
Юзер

doom45 - 17 мая 2020 09:26 -

Добрый день, хочу менять стандартный html код спойлера. последний кусок кода результат после замены, тот:

[spoiler]тект спойлера <!--spoiler_text_end--></div></div><!--/dle_spoiler-->


как видите тут вместо [/spoiler] код:

<!--spoiler_text_end--></div></div><!--/dle_spoiler-->


это надо решить т.к. спойлер не работает.

Я так понимаю это из-за лишнего <div> который обернул весь блок спойлера. Понятно выразился?

dj-avtosh
PHP-developer

dj-avtosh - 17 мая 2020 09:40 -

Проблема в том, что у Вас в результате вылезает вот это лишнее?

 [/spoiler] 

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

doom45
Юзер

doom45 - 17 мая 2020 09:44 -


Нет, не лишнее, а самого закрывающего тега [/spoiler] нет если посмотреть в редакторе, вместе " [/spoiler] " другие коды:

dj-avtosh
PHP-developer

dj-avtosh - 17 мая 2020 09:49 -

$txt = str_replace( "<!--spoiler_text_end--></div><!--/dle_spoiler-->", '[/spoiler]', $txt );


заменить на:

$txt = preg_replace( "~<!--spoiler_text_end-->(.+?)<!--/dle_spoiler-->~siu", '[/spoiler]', $txt );


ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

doom45
Юзер

doom45 - 17 мая 2020 09:54 -

dj-avtosh, спасибо большое! Скинул на пиво :)

dj-avtosh
PHP-developer

dj-avtosh - 17 мая 2020 09:55 -

Проверь пожалуйста на постах где несколько спойлеров

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

doom45
Юзер

doom45 - 17 мая 2020 09:59 -

Проверил, все работает.

леший
Эксперт

леший - 17 мая 2020 09:45 -

А можно не менее лаймерский вопрос? (ну раз уж в данной в данной категории). Зачем менять код спойлера, чем не устраивает стандартный?

doom45
Юзер

doom45 - 17 мая 2020 09:47 -

леший, стандартный спойлер не очень красивый, не нравится ;)

dj-avtosh
PHP-developer

dj-avtosh - 17 мая 2020 09:52 -


ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

леший
Эксперт

леший - 17 мая 2020 09:56 -


А с помощью css сменить оформление на "красивое", не? зачем лезть в код?

doom45
Юзер

doom45 - 17 мая 2020 09:57 -

ну там лишний код есть + css не все может

dj-avtosh
PHP-developer

dj-avtosh - 17 мая 2020 10:02 -

css умеет все http://jsfiddle.net/fULTJ/7/ (нажми run и потом на головку таймера)

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх