Форумы xBB

Форумы xBB > BBCode и прочие языки упрощенной разметки

x[BB] - Дополнительные BBCODE может кому пригодится.

Автор: Nutty. Последнее редактирование: 2011-05-21 10:33:18

Делал для себя сильно не ругать мне 18 лет Very we! да Php начал изучать только не давно и возможно всё это можно реализовать куда проще но я же не на продажу делал а для себя Well может кому и пригодится.
 

Пак 1:
Содержит BBCODE
o->проводит черту над текстом
blink->тут и так понятно по названию
double->Двойное подчёркивание
dashed->Пунктирное подчёркивание
wavygreen->
wavyred->Зелёное и красное подчёркивание волнистой линей (требует 2 картинки) вот ссылки на них wavygreen img wavyred img
indent->позволяет делать отступы.
 
PHP

class bb_Extend extends bbcode {
    public $behaviour = 'span';
    function get_html($tree = null) {
        $style = '';
                switch ($this->tag) {
case 'o': $style = "line-height: 1.5; border-top: 1px solid black;"break;
case 'blink': $style = "line-height: 1.5; text-decoration: blink;"break;
case 'double': $style = "line-height: 1.5; border-bottom: 3px double;"break;
case 'dashed': $style = "line-height: 1.5; border-bottom: 1px dashed;"break;
case 'wavygreen': $style = "line-height: 1.5; background: url('{URL}/wave_green.gif') repeat-x 100% 100%; white-space: nowrap; padding-bottom: 2px;"break;
case 'wavyred': $style = "line-height: 1.5; background: url('{URL}/bbicons/wave_red.gif') repeat-x 100% 100%; white-space: nowrap; padding-bottom: 2px;"break;
case 'indent': $style = "padding-left:20px;display:inline;"break;
        }
        return '<span class="bb" style="'.$style.'">'.parent::get_html().'</span>';
    }
}
 

Далее translite ну в краце мини транслит BBCODE из Русского в Транслит из Транслита в Русский жаль есть баги например с вложениями других бб кодов в бб код транслитера но если не делать вложений вполне рабочий транслитер.
 
PHP

class bb_translite extends bbcode {
    public $behaviour = 'span';
    function get_html($tree = null) {
$rus = array("ё", "й", "ю", "ь", "ч", "щ", "ц", "у", "к", "е", "н", "г", "ш", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "с", "м", "и", "т", "б", "Ё", "Й", "Ю", "Ч", "Ь", "Щ", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "С", "М", "И", "Т", "Б");
$eng = array("yo", "iy", "yu", "'", "ch", "sh", "c", "u", "k", "e", "n", "g", "sh", "z", "h", "'", "f", "y", "v", "a", "p", "r", "o", "l", "d", "j", "е", "ya", "s", "m", "i", "t", "b", "Yo", "Iy", "Yu", "CH", "'", "SH", "C", "U", "K", "E", "N", "G", "SH", "Z", "H", "'", "F", "Y", "V", "A", "P", "R", "O", "L", "D", "J", "E", "YA", "S", "M", "I", "T", "B");
$translite = $this -> attrib['translite'] == 'ru' ? str_replace($eng, $rus,  parent::get_html()) : str_replace($rus, $eng,  parent::get_html());
        return '<span class="bb">'.$translite.'</span>';
    }
}
 

Ну и последнее bgcolor или цвет фона под текстом.
 
PHP

class bb_bgcolor extends bbcode {
    public $behaviour = 'span';
    function get_html($tree = null) {
        $color = htmlspecialchars($this -> attrib['bgcolor']);
        return '<span style="background-color:'.$color.'; display:inline;">'.parent::get_html($this -> tree)
            .'</span>';
    }
}
 

 
Отдельное спасибо автору за его чудо парсер bbcode Well

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

21.05.2011 10:12:29 #
Mozilla Firefox dima
Огромное Вам спасибо за теги! Очень приятно, когда люди не тупо заюзывают что есть, а творчески подходят к открытому коду и делятся с людьми своими наработками! Yes
21.05.2011 10:51:34 #
Mozilla Firefox dima
Добавил ссылку на эту страницу в основную ленту публикаций на xBB.uz.

Ответить:

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

Просьба не постить мусор. Пользуйтесь кнопкой предварительного просмотра на панели инструментов редактора.

Введите логин: и пароль: (

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