1 (edited by PunBB 2017.06.03 23:40)

Topic: Pan BBcode Table - Создание таблицы в сообщениях форума PunBB

Расширение позволяет создавать таблицу в сообщениях используя теги TABLE, TH, TR, TD.

Структура таблицы в HTML:

<table>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
</table>

Структура в BBcode:

[table]

[tr][th]Колонка 1[/th] [th]Колонка 2[/th][/tr]

[tr][td]Ячейка 1[/td] [td]ячейка 2[/td][/tr]

[/table]

В итоге получится создавать простые таблицы на форуме. Вот такого примерно вида.

Pan BBcode Table - Создание таблицы в сообщениях форума PunBB


Будьте внимательны, изначально в стиле Oxygen срезается подвал, поэтому вам нужно буде
т поднастроить CSS.

.entry-content table {
/* Здесь поиграться со стилями вашей темы*/


}

И добавить код в файл .css вашей темы


Скачать расширение Pan BBcode Table для PunBB 1.4.4

Скачать устаревшую версию для PunBB 1.4.2

2

Re: Pan BBcode Table - Создание таблицы в сообщениях форума PunBB

Критует с ошибкой

Добавление ответа

Fatal error: Call to undefined function handle_table_tag() in /home/public_html/include/parser.php(791) : regexp code on line 1

3

Re: Pan BBcode Table - Создание таблицы в сообщениях форума PunBB

Фатальная ошибка: Вызов неопределенной функции handle_table_tag(). Нужно смотреть с чем конфликт в функции.

Если вам долго не отвечают, пишите автору темы в личку или на Email.

4 (edited by Woodrow 2017.06.03 19:08)

Re: Pan BBcode Table - Создание таблицы в сообщениях форума PunBB

Помоги те пожалуйста поправить

<hooks>
<hook id="ps_start">
<![CDATA[ // tag handling function function handle_table_tag($inputText) { return '<table>'.$inputText.'</table>'; } function handle_tr_tag($inputText) { return '<tr>'.$inputText.'</tr>'; } function handle_th_tag($inputText) { return '<th><h1>'.$inputText.'</h1></th>'; } function handle_td_tag($inputText) { return '<td>'.$inputText.'</td>'; } ]]>
</hook>

<hook id="ps_preparse_tags_start">
<![CDATA[ // add our tag to the list $tags[0] = 'table'; $tags_opened[0] = 'table'; $tags_closed[0] = 'table'; $tags_inline[0] = 'table'; $tags_trim[0] = 'table'; $tags[1] = 'tr'; $tags_opened[1] = 'tr'; $tags_closed[1] = 'tr'; $tags_inline[1] = 'tr'; $tags_trim[1] = 'tr'; $tags[2] = 'tr'; $tags_opened[2] = 'th'; $tags_closed[2] = 'th'; $tags_inline[2] = 'th'; $tags_trim[2] = 'th'; $tags[3] = 'td'; $tags_opened[3] = 'td'; $tags_closed[3] = 'td'; $tags_inline[3] = 'td'; $tags_trim[3] = 'td'; ]]>
</hook>

<hook id="ps_do_bbcode_replace">
<![CDATA[ $pattern[] = '#\[table\](.*?)\[/table\]#se'; $replace[] = 'handle_table_tag(\'$1\')'; $pattern[] = '#\[tr\](.*?)\[/tr\]#se'; $replace[] = 'handle_tr_tag(\'$1\')'; $pattern[] = '#\[th\](.*?)\[/th\]#se'; $replace[] = 'handle_th_tag(\'$1\')'; $pattern[] = '#\[td\](.*?)\[/td\]#se'; $replace[] = 'handle_td_tag(\'$1\')'; ]]>
</hook>

<hook id="pun_bbcode_pre_buttons_output">
<![CDATA[ $this->add_button(array('name' => 'table', 'weight' => 60, 'image' => false)); $this->add_button(array('name' => 'tr', 'weight' => 60, 'image' => false)); $this->add_button(array('name' => 'th', 'weight' => 60, 'image' => false)); $this->add_button(array('name' => 'td', 'weight' => 60, 'image' => false)); ]]>
</hook>
</hooks>

вываливается ошибка с /e, что надо использовать preg_replace_callback

мне кажется я ошибся, чего то не хватает в таком исправлении

<hook id="ps_do_bbcode_replace">
<![CDATA[ $pattern[] = '#\[table\](.*?)\[/table\]#'; $replace[] = 'handle_table_tag($matches[1])'; $pattern[] = '#\[tr\](.*?)\[/tr\]#'; $replace[] = 'handle_tr_tag($matches[1])'; $pattern[] = '#\[th\](.*?)\[/th\]#'; $replace[] = 'handle_th_tag($matches[1])'; $pattern[] = '#\[td\](.*?)\[/td\]#'; $replace[] = 'handle_td_tag($matches[1])'; ]]>
</hook>

форум выводит:

handle_table_tag(handle_tr_tag(handle_th_tag(Header 1)handle_th_tag(Header 2))handle_tr_tag(handle_td_tag(row 1, cell 1)handle_td_tag(row 1, cell 2)))

5

Re: Pan BBcode Table - Создание таблицы в сообщениях форума PunBB

Woodrow, расширение устаревшее для 142 версии движка. Модификатор убрали, все верно, в нем дело, но этого не достаточно. Вот пример без функций:

$pattern[] = '#\[table\](.*?)\[/table\]#ms';
$replace[] = '<table>$matches[1]</table>';

А лучше скачайте архив в начале поста, перезалил. Там теперь 2 версии.

Если вам долго не отвечают, пишите автору темы в личку или на Email.