Страница 8 из 9

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 11:18
Mac
MrCuper, присоединяюсь к вопросу.

У меня спойлер с заголовком вообще не работает (и с кавычками, и без). Все перекопал, не пойму, в чем дело. Старый был тоже на основе этого же, правда, кривоват, потомоу решил поставить ваш.

Еще маленький вопрос: картинка pic_loading.gif у кого-нибудь грузится? Когда и где она должна показываться? Не покажете скриншот?

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 12:00
woffi
Картинка pic_loading.gif должна отображаться на месте загружаемого изображения до тех пор, пока оно не загрузится. На локальной машине и фотографиях небольшого объема Вы её просто не увидите. Также я сам лично не наблюдал её в Opera.

Насчет не работающего спойлера - скиньте в ЛС архивы файлов

Код: Выделить всё

## Files To Edit: 	includes/bbcode.php,
##	                templates/subSilver/bbcode.tpl, 
##	  		templates/subSilver/posting_body.tpl,
##			templates/subSilver/overall_header.tpl
##	  		posting.php,
##	  		language/lang_english/lang_main.php
Для наглядности можно два архива "до" и "после"

Спойлер целиком сделан на jQuery, поэтому может не работать банально из за javascript. Проверьте этот момент.

В версии 2.0.17 аналогичный косяк с заголовком спойлера. Возможно у Вас та же ситуация. Попробуйте в файле bbcode.php заменить строку

Код: Выделить всё

	$text = bbencode_first_pass_pda($text, $uid, '/\[spoiler=\\\\"(.*?)\\\\"\]/is', '[/spoiler]', '', false, '', "[spoiler:$uid=\\\"\\1\\\"]");
на

Код: Выделить всё

	$text = bbencode_first_pass_pda($text, $uid, '/\[spoiler=(\\\".*?\\\")\]/is', '[/spoiler]', '', false, '', "[spoiler:$uid=\\1]");

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 12:22
Mac
У меня этот pic_loading.gif что-то не наблюдается вообще нигде :)

Приаттачил свой bbcode.php - дело, очевидно, именно в нем.
Поясню, что работает все, кроме случая с шапкой. В этом случае выводится просто как текст, будто неизвестный bb-код:

Код: Выделить всё

[spoiler=fsdfsdf]фывыфв[/spoiler]
З.Ы. Пара замечаний. Стоит упомянуть, что в моде уже встроен мод ImgFit. А также стили желательно бы в style.css вынести, а также картинки в папку с картинками в шаблонах.

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 12:37
woffi
Отредактировал свое предыдущее сообщение. У Вас та же проблема. Предложенное решение должно помочь.

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 13:13
Mac
woffi, да, помогло. Спасибо. Но опять же присоединяюсь к просьбе MrCuper насчет кавычек. Как можно сделать так, чтобы работало без них? А также хотелось бы сохранить возможность применять бб-коды к заголовку, например:

Код: Выделить всё

[color=green][spoiler="fsdfsdf"][/color]bla[/spoiler]
З.Ы. Курсив и подчеркнутый работает и так.

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 14:41
woffi
Добавлено спустя 12 минут 7 секунд:
Mac писал(а):У меня этот pic_loading.gif что-то не наблюдается вообще нигде :)
При входе в ветку сообщений видим свернутый спойлер.
Свернутый спойлер
Свернутый спойлер
Щелкаем по заголовку спойлера для его открытия. Начинает загружаться картинка. Пока загрузка не завершена - отображается наша гифка.
Загрузка картинки
Загрузка картинки
Загрузка завершилась, вместо гифки показана конечная картинка
Картинка загружена
Картинка загружена
Добавлено спустя 39 минут 19 секунд:
Сорри. Косяк. Не работает предложенная схема с кавычками :)

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 15:38
Mac
woffi, не помогает ни добавление строки, ни замена ею предыдущей.

З.Ы. Вообще у меня 2.0.23) (правда, в кодах, возможны отличия)

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 15:40
woffi
По кавычкам...
В файле bbcode.php добавьте после

Код: Выделить всё

	$text = preg_replace("/\[spoiler:$uid=\"(.*?)\"\]/si", $bbcode_tpl['spoiler_title_open'], $text);
строку

Код: Выделить всё

	$text = preg_replace("/\[spoiler:$uid=(.*?)\]/si", $bbcode_tpl['spoiler_title_open'], $text);
а также (это важно и косяк как раз в этом на моем тестовом форуме) заменить строку

Код: Выделить всё

$text = bbencode_first_pass_pda($text, $uid, '/\[spoiler=...;
на

Код: Выделить всё

$text = bbencode_first_pass_pda($text, $uid, '/\[spoiler=(.*?)\]/is', '[/spoiler]', '', false, '', "[spoiler:$uid=\\1]");
Если я ничего не напутал и не забыл - заголовок будет работать как с кавычками, так и без. Заработало также и на версии 2.0.23.
Глюк был в тестах. Если что-то отображается некорректно - откройте сообщение на редактирование, посмотрите заголовки и пересохраните. Должно получиться.

По цветам пока ничего конкретного не скажу, поскольку там надо стили копать. Для тэгов b u i просто применяется паттерн span class=. Тут надо подумать... Кстати, проверьте скрытый спойлером текст, поскольку как я понял к нему курсив или подчеркнутость применяется вместе с заголовком спойлера. Быть может стиль скрытого текста можно перезадать явно - но это не есть хорошо.

Добавлено спустя 8 минут 27 секунд:
Я уже сам запутался что к чему и почему, но тесты показывают, что на обеих версиях алгоритм работает.

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 16:02
Mac
Работает, но есть небольшое "но". В таком случае работает некорректно:

Код: Выделить всё

[spoiler="Привет", мир]abc[/spoiler]
либо в других вариациях.

Странная вещь с нерабочей pic_loading.gif. Я posting.php и posting_body.tpl не правил (у меня свои). Может быть в этом причина?
А также картинки со скриптами перенесены в папку с шаблонами и misc/js соответственно. Пути вроде изменил все: в spoiler.js:

Код: Выделить всё

var loading_icon = '<a href="'+ src +'" target="_blank"><img src="./templates/subSilver/images/pic_loading.gif" alt="" border="0"/></a>';
и overal_header.tpl:

Код: Выделить всё

<script language="JavaScript" type="text/javascript" src="misc/js/jquery.pack.js"></script>
<script language="JavaScript" type="text/javascript" src="misc/js/spoiler.js"></script>

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 16:12
woffi
Ну для комбинированного использования кавычек как бы уже ситуация требует более глубокого вмешательства в код. Согласитесь, в тэге quote вообще нельзя без кавычек имя цитируемого указывать.

А изображения плюсика/минусика рядом с заголовком спойлера видны?

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 17.02.2009 16:42
Mac
да, видны. Дело, очевидно, не в путях, потому что замена:

Код: Выделить всё

<img src="./templates/subSilver/images/pic_loading.gif" alt="" border="0"/>
на текст тоже не отображается.

Все-таки, видимо, надо курить в сторону стандартизации применения кавычек... Смайлы в заголовке спойлера портят его.

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 18.02.2009 6:44
Mac
Сейчас обнаружил уязвимость в шапке спойлера. Возможно использование html-кодов и вытекающая отсюда возможность xss-атаки. Будьте внимательны.

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 18.02.2009 18:29
SMM
исправления найденной уязвимости для мода спойлера на текущий момент?
p.s. о которых говорит Mac

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 07.03.2009 20:54
SMM
проблему с уязвимостью можно решить только удалением возможности показа спойлера с комментарием в шапке?

Re: Spoiler / Споилер (Сполер Spoler)

Добавлено: 08.03.2009 8:05
Lektor
С чего решили что есть какая-то проблема ?

PS на заборе тоже написано, а там дрова ..
PPS "Сейчас обнаружил уязвимость в шапке спойлера." научить оформлять багтрак ?
Правильное описание проблемы — половина её решения.