phpBB

TsarAlex

Новичок
phpBB

Люди пожайлуста помогите сделать так чтобы в форуме phpBB можно было публиковать сообщения, содержащие таблицы. Может есть у кого намеки как это сделать. Буду рад любой информации. Причем табличные тэги должны быть bbCode.
 

Burunduk-13

[CBT], Старожил РНРClub'a
>Может есть у кого намеки как это сделать.
1. Можно поискать готовый мод на phpBB.com
2. Можно самому реализовать их.
a). Добавить требуемые тэги в templates\subSilver\bbcode.tpl
b). Скорее всего надо еще править includes\bbcode.php, но у phpBB не такой уж и сложный код и комментарии есть, так что разобраться в нем возможно.
 

TsarAlex

Новичок
Я уже безтруда добавил много всего туда. Но с таблицами все много сложенее. Надо учесть что некоторые bbCode тэги не могут быть перед другими например следущее не корректно:
[tr][/table][td]
 

Burunduk-13

[CBT], Старожил РНРClub'a
в phpBB есть отличная функция
bbencode_first_pass_pda
с помощью нее можно реализовать все проверки
PHP:
/// парочка функций
function parse_tr($text, $uid) {
	return bbencode_first_pass_pda(' '.$text, $uid, '[tr]', '[/tr]', '', false, 'parse_td');
};

function parse_td($text, $uid) {
	return bbencode_first_pass_pda(' '.$text, $uid, '[td]', '[/td]', '', false, 'bbencode_first_pass');
};

.........................
/// это вставить в bbencode_first_pass
// [TABLE] and [/TABLE] for inserting table structures
	$text = bbencode_first_pass_pda($text, $uid, '[table]', '[/table]', '', false, 'parse_tr');

/// ну и конечно же вставить следующий код в bbencode_second_pass
	// Table managment
	$text = str_replace("[table:$uid]", $bbcode_tpl['table_open'], $text);
	$text = str_replace("[/table:$uid]", $bbcode_tpl['table_close'], $text);

	$text = str_replace("[tr:$uid]", $bbcode_tpl['tr_open'], $text);
	$text = str_replace("[/tr:$uid]", $bbcode_tpl['tr_close'], $text);

	$text = str_replace("[td:$uid]", $bbcode_tpl['td_open'], $text);
	$text = str_replace("[/td:$uid]", $bbcode_tpl['td_close'], $text);
 

Burunduk-13

[CBT], Старожил РНРClub'a
Только в этом коде есть бага... то есть не все учитываеться...
Все переносы строк заменяються на <br />, и такой код
"
123
\n
"
превращается в
"<table><br />
<tr><td>......"
что не есть правильно
 

TsarAlex

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

TsarAlex

Новичок
Автор оригинала: Burunduk-13
Только в этом коде есть бага... то есть не все учитываеться...
Все переносы строк заменяються на <br />, и такой код
"
123
\n
"
превращается в
"<table><br />
<tr><td>......"
что не есть правильно
Странно. У меня "\n" заменяется на " n". Я что-то не то сделал?
 

TsarAlex

Новичок
А как можно проверить наличие недопустимых тэгов между
...
 
Сверху