Варианты, бытующие в сети либо сложны для использования, либо имеют сильно урезанный функционал по сравнению с html аналогами. Но мне удалось обнаружить способ создания полнофункциональных bbcode таблиц, с которыми удобно работать, которые просты в обращении и понятны даже самому неподготовленному пользователю.
Например, всё что от пользователя потребуется сделать, чтобы адаптировать произвольную таблицу из интернета к синтаксису текстового редактора на форуме, это следовать короткой инструкции.
Инструкция:
Код: Выделить всё
Приведите таблицу вида:
<table style=" ... ">
<tr style=" ... ">
<td style=" ... ">
Текст
</td>
</tr>
</table>
к виду:
[table_style=" ... "]
[tr_style=" ... "]
[td_style=" ... "]
Текст
[/td_style]
[/tr_style]
[/table_style]
Как видим, всё предельно просто.
А идея заключается в том, чтобы максимально приблизить синтаксис BBCode к синтаксису html-CSS, фактически сделать их идентичными.
В phpBB 3.2 это оказалось возможно реализовать, не выходя из админки:
Настройки такие:
Код: Выделить всё
Использование BBCode: [table]{TEXT}[/table]
Замена HTML: <table>{TEXT}</table>
Подсказка: Таблица: [table][tr][td] текст [/td][/tr][/table] или [table_style="width: 100px; border: 1px solid black;"][tr][td] текст [/td][/tr][/table_style]
Показывать на странице ответа: Да
Использование BBCode: [table_style={TEXT1}]{TEXT2}[/table_style]
Замена HTML: <table style={TEXT1}>{TEXT2}</table>
Подсказка:
Показывать на странице ответа: Нет
Использование BBCode: [td]{TEXT}[/td]
Замена HTML: <td>{TEXT}</td>
Подсказка: Ячейка таблицы: [td] текст [/td] или [td_style="color: red;"] текст [/td_style]
Показывать на странице ответа: Да
Использование BBCode: [td_style={TEXT1}]{TEXT2}[/td_style]
Замена HTML: <td style={TEXT1}>{TEXT2}</td>
Подсказка:
Показывать на странице ответа: Нет
Использование BBCode: [tr]{TEXT}[/tr]
Замена HTML: <tr>{TEXT}</tr>
Подсказка: Строка таблицы: [tr][td] текст [/td][/tr] или [tr_style="background-color: green;"][td] текст [/td][/tr_style]
Показывать на странице ответа: Да
Использование BBCode: [tr_style={TEXT1}]{TEXT2}[/tr_style]
Замена HTML: <tr style={TEXT1}>{TEXT2}</tr>
Подсказка:
Показывать на странице ответа: Нет
Результат будет таким:
***
Следуя этой логике, можно сделать синтаксисы BBCode и html-CSS еще более похожими друг на друга, даже полностью идентичными. Но для этого надо разобраться, как скрыть знак равенства в ббкоде и как назначать одному тегу ббкода две различных html замены.