spoiler DLE

S0
На сайте с 25.04.2013
Offline
24
1381

Здравствуйте.

Как сделать, чтобы спойлер в dle при клике на него открывался/закрывался, не только на текст, на сам спойлер.

LovelAss
На сайте с 05.06.2009
Offline
96
#1

Если я вас правильно понял, нужно открыть файл /engine/classes/parse.class.php и добавить функцию ShowOrHide в событие onlick для блока с классом title_spoiler. Затем найти ссылки с этой же функцией и удалить их. После чего открыть файл engine.css и, для наглядности, добавить к классу title_spoiler стиль cursor: pointer;

S0
На сайте с 25.04.2013
Offline
24
#2
LovelAss:
Если я вас правильно понял, нужно открыть файл /engine/classes/parse.class.php и добавить функцию ShowOrHide в событие onlick для блока с классом title_spoiler. Затем найти ссылки с этой же функцией и удалить их. После чего открыть файл engine.css и, для наглядности, добавить к классу title_spoiler стиль cursor: pointer;

Делал так, не срабатывает.

if( ! $title ) {


return "<!--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-->";

} else {

return "<!--dle_spoiler $title --><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-->" . $title . "<!--spoiler_title_end--></a></div><div id=\"" . $id_spoiler . "\" class=\"text_spoiler\" style=\"display:none;\"><!--spoiler_text-->";

}

привожу к следующему виду:

if( ! $title ) {


return "<!--dle_spoiler--><div class=\"title_spoiler\" onclick=\"javascript:ShowOrHide('" . $id_spoiler . "')\"><img id=\"image-" . $id_spoiler . "\" style=\"vertical-align: middle;border: none;\" alt=\"\" src=\"{THEME}/dleimages/spoiler-plus.gif\" />&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-->";

} else {

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

}
LovelAss
На сайте с 05.06.2009
Offline
96
#3

Вот так должно сработать:


if( !$title ) {

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

} else {

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

}
S0
На сайте с 25.04.2013
Offline
24
#4
LovelAss:
Вот так должно сработать:

if( !$title ) {

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

} else {

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

}

Работает, но содержимое спойлера полностью под ним, то есть сам спойлер пуст а все что в нем под него падает.

---------- Добавлено 04.09.2015 в 00:30 ----------

Автоматически заменяется на [spoiler][/spoiler]содержимое[/spoiler]

S0
На сайте с 25.04.2013
Offline
24
#5

перенос всей ссылки тоже не помог.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий