Перейти к содержанию

Помогите написать bb-код [img=(left|right|center)][/img]


Рекомендуемые сообщения

Нигде на нашел его для phpbb 2.x, сам php и html незнаю.

Вот какие коды есть (вроде файл верный, если нет, подскажите в каком искать)

function prepare_bbcode_template($bbcode_tpl)

{

...

$bbcode_tpl['img'] = str_replace('{URL}', '\\1', $bbcode_tpl['img']);

$bbcode_tpl['align_open'] = str_replace('{ALIGN}', '\\1', $bbcode_tpl['align_open']);

...

}

function bbencode_second_pass($text, $uid)

{

...

// image_url_here code..

// This one gets first-passed..

$patterns[] = "#\([^?](?:[^\[]+|\[(?!url))*?)\#i";

$replacements[] = $bbcode_tpl['img'];

$patterns[] = "#\[imgreflect]([^?](?:[^\[]+|\[(?!url))*?)\[/imgreflect]#i";

$replacements[] = $bbcode_tpl['imgreflect'];

// rightFormatted Image code..

$patterns[] = "#\(left%7Cright%7Ccenter)([^?](?:[^\[]+|\[(?!url))*?)\#i";

$replacements[] = $bbcode_tpl['img'];

// [align=left/center/right/justify]Formatted Code[/align] code..

$text = preg_replace("/\[align=(left|right|center|justify)]/si", $bbcode_tpl['align_open'], $text);

$text = str_replace("[/align]", $bbcode_tpl['align_close'], $text);

...

} // bbencode_second_pass()

function make_bbcode_uid()

{

...

// image_url_here code..

$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'\\1'", $text);

// rightFormatted Image code..

$text = preg_replace("#\(left%7Cright%7Ccenter)%5C((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[align=\\1]\\2\\1[/align]'", $text);

// [align=left/center/right/justify]Formatted Code[/align] code..

$text = preg_replace("#\[align=(left|right|center|justify)\](.*?)\[/align\]#si", "[align=\\1]\\2[/align]", $text);

} // bbencode_first_pass()

Выделенное курсивом писал сам, оно естесственно неправильно. Думаю что тег основан на смеси img и align'а, от этого и отталкивался.

now.png

В сообщении написано

[img=http://ftp.burnet.ru/incoming/users/torrent/626/lodapic13se1.jpg]

В свойствах картинки адрес http://сайт/righthttp

То, что картинка справа, уже хорошо)

Ссылка на комментарий

ап :(

pic1_e3538ac6d6acd48efe57a6cd81cc24bc.pngpic2_916505284bfdf2cf3a84e2bfa40a26fb.png
http:

Немогу никак добиться чтобы появился правильный {URL}

{URL}

$bbcode_tpl['img_style'] = str_replace('{ALIGN}', '\\1', $bbcode_tpl['img_style']);

$bbcode_tpl['img_style'] = str_replace('{URL}', '\\2', $bbcode_tpl['img_style']);

// ...image_url_here code..

// This one gets first-passed..

$patterns[] = "#\(left%7Cright)([^?](?:[^\[]+|\[(?!url))*?)\#si";

$replacements[] = $bbcode_tpl['img_style'];

// IMG=RIGHT|LEFT

$text = preg_replace("#\(left%7Cright)%5C((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'%5C%5C1'\\2 . str_replace(' ', '%20', '\\2') . ''", $text);

Что такое \\1 и \\2 в первой процедуре? Места где должны находиться вставляемые фрагменты или как?

$patterns[] = "#\(left%7Cright)%5Bb:$uid\]([^?](?:[^\[]+|\[(?!url))*?)\[/img:$uid\]#si"; Выделенные места тоже немогу понять для чего, из второй процедуры.

$text = preg_replace("#\(left%7Cright)%5Bb\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'%5C%5C1%5Bb:$uid]'\\2 . str_replace(' ', '%20', '\\2') . '[/img:$uid]'", $text); - аналогично

Ссылка на комментарий

попробуй в конце новый парсер дописать, например


function parse_img($text){
$a = '/\[img=(left|right|center)\](*.?)\[\/img\]/is';
$r = '';
return preg_replace($a, $r, $text);
}

вроде правильно написал ), но можешь потом *.? заменить на свое или добавить свое...

ЗЫ. функция возвращает готовый результат

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...