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

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

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

Сообщение Siava » 11.02.2009 22:57

Cama
Кидай :)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Cama
phpBB 1.4.0
Сообщения: 35
Зарегистрирован: 09.05.2008 2:48
Контактная информация:

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

Сообщение Cama » 11.02.2009 23:04

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

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

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

Сообщение Siava » 11.02.2009 23:11

Cama
В том и дело, установлена прога DuMeter - выводит текущий входящий трафик. Загружается вся страница, вместе с содержимым спойлера, а по клику на него ничего уже не грузится :) А вот на торрентс.ру.. я уже писал выше какая у них хитрость. :)
Вот сюда вырезал по сути весь механизм :) - работает (картинка грузится только после открытия спойлера). Но когда пробую приспособить всё это дело на форум, то содержимое из <var class="... не грузится как картинка, а просто пустое :(
Голову 2 дня ломаю, почти сдался.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Cama
phpBB 1.4.0
Сообщения: 35
Зарегистрирован: 09.05.2008 2:48
Контактная информация:

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

Сообщение Cama » 11.02.2009 23:21

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="" />

woffi
phpBB 1.2.0
Сообщения: 17
Зарегистрирован: 07.12.2006 16:44
Контактная информация:

Spoiler jQuery BBcode

Сообщение woffi » 12.02.2009 16:16

Уважаемые!

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

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

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

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

Клик по закрытому спойлеру с зажатой клавишей Shift открывает все спойлеры на странице, включая все вложенные. Аналогично клик по открытому спойлеру закрывает все спойлеры на странице.
Вложения
jQueryBBcodeSpoiler.zip
(29.15 КБ) 495 скачиваний
Суздаль - жемчужина России!

woffi
phpBB 1.2.0
Сообщения: 17
Зарегистрирован: 07.12.2006 16:44
Контактная информация:

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

Сообщение woffi » 13.02.2009 11:17

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

(теперь бы его еще к быстрому ответу прикрутить... эххх...)
Вложения
jQueryBBcodeSpoilerV1.1.zip
(32.88 КБ) 571 скачивание
Последний раз редактировалось woffi 13.02.2009 11:50, всего редактировалось 1 раз.
Суздаль - жемчужина России!

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

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

Сообщение Siava » 13.02.2009 11:44

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

(в инструкции пропущено </script> в самом конце) :)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

woffi
phpBB 1.2.0
Сообщения: 17
Зарегистрирован: 07.12.2006 16:44
Контактная информация:

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

Сообщение woffi » 13.02.2009 11:51

Поправил и перезалил
Суздаль - жемчужина России!

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

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

Сообщение Siava » 13.02.2009 11:53

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.
так будет быстрее грузиться и меньше трафика кушать :)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

woffi
phpBB 1.2.0
Сообщения: 17
Зарегистрирован: 07.12.2006 16:44
Контактная информация:

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

Сообщение woffi » 13.02.2009 12:05

Можно и в отдельный .js выделить...

Дополнительное уточнение. Функция fixPostImage почти не изменена относительно варианта torrents.ru, поэтому скорее всего не будет работать с keep4u.ru. Также в ней прописан запрет на использование imagebanana и hidebehind в качестве файлохранилища. Я сам ни одним из них не пользовался, оставил оригинальную концепцию как было. При желании можно убить данную функцию и её вызов из функции initPostImages для снятия всех ограничений.
Вложения
jQueryBBcodeSpoilerV1.2.zip
(33.17 КБ) 298 скачиваний
Суздаль - жемчужина России!

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

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

Сообщение Lektor » 13.02.2009 14:13

Решил потестить на чистом пхпбб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 воркает.

woffi
phpBB 1.2.0
Сообщения: 17
Зарегистрирован: 07.12.2006 16:44
Контактная информация:

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

Сообщение woffi » 13.02.2009 14:34

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

woffi
phpBB 1.2.0
Сообщения: 17
Зарегистрирован: 07.12.2006 16:44
Контактная информация:

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

Сообщение woffi » 13.02.2009 16:22

Попробуйте сделать следующее:
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 не нравится, что картинки сначала загружаются в полном размере и только после этого масштабируются. Как пофиксить - пока не понял.

Обновленный архив в приложении.
Вложения
jQueryBBcodeSpoilerV1.2.1.zip
(33.11 КБ) 675 скачиваний
Суздаль - жемчужина России!

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

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

Сообщение Lektor » 13.02.2009 18:05

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

MrCuper
phpBB 1.0.0
Сообщения: 1
Зарегистрирован: 10.02.2009 0:35

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

Сообщение MrCuper » 15.02.2009 2:14

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

и ещё вопрос, не могли бы вы подсказать где убирать кавычки в кодах, чтобы спойлер был вида
заголовок блока 
, а не
заголовок блока 
Вложения
posting_body.zip
(4.53 КБ) 221 скачивание

Закрыто

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