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

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

Добавлено: 11.02.2009 22:57
Siava
Cama
Кидай :)

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

Добавлено: 11.02.2009 23:04
Cama
Siava писал(а):P.P.S.
Если речь об этом моде, то я его вчера уже проверял и отписался там же.
Тоже увлекся, на ник не обратила там внимание :) Оттуда поудаляла все, есть на то причины... То что положили, не смотрела, возможно об одном и том же говорим. По ссылке пробегись, по играм например, на скриншоты большие по весу обрати внимание. Пост загрузился, а при клике потом скриншоты грузятся. Утвержать не могу, путь короткий да и кеш работает :) открываются у меня быстро. Но наблюдала то что надо.

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

Добавлено: 11.02.2009 23:11
Siava
Cama
В том и дело, установлена прога DuMeter - выводит текущий входящий трафик. Загружается вся страница, вместе с содержимым спойлера, а по клику на него ничего уже не грузится :) А вот на торрентс.ру.. я уже писал выше какая у них хитрость. :)
Вот сюда вырезал по сути весь механизм :) - работает (картинка грузится только после открытия спойлера). Но когда пробую приспособить всё это дело на форум, то содержимое из <var class="... не грузится как картинка, а просто пустое :(
Голову 2 дня ломаю, почти сдался.

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

Добавлено: 11.02.2009 23:21
Cama
Siava писал(а): Вот сюда
Вижу.

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

<var class="postImg postImgAligned img-right
Однако открыла сейчас этот топ, в нем картинки на удаленном хосте. Страничка загрузилась быстро, а вот при вызове спойлера почувствовала паузу - явная подзагрузка.
Хотя код обычный

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

<img src="http://хххх.хх/ace/mp_village.jpg" border="0" onload="imgFit(this, screen.width-250);" onclick="imgFit(this, screen.width-250);" alt="" />

Spoiler jQuery BBcode

Добавлено: 12.02.2009 16:16
woffi
Уважаемые!

Два дня мучался, но таки сделал свою версию Spoiler-а.

За основу взят не раз называемый ранее Spoiler BBcode Mod 2.5.1, библиотека jQuery и подрезанные java-скрипты от Spoiler-а torrents.ru

Внешний вид - такой же, как на torrents.ru. На текущий момент не реализован функционал по подгрузке картинок в момент раскрытия Spoiler-а, а не при загрузке страницы. Но это уже если кому понадобится - потом выложу. Для себя сделаю чуть позже в любом случае (там работы то после предшествующей эпопеи - на пару-тройку часов).
Spoiler-ам можно задавать заголовки, а также вкладывать их друг в друга.

Если кому-надо - берите в приложении. Вроде не забыл ничего и всё должно работать. Если будут вопросы - милости прошу в личку или на мэйл.

Клик по закрытому спойлеру с зажатой клавишей Shift открывает все спойлеры на странице, включая все вложенные. Аналогично клик по открытому спойлеру закрывает все спойлеры на странице.

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

Добавлено: 13.02.2009 11:17
woffi
Итак, если кому надо...
Обновленная версия спойлера с подгрузкой картинок в момент разворачивания самого спойлера.
Оригинальная концепция взята с torrents.ru
Опять же, вроде ничего не забыл и всё должно работать. Если будут какие-то проблемы - я на связи.

(теперь бы его еще к быстрому ответу прикрутить... эххх...)

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

Добавлено: 13.02.2009 11:44
Siava
woffi
Обалдеть, оно работает! :shock: Огроменное спасибо за модификацию, я прямо офигел даже - именно то что надо! :)

(в инструкции пропущено </script> в самом конце) :)

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

Добавлено: 13.02.2009 11:51
woffi
Поправил и перезалил

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

Добавлено: 13.02.2009 11:53
Siava
P.S.

Все эти функции из шапки лучше будет убрать в js-файл (в новый или в первый):

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

function imgFit (img, maxW)
{
.....
function fixPostImage ($img)
{
....	
return $img;
}
так, чтобы в overall_header осталось что-то типа:

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

<script src="./jquery.pack.js" type="text/javascript"></script>
<script src="./jquery.pack2.js" type="text/javascript"></script>
<script language="Javascript" type="text/javascript">
var postImg_MaxWidth = screen.width - 202;
var postImgAligned_MaxWidth = Math.round(screen.width/3);
var hidePostImg =	false;

$(document).ready(function(){
	$(".postbody").each(function(){ initPost( $(this) ) });
});
</script>
P.S.
так будет быстрее грузиться и меньше трафика кушать :)

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

Добавлено: 13.02.2009 12:05
woffi
Можно и в отдельный .js выделить...

