Господа, а кто поможет с BBCode?
Опять же есть вопрос по вставке картинки из альбома, но без помощи PIC. Мне кажется это несколько лишним заставлять пользователя учить еще одну кнопку на панели.
Мне кажется достаточно использовать всё ту же IMG.
Что уже сделано:
Код: Выделить всё
[img]image_url_here[/img] code..
$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
заменить на:
Код: Выделить всё
[img]image_url_here[/img] code..
if (substr_count( $text, $_SERVER["SERVER_NAME"]) && substr_count( $text, "album_pic.php"))
{
$text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
}
else
{
$text = preg_replace("#\[img\]((ht|f)tp://)([^ \?&=\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
}
Это позволяет вставлять URL картинки из альбома в пост и нормально его отображать.
Задача:
Не показывать полную картинку, а только миниатюру.
Т.е. пользователь вставляет URL на полную картинку, а отображается только миниатюра, при клике на которую показывается полное изображение. И все это только при использовании тэга IMG.
На сколько я понимаю, нужно подготовить еще один темплейт в
bbcode.tpl.
Код: Выделить всё
<!-- BEGIN imggal --><a href="{URLGAL}" target="_blank"><img src="{URL}" border="0" /></a><!-- END imggal -->
и заменить в
bbcode.php
Код: Выделить всё
$bbcode_tpl['img'] = str_replace('{URL}', '\\1', $bbcode_tpl['img']);
на условие, где проверялось бы переменная содержащая путь к картинке на вхождение "album_pic.php". Если да - то применяем шаблон imggal, где в качестве {URL} вставляется исходная переменная, а в качестве {URLGAL} та же строка но с помощью str_replace меняем в ней
album_pic.php на
album_thumbnail.php.
Если же в переменной нет искомого album_pic.php, то применяем шаблон img.
Только вот не могу врубиться... Какой синтаксис то будет для проверки переменной? Что то она для меня слишком уж странной выглядит...
- это и есть та самая переменная???
Добавлено спустя 1 час 53 минуты 59 секунд:
Уже близок к истине...
Код: Выделить всё
[img]image_url_here[/img] code..
$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
меняем на
Код: Выделить всё
if (substr_count( $text, $_SERVER["SERVER_NAME"]) && substr_count( $text, "album_pic.php") || substr_count( $text, "album_thumbnail.php"))
{
$text = preg_replace(
"#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie",
"'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'",
$text);
$text = str_replace("album_pic.php", "album_thumbnail.php", $text);
}
else
{
$text = preg_replace("#\[img\]((ht|f)tp://)([^ \?&=\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
}
Теперь нужно сформировать правильный паттерн.
Кто нибудь хорошо владеет регулярными выражениями?
Задача определить, есть ли в переменной вхождение album_thumbnail
Пример обычного паттерна для IMG:
Код: Выделить всё
// [img]image_url_here[/img] code..
// This one gets first-passed..
$patterns[] = "#\[img:$uid\]([^?](?:[^\[]+|\[(?!url))*?)\[/img:$uid\]#i";
$replacements[] = $bbcode_tpl['img'];