lightbox и линк под эскизом

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

lightbox и линк под эскизом

Сообщение Cama » 01.02.2009 13:52

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

Пример

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

[url=http://i045.radikal.ru/0812/19/cf27fbe5a714.jpg][img]http://s45.radikal.ru/i109/0812/c2/7b7eafad8400.jpg[/img][/url]
В даном случае скрипт подхватит эскиз заключенный в тег [img], а не выведет картинку по url.
Можно конечно извернуться, добавить пару строк по агалогии с url и создать новый тег. Но это не выход, юзер берет готовый код вставки для постинга и его не принудить изменить название тега =)

Для трешки нашла такое вот решение на примере imageshack.us

В includes/bbcode.php добавляется функция

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

    function highstan($var1)
    {
       if  (!(strpos($var1,".th.jpg") === false))
       {
          $var1 = str_replace(".th.jpg",".jpg",$var1);
       }
       if  (!(strpos($var1,".th.gif") === false))
       {
          $var1 = str_replace(".th.gif",".gif",$var1);
       }
       if  (!(strpos($var1,".th.png") === false))
       {
          $var1 = str_replace(".th.png",".png",$var1);
       }
       return $var1;
    }
После

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

$message = preg_replace($preg['search'], $preg['replace'], $message);
Добавляем

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

$message= highstan($message);
Как не крутила, не выводится эскиз в топик, а выводится конечная картинка.
Пример работы скрипта, только используется не Lightbox, а аналогичный HighSlide. Он более, на мой взгляд, гибок в настройках, имеет большую функциональность, не конфликтует с прототипом (jQuery) и разработка продолжается.

Аватара пользователя
nissin
phpBB 3.0.3
Сообщения: 2174
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 335 раз
Контактная информация:

Re: lightbox и линк под эскизом

Сообщение nissin » 01.02.2009 21:20

Немного не понятно, а почему бы не сделать модификации для тэга [url]?
Не вижу смысла показывать картинку в том же самом размере, который идёт в посте...
Всё повторяется. nurlan.info

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

Re: lightbox и линк под эскизом

Сообщение Cama » 01.02.2009 22:25

nissin писал(а):Немного не понятно, а почему бы не сделать модификации для тэга [url]?
Не вижу смысла показывать картинку в том же самом размере, который идёт в посте...
Как? Привела некоторые решения которые пришли в голову и готовое для трешки.
В посте идет эскиз, при клике полный размер по другому url (см. пример кода на хостинг картинок)

Аватара пользователя
nissin
phpBB 3.0.3
Сообщения: 2174
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 335 раз
Контактная информация:

Re: lightbox и линк под эскизом

Сообщение nissin » 02.02.2009 10:31

Навскидку примерно так.
К сожалению проверять негде.

В файле bbcode.php
Найти

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

	$bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url4']);
Добавить после

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

	$bbcode_tpl['url5'] = str_replace('{URL}', '\\1', $bbcode_tpl['url5']);
	$bbcode_tpl['url5'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url5']);
Найти

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

	// [url=xxxx://www.phpbb.com]phpBB[/url] code..
Добавить перед ним

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

	// [url=xxxx://www.phpbb.com/image.jpg]phpBB[/url] code..
	$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?(jpg|gif|png))\]([^?\n\r\t].*?)\[/url\]#is";
	$replacements[] = $bbcode_tpl['url5'];
В файле bbcode.tpl
Найти

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

<!-- BEGIN url --><a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
Добавить после

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

<!-- BEGIN url5 --><a href="{URL}" target="_blank" class="postlink" onclick="return hs.expand(this)">{DESCRIPTION}</a><!-- END url -->
Всё повторяется. nurlan.info

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

Re: lightbox и линк под эскизом

Сообщение Cama » 02.02.2009 12:26

Идея ясна - типа условие для тега url, изначально так и хотела, но в bbcode не сильна...
По примеру кода выше свойства ярлыка выглядит так
http://http//i045.radikal.ru/0812/19/cf27fbe5a714.jpg
Нужна поправочка =)

Аватара пользователя
nissin
phpBB 3.0.3
Сообщения: 2174
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 335 раз
Контактная информация:

Re: lightbox и линк под эскизом

Сообщение nissin » 02.02.2009 12:34

Поправил:

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

	$bbcode_tpl['url5'] = str_replace('{URL}', '\\1', $bbcode_tpl['url5']);
	$bbcode_tpl['url5'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url5']);
Всё повторяется. nurlan.info

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

Re: lightbox и линк под эскизом

Сообщение Cama » 02.02.2009 13:28

Верно, спасибо. Наглеем дальше... :)
Может будут идеи как обмануть такой вариант

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

[url=http://imageshock.eu/?img=3788928~cf27fbe5a714.jpg][img]https://phpbbguru.net/camo/709b72c7d0b9d65edd97e63179cf5ab2ace5f01a/687474703a2f2f696d61676573686f636b2e65752f696d675f736d616c6c2f333738383932387e6366323766626535613731342e6a7067[/img][/url]
Изображение

Пробовала подстановкой прямого пути, но код у них вредный =), срабатывает единожды, затем редирект.

Аватара пользователя
nissin
phpBB 3.0.3
Сообщения: 2174
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 335 раз
Контактная информация:

Re: lightbox и линк под эскизом

Сообщение nissin » 02.02.2009 14:26

Тогда функциями Javascript сначала сделать нормальный запрос, а потом уже подставить прямой линк.
Всё повторяется. nurlan.info

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

Re: lightbox и линк под эскизом

Сообщение Cama » 02.02.2009 16:49

Подскажи, если не сложно :oops:

Аватара пользователя
nissin
phpBB 3.0.3
Сообщения: 2174
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 335 раз
Контактная информация:

Re: lightbox и линк под эскизом

Сообщение nissin » 02.02.2009 23:06

Отправку http запроса на javascript можно посмотреть здесь:
http://mysitez.km.ua/Programming/?jshttpsend
А после запроса уже можно брать и показывать картинку.
Всё повторяется. nurlan.info

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

Re: lightbox и линк под эскизом

Сообщение Lektor » 27.03.2009 19:25

Cama
Ну что разобралась? Просто все намного проще. Не нужны хттпсенд и новые ббкоды.

1. После message_prepare и перед submit_message делаем проверочку:
Вот на что ссылается thumb картинка:
http://imageshock.eu/?img=3788928~cf27fbe5a714.jpg
прямая же линка на эту картинку:
http://imageshock.eu/img/3788928~cf27fbe5a714.jpg
т.е. регулярными выражениями исправляем (или без регулярок можно обойтись) меняем это: ?img= на это /img/.
(есно для каждого хостера будут свои финты ушами т.е. сперва делаем проверку на хостера (это уже регулярными выражениями) а потом делаем нужные правки)

2. Дальше, поскольку в phpBB все ббкоды парсятся при выводе нужно делать еще одну проверочку (на уровне bbcode.php), а именно:
если имеем конструкцию:
[img]наш_хостер*[/img], то добавляем событие для юрл тега onclick="return hs.expand(this)"

В принципе все это не сложно сделать... так шо если шо пиши помогу.

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

Re: lightbox и линк под эскизом

Сообщение Cama » 02.04.2009 14:04

В принципе все это не сложно сделать... так шо если шо пиши помогу
Пишу =)
Два линка в твоем посте. Понятно что картинка в реале находится по второму. Но при клике на нее имеем редирект на первый линк. Соответственно onclick="return hs.expand(this)" не срабатывает.

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

Re: lightbox и линк под эскизом

Сообщение Lektor » 03.04.2009 21:20

Cama
Все оказалось еще проще чем я представлял..

Смотри, мой вариант решения твоего вопроса основан на моде сполеров который я юзаю: http://www.phpbbguru.net/community/down ... hp?id=5669 (от woffi, отсюда)
Спросишь причем тут сполер ) обьясню: в нем реалезован другой вывод изображений, т.е. в нем в ббкод.тпл для имеджей вот так:

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

<!-- BEGIN img --><var class="postImg" title="{URL}">&#10;</var><!-- END img -->
вместо привычного:

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

<!-- BEGIN img --><img src="{URL}" border="0" /><!-- END img -->
так вот если захочешь потестить мой вариант сноси свой мод сполера и ставь по ссылке выше, а дальше вот-что (хайслайд у тебя уже должен быть проинициализирован в оверал_хидер.тпл):
1 - заменяешь spoiler.js который идет в комплекте на тот что в атаче.
2 - наслаждаемся результатом.

Таким образом получишь:
1 - правильный сполер )
2 - все картинки, которые больше чем screen.width - 250 (значение ты можешь подставить свое, это в оверал_хидере править надо ) уменьшаются до размера screen.width - 250 и при клике на них они открываются на новом слое с эфектом хайслайд, остальные картинки, которые меньше screen.width - 250 остаются в покое.
3. Картинки залитые на keep4u.ru, imageshock.eu и выложенные на форум, становятся умными ) т.е. по клику на превьюху на новом слое открывается оригинал с хайслайд эфектом.

Если нужны будут другие хостинги и сама не разберешься с регулярками пиши я сделаю тебе для других хостеров умные превьюхи.
Вложения
spoiler.rar
(1.4 КБ) 230 скачиваний

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

Re: lightbox и линк под эскизом

Сообщение Lektor » 04.04.2009 1:18

imageshock`овские превьюхи корректно не работают т.к. он проверяет referrer ... вот для радикаловских превьюх код:

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

	else if (src.match(/radikal/i)) {
		var new_url = src.replace(/(.*)(t\.)(.*)/, "$1.$3");
		$img.attr('src', src).addClass('clickable').bind('click', function() {return hs.expand(this, { src: new_url })});

	}
вставь его в spoiler.js в функцию: fixPostImage

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

Re: lightbox и линк под эскизом

Сообщение Lektor » 04.04.2009 19:32

Сделал для imageshok.eu код (хоть мне этот хостер и не нравится, медленный он)
кидай в корень imageshok.php и замени spoiler.js файлы в атаче:
Вложения
files.rar
(1.83 КБ) 220 скачиваний

Закрыто

Вернуться в «Для авторов (phpBB 2.0.x)»