Новые BB-теги в форумах для Joomla FireBoard (Kunena)

Иногда появляется необходимость добавить свои кнопки в панель редактирования/создания постов в компонентах форумов FireBoard (Joomla 1.0.X) и Kunena (Joomla 1.5.X).

Например, с точки зрения SEO, считается более правильным выделять слова отражающие основной смысл поста тегами <strong></strong>, а не <b></b> (которые несут лишь визуальную нагрузку) имеющимися в арсенале этих форумов.

Есть два способа решить эту задачу:
1. Простой: заменить интерпретацию BB-тегов [b][/b] с <b></b> на <strong></strong>.
2. Сложнее, но универсальнее: добавить свою кнопку для своих тегов <strong></strong>.

Решение:
1. Ищем файл форума в котором происходит преобразование BB-тегов в HTML-теги.
Находим interpreter.fireboard.inc.php (kunena.parser.php для kunena), и меняем встречающиеся <b>, </b> на <strong>, </strong> так:

...
case 'b':
   $tns = "<strong>"; $tne = '</strong>';
   return TAGPARSER_RET_REPLACED;
   break;
...

Теперь теги [b][/b] будут заменяться в тексте при публикации на <strong></strong>.

2. Ищем где формируются кнопки (например по 'bbstyle (0)'):
Находим тот-же smile.class.php, и добавляем после кнопки 'B' кнопку 'S':

...
<input type = "button" class = "<?php echo $boardclass;?>button" accesskey = "b" name = "addbbcode0" value = " B " style = "font-weight:bold; " onclick = "bbstyle(0)" onmouseover = "helpline('b')"/>
<input type = "button" class = "<?php echo $boardclass;?>button" accesskey = "" name = "addbbcode1" value = " S " style = "font-weight:bold; " onclick = "bbstyle(2)" onmouseover = "helpline('strong')"/>
...

Значимыми тут являются параметры для функций bbstyle () (выводит BB-теги) и для helpline () (выводит строку подсказки). Находим их в файле fb_bb.js.php и добавляем следующие строчки:

...
bbtags = new Array(
'[b]','[/b]',
'[s]','[/s]', /* добавили наши BB-теги в общий массив */
...

и

...
b_help = "<?php echo _BBCODE_BOLD;?>";
strong_help = "<?php echo _BBCODE_STRONG;?>";
...

Значение языковой константы необходимо прописать в \administrator\components\com_fireboard\language\russian.php.
Последний действием необходимо сдвинуть значения параметра функции bbstyle () на два вперед, так как мы поменяли количество элементов массива BB-тегов.

Если есть вопросы — вэлком в комментарии.

Комментариев: 3


Добавление комментария: