Пропустить

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

Форум для авторов модов для phpBB 2.0.x.

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

Сообщение Cama » 01.02.2009 14: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) и разработка продолжается.

Cama
phpBB 1.4.0
 
Сообщения: 37
Зарегистрирован: 09.05.2008 2:48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

Немного не понятно, а почему бы не сделать модификации для тэга [url]?
Не вижу смысла показывать картинку в том же самом размере, который идёт в посте...
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

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

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

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

Как? Привела некоторые решения которые пришли в голову и готовое для трешки.
В посте идет эскиз, при клике полный размер по другому url (см. пример кода на хостинг картинок)

Cama
phpBB 1.4.0
 
Сообщения: 37
Зарегистрирован: 09.05.2008 2:48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение nissin » 02.02.2009 11: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
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

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

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

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

Нужна поправочка =)

Cama
phpBB 1.4.0
 
Сообщения: 37
Зарегистрирован: 09.05.2008 2:48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

Поправил:
	$bbcode_tpl['url5'] = str_replace('{URL}', '\\1', $bbcode_tpl['url5']);
	$bbcode_tpl['url5'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url5']);
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

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

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

Верно, спасибо. Наглеем дальше... :)
Может будут идеи как обмануть такой вариант
[url=http://imageshock.eu/?img=3788928~cf27fbe5a714.jpg][img]http://imageshock.eu/img_small/3788928~cf27fbe5a714.jpg[/img][/url]


Изображение

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

Cama
phpBB 1.4.0
 
Сообщения: 37
Зарегистрирован: 09.05.2008 2:48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

Тогда функциями Javascript сначала сделать нормальный запрос, а потом уже подставить прямой линк.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

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

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

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

Cama
phpBB 1.4.0
 
Сообщения: 37
Зарегистрирован: 09.05.2008 2:48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение nissin » 03.02.2009 0:06

Отправку http запроса на javascript можно посмотреть здесь:
http://mysitez.km.ua/Programming/?jshttpsend
А после запроса уже можно брать и показывать картинку.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

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

Сообщение Lektor » 27.03.2009 20: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), а именно:
если имеем конструкцию:
[url=наш_хостер*][img]наш_хостер*[/img][/url], то добавляем событие для юрл тега onclick="return hs.expand(this)"

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

Lektor
phpBB 2.0.18
 
Сообщения: 580
Зарегистрирован: 20.04.2006 15:19
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

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

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

Cama
phpBB 1.4.0
 
Сообщения: 37
Зарегистрирован: 09.05.2008 2:48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

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

Смотри, мой вариант решения твоего вопроса основан на моде сполеров который я юзаю: download/file.php?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 КБ) Скачиваний: 47

Lektor
phpBB 2.0.18
 
Сообщения: 580
Зарегистрирован: 20.04.2006 15:19
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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.18
 
Сообщения: 580
Зарегистрирован: 20.04.2006 15:19
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

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

Lektor
phpBB 2.0.18
 
Сообщения: 580
Зарегистрирован: 20.04.2006 15:19
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

След.

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы