Новые 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-тегов.

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

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

  • 23.01.2010 Виктория:

    Сделала первый вариант в форуме kunena 1.5.3 RE — работает, спасибо.

  • 24.08.2010 Дмитрий:

    Здраствуйте! очень олезная статья,сделал все работает!У меня есть к вам вопрос,а как можно добавить в FireBoard 1.0.4, кнопку spoiler? Напишите если не трудно мне на почту! Заранее спасибо

  • 25.08.2010 Кирилл:
  • 05.11.2012 nephalim:

    Статья просто золото, долго же я искал пока её нашёл. Но есть один нюанс — в новой 2.0.2 версии файла kunena.parser.php по тому же пути что и в старом не нашёл... Не изменился ли механизм, и если да, то как?


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

 css.php