Дополнительное уточнение. Функция fixPostImage почти не изменена относительно варианта torrents.ru, поэтому скорее всего не будет работать с keep4u.ru. Также в ней прописан запрет на использование imagebanana и hidebehind в качестве файлохранилища. Я сам ни одним из них не пользовался, оставил оригинальную концепцию как было. При желании можно убить данную функцию и её вызов из функции initPostImages для снятия всех ограничений.

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

Добавлено: 13.02.2009 14:13
Lektor
Решил потестить на чистом пхпбб2:

Изображение

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

Я так понимаю здесь косячек?
spoiler.js

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

function initPostImages(context)
{
	if (hidePostImg) return;
	var $in_spoilers = $('div.sp-body var.postImg', context);
	$('var.postImg', context).not($in_spoilers).each(function(){
		var $v = $(this);
		var src = $v.attr('title');
		var $img = $('<img src="'+ src +'" class="'+ $v.attr('className') +'" alt="IMG" />');
		$img = fixPostImage($img);
		var maxW = ($v.hasClass('postImgAligned')) ? postImgAligned_MaxWidth : postImg_MaxWidth;
		$img.bind('click', function(){ return imgFit(this, maxW); });

		$('#preload').append($img);
		var loading_icon = '<a href="'+ src +'" target="_blank"><img src="images/pic_loading.gif" alt="" border="0" /></a>';
		$v.html(loading_icon);
		if ($.browser.msie) {
			$v.after('<wbr>');
		}
		$img.one('load', function(){
			imgFit(this, maxW);
			$v.empty().append(this);
		});
	});
}
Стоп, такая трабла только под Opera 10 alpha Build 1139, а под IE картинки грузятся :shock:, но не правильно работает "function imgFit", a под FireFox 3.0.5 все нормально работает: и картинки грузятся imgFit воркает.

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

Добавлено: 13.02.2009 14:34
woffi
Lektor писал(а):Стоп, такая трабла только под Opera 10 alpha Build 1139, а под IE картинки грузятся :shock:, но не правильно работает "function imgFit", a под FireFox 3.0.5 все нормально работает: и картинки грузятся imgFit воркает.
Спасибо за багрепорт :)
Кроссбраузерность всегда была моим слабым местом... Пороюсь в скриптах, попробую исправить.

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

Добавлено: 13.02.2009 16:22
woffi
Попробуйте сделать следующее:
1. В overall_header.tpl блок

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

<script language="Javascript" type="text/javascript">
var postImg_MaxWidth = screen.width - 202;
var postImgAligned_MaxWidth = Math.round(screen.width/3);
var hidePostImg =	false;

$(document).ready(function(){
	$(this).each(function(){ initPost( $(this) ) });
});
</script>
заменить на

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

<script language="Javascript" type="text/javascript">
var maxW = screen.width - 202;

$(document).ready(function(){
	$(this).each(function(){ initPost( $(this) ) });
});
</script>
В файле spoiler.js меняем текст функции function initPostImages(context) на

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

function initPostImages(context)
{
	var $in_spoilers = $('div.sp-body var.postImg', context);
	$('var.postImg', context).not($in_spoilers).each(function(){
		var $v = $(this);
		var src = $v.attr('title');
		var $img = $('<img src="'+ src +'" class="'+ $v.attr('className') +'" alt="IMG" />');
		$img = fixPostImage($img);
		$img.bind('click', function(){ return imgFit(this, maxW); });

		$('#preload').append($img);
		var loading_icon = '<a href="'+ src +'" target="_blank"><img src="./images/pic_loading.gif" alt="" border="0"/></a>';
		$v.html(loading_icon);

		if ($.browser.msie || $.browser.opera) {
			$img.one('load', function(){ imgFit(this, maxW);	});
			$v.empty().append($img);
			$v.after('<wbr>');
		}
		else
		{
			$img.one('load', function(){
				imgFit(this, maxW);
				$v.empty().append(this);
			});
		}
	});
}
А также в конце функции function fixPostImage($img) заменяем всю строку $img.wrap<...> на

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

		$img.wrap('<a href="'+ this.src +'" target="_blank"></a>').attr({ src: "./images/tr_oops.gif", title: "Host for this image is banned!" });
(у меня в локальной копии там была ссылка на torrents.ru, поэтому пишу это дополнение)

В IE не нравится, что картинки сначала загружаются в полном размере и только после этого масштабируются. Как пофиксить - пока не понял.

Обновленный архив в приложении.

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

Добавлено: 13.02.2009 18:05
Lektor
woffi
Все четко работает :) Под IE под Opera и FF, отлично работает. Гуд джоб, спасибо (перехожу на ваш вариант).

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

Добавлено: 15.02.2009 2:14
MrCuper
Хотел поставить спойлер woffi и наткнулся на проблему с posting_body.tpl, не совсем те коды у меня
остальное всё подходит

и ещё вопрос, не могли бы вы подсказать где убирать кавычки в кодах, чтобы спойлер был вида
заголовок блока 
, а не
заголовок блока