Форумы xBB

Форумы xBB > BBCode и прочие языки упрощенной разметки > Всякие фичи к библиотеке xBB для работы с BBCode

Теги из раздела Text Decoration

Автор: Nutty. Последнее редактирование: 2011-11-16 14:06:17

Эти теги уже давно выкладовал но так как мне они нужны были в форме более ужатой я их переделал и добавил парочку других тегов тегов.
Визуально всё выглядит так.

Для полноценной работы вам потребуется не которая графика.
Не обходимая графика.
http://imgs.su/tmp/1321433753-590.jpg -> animarrow
http://imgs.su/tmp/1321433802-590.jpg -> arrow
http://imgs.su/tmp/1321433826-590.jpg -> diagonal
http://imgs.su/tmp/1321433858-590.jpg -> pointindashed
http://imgs.su/tmp/1321433887-590.jpg -> underline
http://imgs.su/tmp/1321433918-590.jpg -> wavygreen
http://imgs.su/tmp/1321433918-590.jpg -> wavyred
Стиль: также в нём не забудте подправить url адреса.
CSS

span#bb_text_decoration{
        line-height: 1.5;
}
.bb_text_overline{
        text-decoration: overline;
}
.bb_text_double{
        border-bottom: 3px double;
}
.bb_text_dashed{
        border-bottom: 1px dashed;
}
.bb_text_dotted{
        border-bottom: 1px dotted;
}
.bb_text_blink{
        text-decoration: blink;
}
.bb_text_wavyred{
        background: url('wavyred.gif') repeat-x 100% 100%;
        white-space: nowrap;
        padding-bottom: 1px;
}
.bb_text_wavygreen{
        background: url('wavygreen.gif') repeat-x 100% 100%;
        white-space: nowrap;
        padding-bottom: 1px;
}
.bb_text_modernunderline{
        background: url('underline.gif') repeat-x 100% 100%;
        white-space: nowrap;
        padding-bottom: 1px;
}
.bb_text_diagonal{
        background: url('diagonal.gif') repeat-x 100% 100%;
        white-space: nowrap;
        padding-bottom: 1px;
}
.bb_text_arrow{
        background: url('arrow.gif') repeat-x 100% 100%;
        white-space: nowrap;
        padding-bottom: 1px;
}
.bb_text_animarrow{
        background: url('animarrow.gif') repeat-x 100% 100%;
        white-space: nowrap;
        padding-bottom: 1px;
}
.bb_text_pointindashed{
        background: url('pointindashed.gif') repeat-x 100% 100%;
        white-space: nowrap;
        padding-bottom: 1px;
}
.bb_text_indent{
        display:inline;
        padding-left:20px;
}
 
Сам класс обработчик.
Внимание!!! для тех кто не использовал прошлые теги сотрите алиасы старых тегов они просто вам не кчему)
PHP

 
<?
class Xbb_Tags_TextDecoration extends bbcode{
     public $behaviour = 'span';
     function get_html($tree = null){
                $class = false;
                //Алиасы старой версии тегов для тех кто уже использовал прошлую версию, кто не использовал то лучше стереть.
                switch ($this->tag) {
                        case 'o':                     $class = 'bb_text_overline';      break;
                        case 'blink':      $class = 'bb_text_blink';    break;
                        case 'double':    $class = 'bb_text_double';                break;
                        case 'dashed':    $class = 'bb_text_dashed';                break;
                        case 'wavygreen':       $class = 'bb_text_wavygreen'break;
                        case 'wavyred':         $class = 'bb_text_wavyred';          break;
                        case 'indent':    $class = 'bb_text_indent';                break;
        }
                //END Алиасов
                if (isset($this -> attrib['decor'])) {
            $attr = $this -> attrib['decor'];
                        //Условие на крайний случай в друг кто то захочет вписать какуе то фигню и сделает XSS отаку) в случае не удачи HTML тег будет опущен а содержание тега decor будет отображено как текст.
                        if($attr === 'overline'   OR
                           $attr === 'blink'            OR
                           $attr === 'double'         OR
                           $attr === 'dashed'         OR
                           $attr === 'dotted'         OR
                           $attr === 'wavyred'      OR
                           $attr === 'wavygreen'                OR
                           $attr === 'modernunderline'  OR
                           $attr === 'diagonal'   OR
                           $attr === 'arrow'            OR
                           $attr === 'animarrow'                OR
                           $attr === 'pointindashed'    OR
                           $attr === 'indent'){
                                $class = 'bb_text_'.$attr;
                        }
        }
                return ($class ? '<span id="bb_text_decoration" class="'.$class.'">'.parent::get_html().'</span>' : parent::get_html());
        }
}
 
А в конфиг parser.config.php в массив $this->tags дописать строчку
PHP

        'decor'  => 'Xbb_Tags_TextDecoration',
 
Для тех у кого была старая версия просто удалите старый класс обработчик и измените обработчик на Xbb_Tags_TextDecoration.
Забыл сказать что тег [decor] понимает стиль декора как его параметр.
случае не установки параметра или ошибочном параметре тег [decor] будет опущен а его содержимое просто отображено.
тег работает так)
[decor=arrow]Декорирующий текст[/decor]
так же использовать его остальные стили.

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

16.11.2011 14:15:10 #
Opera Nutty
Дополнение тег [q] но с стилями.
Стили

сам Css стиль данного тега.
CSS

.bb_text_quotes_double{
        quotes: """ """;
}
.bb_text_quotes_apostrophe{
        quotes: "'" "'";
}
.bb_text_quotes_doubleangular{
        quotes: "«" "»";
}
.bb_text_quotes_single{
        quotes: "‘" "’";
}
.bb_text_quotes_russian{
        quotes: "„" "“";
}
.bb_text_quotes_english{
        quotes: "“" "”";
}
span#bb_text_quotes{
        quotes: """ """;
}
span#bb_text_quotes:before{
        content: open-quote;
}
span#bb_text_quotes:after{
        content: close-quote;
}
 
Класс обработчик
PHP

<?
// Класс для тега [Quotes]
class Xbb_Tags_Quotes extends bbcode {
    public $behaviour = 'span';
    function get_html($tree = null) {
                $class= false;
                if (isset($this -> attrib['q'])) {
            $attr = $this -> attrib['q'];
                        //Условие на крайний случай в друг кто то захочет вписать какуе то фигню и сделает XSS отаку) в случае не удачи HTML тег будет опущен а содержание тега decor будет отображено как текст.
                        if($attr == 'double' OR $attr == 'apostrophe' OR $attr == 'doubleangular' OR $attr == 'single' OR $attr == 'russian' OR $attr == 'english'){
                                $class = 'bb_text_quotes_'.$attr;
                        }
        }
                return '<span id="bb_text_quotes"'.($class ? ' class="'.$class.'"' : "").'>'.parent::get_html().'</span>';
    }
}
 
В конфиг parser.config.php в массив $this->tags дописать строчку
PHP

        'q'               => 'Xbb_Tags_Quotes'
 
16.11.2011 14:36:51 #
Mozilla Firefox dima
Nutty, рад что ты не забываешь xBB Well И спасибо за новые фичи.

Ответить:

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

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

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

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