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

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

Добавлено: 11.03.2009 10:26
Siava
Lektor
Проблемка имеет место быть. Проверьте сами, впишите в заголовок спойлера какой-нибудь алерт-javascript.

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

Добавлено: 12.03.2009 18:58
SMM
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

это правильное решение?

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

Добавлено: 12.03.2009 20:55
Siava
SMM
Вроде всё правильно и логично, но у меня вообще эти условия игнорируются и не работают.

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

Добавлено: 12.03.2009 22:43
SMM
а задумано что спойлеры видят только залогиные пользователи или это я на косячил как то?

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

Добавлено: 12.03.2009 23:03
Siava
SMM
Скорей всего накосячил :) так как видят их все и гости в том числе.

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

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

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

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

Добавлено: 05.05.2009 13:12
foxer666
Доброго времени суток.

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

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

function fixPostImage ($img)
{
	var banned_image_hosts = /imagebanana|hidebehind/i;  // [censor]
	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;
}
В итоге размер изображений правится, а вот на хост проверку не делает :(

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

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

Добавлено: 06.05.2009 0:01
Lektor
2 раза прочитал и нифига не понял .. напиши нормально что надо .. я помогу т.к. с этой функцией сам разбирался ..

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

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

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

Добавлено: 07.05.2009 16:31
Lektor
много лишней информации :/

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

ну как то так:

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

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;
}

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

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

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

Добавлено: 26.06.2009 20:07
Ivanek
Значит решение вопроса с спойлером такое!!!!!!!

Добавляем 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]