Форумы xBB | |||||||
Форумы xBB > BBCode и прочие языки упрощенной разметки x[BB] - Дополнительные BBCODE может кому пригодится.Автор: Nutty. Последнее редактирование: 2011-05-21 10:33:18 Делал для себя сильно не ругать мне 18 лет да Php начал изучать только не давно и возможно всё это можно реализовать куда проще но я же не на продажу делал а для себя может кому и пригодится.
Пак 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
2 комментария
Огромное Вам спасибо за теги! Очень приятно, когда люди не тупо заюзывают что есть, а творчески подходят к открытому коду и делятся с людьми своими наработками! |
| 21.05.2011 10:51:34 | # |
© 2007-2012, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.