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

Идеи для расширения функциональности phpBB 2.0.x
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4105
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 107 раз
Поблагодарили: 424 раза
Контактная информация:

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

Сообщение Siava » 11.03.2009 10:26

Lektor
Проблемка имеет место быть. Проверьте сами, впишите в заголовок спойлера какой-нибудь алерт-javascript.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Аватара пользователя
SMM
phpBB 1.4.2
Сообщения: 70
Зарегистрирован: 29.07.2006 14:41
Откуда: Казань
Благодарил (а): 9 раз
Контактная информация:

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

Сообщение SMM » 12.03.2009 18:58

Siava вы не можете подсказать как добавить фильтрацию тегов в заголовке.
незнаю на сколько правильно сделал. но теги теперь у меня заменяются на код спецсимвола

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

if( preg_match('#\[spoiler=\\\"#si', $possible_start, $match) && !preg_match('#\[spoiler=\\\"(.*?)\\\"\]#si', $possible_start) ) 
{ 
if ($close_pos = strpos($text, '"]', $curr_pos + 14)) 
{ 
if (strpos(substr($text, $curr_pos + 14, $close_pos - ($curr_pos + 14)), '[spoiler') === false) 
{ 
$possible_start = substr($text, $curr_pos, $close_pos - $curr_pos + 7);
}
}
}
добавил после аналогичных строк QUOTE

это правильное решение?
Спорьте, заблуждайтесь, ошибайтесь, но, ради бога, размышляйте, и хотя криво, да сами.

Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4105
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 107 раз
Поблагодарили: 424 раза
Контактная информация:

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

Сообщение Siava » 12.03.2009 20:55

SMM
Вроде всё правильно и логично, но у меня вообще эти условия игнорируются и не работают.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Аватара пользователя
SMM
phpBB 1.4.2
Сообщения: 70
Зарегистрирован: 29.07.2006 14:41
Откуда: Казань
Благодарил (а): 9 раз
Контактная информация:

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

Сообщение SMM » 12.03.2009 22:43

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

Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4105
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 107 раз
Поблагодарили: 424 раза
Контактная информация:

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

Сообщение Siava » 12.03.2009 23:03

SMM
Скорей всего накосячил :) так как видят их все и гости в том числе.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

R.I.P.
phpBB 1.0.0
Сообщения: 1
Зарегистрирован: 14.03.2009 20:52

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

Сообщение R.I.P. » 14.03.2009 21:01

Может хоть тут подскажут...
Такая вот проблема: http://www.torrentpier.info/viewtopic.p ... 625#p19912

Если вкратце: стоит TorrentPier (какой-то из...), после редактирования нескольких файлов (предположительно bbcode.php и tpl) в пред. просмотре перестал работать спойлер. В темах он работает, в пред.просмотре ЛС тоже.
Говорят что "Была неверная кодировка, из-за того, что правка производилась в вордпаде, а не блокноте", но что-то я не вижу зависимости, да и неизвестно какой именно файл имеется в виду.

foxer666
phpBB 1.4.2
Сообщения: 63
Зарегистрирован: 21.12.2007 8:26
Откуда: Красноярск
Контактная информация:

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

Сообщение foxer666 » 05.05.2009 13:12

Доброго времени суток.

Необходима помощь гуру.
Форум стоит в локальной сети на несколько тысяч человек без внешнего доступа. Есть свой хостинг изображений.
Заинтересовал вопрос, как можно реализовать замену внешних изображений, которые идут не разрешенного хоста?
Пробовал функцию, описанную в данной теме initPostImages и дописывал функцию замены изображений:

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

