Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

API

Как создать тег

Чтобы добавить еще один или несколько тегов, нужно, во-первых, написать дочерний класс к классу bbcode, реализующий специфику этих тегов, и, во-вторых, добавить имена ваших тегов и соответствющего им класса в массив tags.

В примерах ниже будет продемонстрировано практически все, что может вам понадобиться при описании нового тега(ов). В этих примерах предполагается PHP5. Чтобы они работали в PHP4, нужно все объявления public и private заменить на var.

Класс для тега [hr]

class Xbb_Tags_Hr extends bbcode
{
    // Флаг, является ли тег всегда закрытым. В данном случае "да".
    public $is_close = true;
    // Число разрывов строк, которые должны быть проигнорированы после тега
    public $rbr = 1;
    // Указываем "модель поведения" таегов. 'hr' означает, что тег может
    // содержаться только в элементах блочного типа и не может содержать каких
    // либо дочерних элементов
    public $behaviour = 'hr';
    // Конструктор класса ничего не делает
    function Xbb_Tags_Hr()
    {
    }
    // Описываем конвертацию в HTML.
    // Строчка '$tree = null' нужна для нормальной работы в режиме E_STRICT.
    function get_html($tree = null)
    {
        return '<hr class="bb" />';
    }
}
 
Биржа долевых инвестиций SIMEX.

Публикация сокращена для удобства обсуждения.
Полная версия: API: Как создать тег

Метки материала: BBCode, xBB, HTML, тег, PHP, API, класс


33 комментария

16.03.2012 19:43:52 #
Mozilla Firefox dima
Самое простое решение:
 
Пользователь набирает текст BBCode. Этот текст, скорее всего, сохраняется в базу, и есть скрипт (не имеющий отношение к парсеру), который это делает. Пусть этот скрипт обычной регуляркой с колбаком перед сохранением находит и заменяет все подстроки вида "[nick](id|login)[/nick]".
23.11.2012 23:18:32 #
Safari Гость ЛGraffiti
Поцы подорити плиз тегу
13.09.2018 12:59:35 #
Google Chrome Гость zxd

тадишка

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2018, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.