xBB v. 0.24 - PHP-библиотека для работы с BBCode. Часть 2. Список тегов
Список тегов
[*]
- элемент списка. Аналог HTML-ного <li>. Может содержаться только в теге[list]
. Автоматически закрывается, если начинается очередной[*]
или если закрывается[list]
. При конвертации переводится в <li class="bb">. Может использоваться в форме[*=целое_число]
, что эквивалентно <li class="bb" value="целое_число">. Целое число здесь - номер (возможно, переведенный в букву) текущего элемента списка. Смотрите примеры в описании[list]
.[a]
- ссылка. Аналог HTML-ного <a>. Поддерживаются атрибуты title, id (для создания якорей), name (фактически - синоним для id), href и target, аналогичные HTML-ным. Кроме того, поддерживаются атрибуты url (синоним для href) и anchor (синоним для id). Тег[a]
может быть использован в следующих формах:
Код Пример Результат [a]адрес_ссылки[/a]
[a target=_blank]www.pc.uz[/a]
www.pc.uz [a=адрес_ссылки]текст ссылки[/a]
[a=forum.pc.uz title="Хороший форум"]Форум PC.UZ[/a]
Форум PC.UZ [a href=адрес_ссылки]текст ссылки[/a]
[a href=service.pc.uz]Сервис-центр[/a]
Сервис-центр [a url=адрес_ссылки]текст ссылки[/a]
[a url=restoran.uz]Рестораны Ташкента[/a]
Рестораны Ташкента
Если адрес ссылки не начинается с одной из следующих строк - 'http://', 'https://', 'ftp://', 'file://', '#', '/', '?', './', '../' или 'mailto:', то слева к нему автоматом допишется 'http://'.
Код[a id=this /]
,[a name=this /]
или[a anchor=this /]
создаст якорь в документе. Если имя якоря не начинается с латинской буквы (как того требует W3C), к нему в начало будет дописано 'bb'.[abbr]
- аббревиатура. Эквивалент HTML-ного <abbr class="bb">. Может использоваться в форме[abbr="расшифровка аббревиатуры"]
, что эквивалентно <abbr class="bb" title="расшифровка аббревиатуры">.
Пример:[abbr="PHP: Hypertext Preprocessor"]PHP[/abbr]
. Результат: PHP.[acronym]
- акроним. Эквивалент HTML-ного <acronym class="bb">. Может использоваться в форме[acronym="расшифровка акронима"]
, что эквивалентно <acronym class="bb" title="расшифровка акронима">.
Пример:[acronym="Хранимая процедура"]хранимка[/acronym]
. Результат: хранимка.[address]
- контактная информация. Эквивалент HTML-ного <address class="bb">.
Пример:[address]Узбекистан, г. Ташкент[/address]
. Результат:
Узбекистан, г. Ташкент[align]
- выравниване текста по левому ([align=left]
), правому ([align=right]
) краю, по центру ([align=center]
) или по ширине ([align=justify]
). При конвертации переводится в <div class="bb" align="...">.
Пример:[align=right]Текст, выровненный по правому краю.[/align]
. Результат:
Текст, выровненный по правому краю.[anchor]
- якорь в документе. Может использоваться в следующих формах:
Код Эквивалент в HTML [anchor]имя[/anchor]
<a id="имя"></a> [anchor=имя /]
<a id="имя"></a> [anchor=имя]текст[/anchor]
<a id="имя">текст</a>
Если имя якоря не начинается с латинской буквы (как того требует W3C), к нему в начало будет дописано 'bb'.[b]
- жирный шрифт. Эквивалент HTML-ного <strong>.
Пример: "[b]текст[/b]
". Результат: "текст".[bbcode]
- тег для подсветки ББКода. Внутри[bbcode]
теги BBCode, смайлики, и "автоматические ссылки" не транслируются в HTML, а посвечиваются. Пример:[bbcode]
В содержимом тега [bbcode] можно использовать мнемонизацию спецсимволов, чтобы исключить неоднозначную трактовку вложенности тегов. Например, неоднозначность "[bbcode] [/bbcode] [/bbcode]" можно исключить, написав "[bbcode] @l;/bbcode@r; [/bbcode]". Если же вам надо вывести собственно мнемонику какого-то спецсимвола, то она сама должна быть мнемонизирована. То есть, чтобы вывести '@l;', нужно набрать '@at;l;'.[/bbcode]
Результат:В содержимом тега [bbcode] можно использовать мнемонизацию спецсимволов, чтобы исключить неоднозначную трактовку вложенности тегов. Например, неоднозначность "[bbcode] [/bbcode] [/bbcode]" можно исключить, написав "[bbcode] @l;/bbcode@r; [/bbcode]". Если же вам надо вывести собственно мнемонику какого-то спецсимвола, то она сама должна быть мнемонизирована. То есть, чтобы вывести '@l;', нужно набрать '@at;l;'.
[caption]
- заголовок таблицы. Эквивалент HTML-ного <caption class="bb">. Может содержаться только в теге[table]
. Смотрите пример в описании[table]
.[center]
- сокращение для[align=center]
.
Пример:[center]Текст, выровненный по центру[/center]
.
Результат:
Текст, выровненный по центру[code]
- тег для программных кодов, кодов разметки и т.п. Эквивалент HTML-ного <code class="bb">. Внутри[code]
игнорируются ББ-теги и смайлики, не работают "автоматические ссылки". Пример:
[code]
// Класс для тега @l;code@r;
class bb_code extends bbcode {
var $ends = array();
var $children = array();
function get_html() {
$str = '<code class="bb">';
foreach ($this -> tree as $item) {
if ('item' == $item['type']) { continue; }
$str .= htmlspecialchars($item['str']);
}
$str .= '</code>';
return str_replace(' ', ' ', nl2br($str));
}
}[/code]
Результат:
// Класс для тега [code]
class bb_code extends bbcode {
var $ends = array();
var $children = array();
function get_html() {
$str = '<code class="bb">';
foreach ($this -> tree as $item) {
if ('item' == $item['type']) { continue; }
$str .= htmlspecialchars($item['str']);
}
$str .= '</code>';
return str_replace(' ', ' ', nl2br($str));
}
}[color]
- тег для цветового выделения текста. При конвертации переводится в <font color="...">.
Пример: "[color=red]текст[/color]
". Результат: "текст".[email]
- тег для создания гиперссылки e-mail. При конвертации переводится в <a class="bb_email" href="mailto:...">...</a>. Поддерживает также атрибуты title, name и target, аналогичные соответствующим в HTML. Примеры:
Код Результат [email]dima@pc.uz[/email]
dima@pc.uz [email=dima@pc.uz title="Мой ящик"]Мой ящик[/email]
Мой ящик [font]
- указать шрифт. Аналог HTML-ного <font>. Поддерживает также атрибуты color и size. Примеры:
Код Результат [font=Arial]текст[/font]
текст [font=Verdana color=red size=+2]текст[/font]
текст [google]
- тег для создания ссылки на Google. При конвертации переводится в <a class="bb_google" href="http://www.google.com/search?q=Запрос">. Поддерживает также атрибуты title, name и target.
Пример: "[google=BBCode target=_blank]Спроси Гугл про ББКод[/google]
". Результат: "Спроси Гугл про ББКод".[h1]
- аналог HTML-ного <h1>. При конвертации переводится в <h1 class="bb">. Поддерживает атрибут align.
Пример:[h1 align=center]Заголовок 1[/h1]
. Результат:Заголовок 1
[h2]
- аналог HTML-ного <h2>. При конвертации переводится в <h2 class="bb">. Поддерживает атрибут align.
Пример:[h2 align=center]Заголовок 2[/h2]
. Результат:Заголовок 2
[h3]
- аналог HTML-ного <h3>. При конвертации переводится в <h3 class="bb">. Поддерживает атрибут align.
Пример:[h3 align=center]Заголовок 3[/h3]
. Результат:Заголовок 3
[hr]
- аналог HTML-ного <hr>. При конвертации переводится в <hr class="bb" />. Пример:[hr]
. Результат:[i]
- аналог HTML-ного <i>. Пример: "[i]текст[/i]
". Результат: "текст".[img]
- аналог HTML-ного <img>. Поддерживает атрибуты width, height и border. Примеры:
Код Результат [img]http://www.pc.uz/files/images/pcuz_1.gif[/img]
[img width=116 height=22]http://www.pc.uz/files/images/pcuz_1.gif[/img]
[justify]
- сокращение для[align=justify]
.
Пример:[justify]Выровнять текст по ширине (как в этом абзаце) можно с помощью тега @l;align=justify@r; или с помощью тега @l;justify@r;. Этот тег эквивалентен [b]<div class="bb" align="justify">[/b] в HTML. Помимо выравнивания по ширине возможно также выравнивание по левому краю (тег @l;left@r; или @l;align=left@r;), по правому краю (тег @l;right@r; или @l;align=right@r;) и по центру (тег @l;center@r; или @l;align=center@r;).[/justify]
.
Результат:
Выровнять текст по ширине (как в этом абзаце) можно с помощью тега[align=justify]
или с помощью тега[justify]
. Этот тег эквивалентен <div class="bb" align="justify"> в HTML. Помимо выравнивания по ширине возможно также выравнивание по левому краю (тег[left]
или[align=left]
), по правому краю (тег[right]
или[align=right]
) и по центру (тег[center]
или[align=center]
).[left]
- сокращение для[align=left]
. Пример:[left]Текст, выровненный по левому краю.[/left]
.
Результат:
Текст, выровненный по левому краю.[list]
- тег для создания списка. Аналог HTML-ных <ul> и <ol>. При конвертации переводится в <ul class="bb"> или в <ol class="bb" type="...">. Единственный вложенный тег -[*]
, который в свою очередь может иметь вложенные теги. Примеры:
Код Результат Код Результат Код Результат [list]
[*]Раз
[*]Два
[*]Три
[/list]- Раз
- Два
- Три
[list=1]
[*]Раз
[*=3]Два
[*]Три
[/list]- Раз
- Два
- Три
[list=a]
[*=5]Раз
[*]Два
[*]Три
[/list]- Раз
- Два
- Три
[nobb]
- тег, внутри которого не происходит конвертации ББКода в HTML, не работают "автоматические ссылки" и не вставляются смайлы.
Пример: "[nobb][b]ББКод[/b] со смайлом :)[/nobb]
". Результат: "[b]ББКод[/b] со смайлом :)".
Должен предупредить, что неоднозначность во вложенности тегов может привести к неожидавшимся результатам.
Например, код
будет интерпретирован скриптом так:[nobb]
текст1 [/nobb] текст2[/nobb]
Код[nobb] текст1 [/nobb]
текст2 [/nobb]
будет интерпретирован скриптом так:[b] текст1 [nobb]
текст2 [/b] текст3[/nobb] текст4 [/b]
Чтобы такого избежать, пользуйтесь мнемониками спецсимволов.[b] текст1 [nobb] текст2 [/nobb][/b]
текст3 [/nobb] текст4 [/b][php]
- тег, подсвечивающий код PHP. При конвертации посвеченный код вставляется в <div class="php">.
Пример:
[php]<?php
// Класс для тега @l;php@r;
class bb_php extends bbcode {
var $ends = array();
var $children = array();
function get_html() {
$str = '';
foreach ($this -> tree as $item) {
if ('text' == $item['type']) { $str .= $item['str']; }
}
if (false !== strpos($str, '<?')) {
$str = highlight_string($str, true);
} else {
$str = '<?php '.$str.' ?>';
$str = highlight_string($str, true);
$str = str_replace('<?php ', '', $str);
$str = str_replace('<?php ', '', $str);
$str = str_replace('>?><', '><', $str);
}
$str = preg_replace("'<span [^>]*></span>'si", '', $str);
return '<div class="php">'.$str.'</div>';
}
}
?>[/php]
<?php
// Класс для тега [php]
class bb_php extends bbcode {
var $ends = array();
var $children = array();
function get_html() {
$str = '';
foreach ($this -> tree as $item) {
if ('text' == $item['type']) { $str .= $item['str']; }
}
if (false !== strpos($str, '<?')) {
$str = highlight_string($str, true);
} else {
$str = '<?php '.$str.' ?>';
$str = highlight_string($str, true);
$str = str_replace('<?php ', '', $str);
$str = str_replace('<?php ', '', $str);
$str = str_replace('>?><', '><', $str);
}
$str = preg_replace("'<span [^>]*></span>'si", '', $str);
return '<div class="php">'.$str.'</div>';
}
}
?>[quote]
- Цитата. При конвертации конструкция[quote=Автор]текст[/quote]
переводится в
<div class="bb_quote_author">Автор</div><div class="bb_quote">текст</div>
Вот так это выглядит:
текст
Автора указывать необязательно.
Визуальное оформление цитат следует делать с помощью CSS. Вот пример такого оформления:
div.bb_quote_author {
margin: 10px 5px 0px 5px;
padding: 4px;
border-width: 1px 1px 0px 1px;
border-style: solid;
border-color: #a9b8c2;
color: #333333;
background-color: #a9b8c2;
font-size: 0.85em;
font-weight: bold;
}
div.bb_quote_author:after {
content: " писал(а):";
}
div.bb_quote {
margin: 0px 5px 10px 5px;
padding: 5px;
border-color: #a9b8c2;
border-width: 0px 1px 1px 1px;
border-style: solid;
font-family: "Lucida Grande", "Trebuchet MS", Helvetica, Arial, sans-serif;
background-color: #fafafa;
color: #4b5c77;
}[right]
- сокращение для[align=right]
. Пример:[right]Текст, выровненный по правому краю.[/right]
.
Результат:
Текст, выровненный по правому краю.[s]
- зачеркнутый текст. Аналог HTML-ного <del>. Пример: "[s]текст[/s]
". Результат: "текст".[size]
- тег для изменения размера шрифта. При конвертации переводится в <font size="...">. Пример: "[size=6]текст[/size]
". Результат: "текст".[strike]
- синоним для[s]
. Пример: "[strike]текст[/strike]
". Результат: "текст".[sub]
- нижний индекс. Аналог HTML-ного <sub>. Пример: "[sub]текст[/sub]
". Результат: "текст".[sup]
- верхний индекс. Аналог HTML-ного <sup>. Пример: "[sup]текст[/sup]
". Результат: "текст".[table]
- таблица. Аналог HTML-ного <table>. При конвертации переводится в <table class="bb">. Поддерживаются атрибуты border, width, cellspacing, cellpadding и align, аналогичные
33 просмотра
Статистика просмотров страницы:
- за текущий месяц (Апрель 2024) - 3;
- за прошлый месяц (Март 2024) - 6;
- за последние 3 месяца (Январь 2024 - Март 2024) - 10;
- за последний год (Апрель 2023 - Март 2024) - 13;
Статьи и обзоры Все статьи
Будущее маркетинговых исследований в контексте быстро развивающихся технологий.
Как тайные покупатели помогают компаниям оценить качество обслуживания, выявить проблемные ...
GT & Industrial Systems, LP, действующая в Узбекистане через зарегистрированное ...
В начале 2000-х мир киберспорта переживал свою золотую эпоху, а ...