function fixPostImage ($img)
{
	var banned_image_hosts = /imagebanana|hidebehind/i;  // imageshack
	var src = $img[0].src;
	if (src.match(banned_image_hosts)) {
		$img.wrap('<a href="'+ this.src +'" target="_blank"></a>').attr({ src: "./images/tr_oops.gif", title: "Host for this image is banned!" });
	}
	return $img;
}
В итоге размер изображений правится, а вот на хост проверку не делает :(

Помогите реализовать, если есть возможность помочь.
Заранее благодарен.

Lektor
phpBB 2.0.7
Сообщения: 574
Зарегистрирован: 20.04.2006 15:19

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

Сообщение Lektor » 06.05.2009 0:01

2 раза прочитал и нифига не понял .. напиши нормально что надо .. я помогу т.к. с этой функцией сам разбирался ..

foxer666
phpBB 1.4.2
Сообщения: 63
Зарегистрирован: 21.12.2007 8:26
Откуда: Красноярск
Контактная информация:

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

Сообщение foxer666 » 06.05.2009 5:24

Ну если коротко, то не работает часть функции initPostImages, которая отвечает за изменения адреса картинки, если изначальная картинка ведет на хосты, не из списка допустимых.
Необходимо реализовать картинки только с нутрисетевых ресурсов, проверка по домену, за это отвечает функция fixPostImage, которая вызывается в функции initPostImages. Функция initPostImages отвечает за ресайз изображений, эта функция работает, но функция fixPostImage работать отказывается, бьюсь уже третий месяц, буду благодарен любой помощи, ибо JS только начал изучать.

Lektor
phpBB 2.0.7
Сообщения: 574
Зарегистрирован: 20.04.2006 15:19

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

Сообщение Lektor » 07.05.2009 16:31

много лишней информации :/

Как я понял нужно: чтобы все картинки, которые размещены не во внутрисети заменялись на какой-то определенный рисунок размещенный внутри сети. Так?
внутрисеть = известный перечень доменов + известный диапозон айпи адресов?

ну как то так:

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

function fixPostImage ($img)
{
	var allowed_image_hosts = /внутрисетевой_домен1|внутрисетевой_домен2|внутрисетевой_домен3|192\.168\.\d+\.\d+/i;
	var src = $img[0].src;
            if (!(src.match(allowed_image_hosts))) {
                        $img.wrap('<a href="'+ this.src +'" target="_blank"></a>').attr({ src: "./images/tr_oops.gif", title: "Host for this image is not allowed.		

	return $img;
}

foxer666
phpBB 1.4.2
Сообщения: 63
Зарегистрирован: 21.12.2007 8:26
Откуда: Красноярск
Контактная информация:

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

Сообщение foxer666 » 08.05.2009 13:54

Хм. Ну, во-первых, скобку вторую закрывающую забыли, а во-вторых, это тот же код, но сделан на обратных условиях. Не работает ни один ни другой :( Идею вы правильно поняли, возможно ли выделить вункцию fixPostImage из функции initPostImages и вызвать ее отдельно от initPostImages?

Аватара пользователя
Ivanek
phpBB 1.4.1
Сообщения: 49
Зарегистрирован: 08.03.2006 5:57
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение Ivanek » 26.06.2009 20:07

Значит решение вопроса с спойлером такое!!!!!!!

Добавляем BBCODE

Использование BBCode

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

[spoiler]{TEXT}[/spoiler]
Замена HTML

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

<div id="spoiler"><div><input type="button" value="Показать спойлер" style="width:150px;font-size:12px;margin:10px;padding:0px;" onclick="if (this.parentNode.parentNode.getElementsByTagName('div')['show'].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')['show'].style.display = ''; this.parentNode.parentNode.getElementsByTagName('div')['hide'].style.display = 'none'; this.innerText = ''; this.value = 'Спрятать спойлер'; } else { this.parentNode.parentNode.getElementsByTagName('div')['show'].style.display = 'none'; this.parentNode.parentNode.getElementsByTagName('div')['hide'].style.display = ''; this.innerText = ''; this.value = 'Еще раз показать?'; }" />
<div id="show" style="display: none; background-color:transparent; margin: 0px;border-style:solid;border-width:1px; padding: 4px; width:98%">{TEXT}</div>
<div id="hide"></div></div></div>
Подсказка

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

[spoiler] TEXT [/spoiler]
C Праздником!

Закрыто

Вернуться в «Запросы модов для phpBB 2.0.x»