Форумы xBB

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

FAQ по парсеру BBCode. Ненужные функции, использование парсера и редактора

Автор: dima. Последнее редактирование: 2010-12-21 10:39:10

Продолжение FAQ по библиотеке xBB v0.29, начатого здесь: FAQ по парсеру BBCode. Справка и файлы
 
Вопрос. Нет полной информации  как можно полностью избавиться(подчистить даже в ручную) от ненужных функций.
 
Ответ. Не совсем понятно, какие именно функции являются ненужными. Поэтому, если какие-то функции ниже не указаны, то жду по ним отдельного вопроса. Ниже постараюсь перечислить функции, от которых можно избавиться:
 
Как избавиться от ненужных тегов?
 
Откройте файл bbcode/config/tags.php и закомментируйте строчки с ненужными тегами.
 
Как избавиться от автоматических ссылок?
 
Способ первый. В свой PHP-код вставьте строчку
 
PHP
$bb->autolinks = false;

Способ второй. Откройте файл bbcode/config/parser.config.php и измените строчку
 
PHP
$this->autolinks = true;

на
 
PHP
$this->autolinks = false;

Как избавиться от редактора BBCode?
 
Просто не используйте его. Можете работать с любым другим.
 
Как избавиться от лишних кнопок редактора?
 
Откройте файл bbcode/xbb.php и найдите в нем ряд строк, аналогичных следующим:
 
HTML
...
<td><a href="#" onclick="xbb_insertSimpleTags('s');return false;"
 class="toolbarButton">
<img alt="[s]" src="./images/buttons/s.gif"
 id="img_s" />
</a></td>
...

Удалите лишние.
 
Как избавиться от кнопки подсветки синтаксиса в редакторе BBCode?
 
Откройте файл bbcode/xbb.php и найдите в нем следующий код:
 
HTML
<tr><td align="right">
<script type="text/javascript">
var xbb_iframe = document.getElementById(bb.iframeId);
var xbb_textarea = document.getElementById(bb.textareaId);
var height = (xbb_height - 66) + 'px';
if ('highlight' == bb.state) {
    xbb_textarea.style.display = 'none';
    xbb_iframe.style.height = height;
} else {
    xbb_iframe.style.height = '1px';
    xbb_textarea.style.height = height;
}
xbb_text2CurrentText();
if ('highlight' != bb.state) {
    xbb_textarea.value = bb.text;
}
</script>
<table border="0" cellpadding="0" cellspacing="0"
onclick="xbb_changeState()" style="background-image:url(./images/background.gif)">

<tr><td><img src="./images/left.gif" alt="" /></td>
<td align="center" width="150">
<a href="#" class="button" id="changeState">&nbsp;<?php
if ('highlight' == $state) {
    echo $xbb_lang['changestate_highlight'];
} else {
    echo $xbb_lang['changestate_plane'];
}
?>
&nbsp;</a></td>
<td><img src="./images/right.gif" alt="" /></td>
</tr>
</table>
 
</td></tr></table>

и замените его на следующий:
 
HTML
</table>
<script type="text/javascript">
var xbb_iframe = document.getElementById(bb.iframeId);
var xbb_textarea = document.getElementById(bb.textareaId);
var height = (xbb_height - 38) + 'px';
xbb_iframe.style.height = '1px';
xbb_textarea.style.height = height;
xbb_text2CurrentText();
xbb_textarea.value = bb.text;
</script>

Готово.
 
Вопрос. Ваша библиотека подразумевает по Вашим утверждениям, как обрабатывать введенный текст из своей формы, так и использовать ваш редактор)))) Но нет опять же подробной инструкции, как организовать оба случая, и что нужно для обоих случаев, ведь для использования просто обработчика все файлы не нужны я так понимаю???
 
Как использовать парсер (обработка текста BBCode): http://xbb.uz/docs/start.bb
Более подробно (API): инициализация объекта bbcode, свойства класса bbcode, методы класса bbcode, как создать тег.
 
Как использовать редактор: http://xbb.uz/docs/start-editor.bb
 
Вопрос. Непонятна суть, как прикрутить изначально ваш редактор к своей странице(
 
Суть в том, что подгружается JS-скрипт bbcode/xbb.js.php и создается объект редактора. Ему сопоставляется <textarea> с каким-то значением атрибута "id". Дальше JS-скрипт делает эту <textarea> скрытой и создает на ее месте <iframe>, в который подгружает собственно редактор, а затем копирует в рабочую область редактора содержимое скрытой <textarea>.
 
При сабмите содержимое рабочей области редактора копируется обратно в скрытую <textarea> и передается на сервер вместе с другими данными формы. Чтобы это стало возможным, JS-скрипт сажает свой обработчик на событие "onsubmit" формы, в которой содержится <textarea>.
 
Все эти действия проделываются автоматически и не требуют вмешательства вебмастера, если только он не хочет изменить логику описанного процесса. Конкретный код установки редактора можно найти по одной из указанных выше ссылок.
 
Продолжение следует.

10 комментариев

25.10.2011 15:16:09 #
Internet Explorer Гость Nekto256
Здравствуйте!
 
Подскажите, можно ли на нажатие кнопки "превью" назначить вызов какой либо другой страницы вместо установленной по умолчанию preview.php? Если возможно, так как это осуществить в коде?
25.10.2011 16:35:05 #
Mozilla Firefox dima
В файле xbb.php найдите найдите стоку
 
HTML
<form name="xbb" action="preview.php" target="_blank" method="post">

и перепишите аргумент action.
29.11.2011 16:20:34 #
Google Chrome Гость Alex
Здравствуйте!
 
Недавно озадачился необходимостью отключать и включать функцию смайлов, есть ли встроенное свойство/метод для этих целей, если нет можно ли это делать вручную? Заранее спасибо!
29.11.2011 19:11:11 #
Mozilla Firefox dima
Для этого существует свойство mnemonics. Его использование описано на странице документации Быстрый старт.
29.11.2011 22:46:51 #
Opera Гость Alex
dima
Для этого существует свойство mnemonics. Его использование описано на странице документации Быстрый старт.
Возможно мне пора лечиться от косоглазия Well, но там я увидел только способ задать свой набор смайлов, а вот как отключить их поностью так до конца и не понял. Возможно просто задать свойству пустой массив?
PHP

$smiles = array();//инициализирую пустой массив
/*------------*/
$bb -> mnemonics = $smiles;//присваиваю этот массив свойству mnemonics
 
Если ошибаюсь, пожалуйста, поправте меня.
30.11.2011 10:50:28 #
Mozilla Firefox dima
Вы совершенно правы. Пустой массив смайлов равнозначен их отсутствию Well
21.12.2011 00:24:38 #
Mozilla Firefox Гость Nekon
перестал работать собственный джаваскрипт на текстареа, что делать?Pancake
21.12.2011 00:44:15 #
Mozilla Firefox dima
Ответил Вам в вашем предыдущем комментарии
11.01.2012 00:46:41 #
Google Chrome Гость Анатолий
Как оставить кнопку код, а остальные с++, пхп и т.д. убрать?
11.01.2012 05:01:40 #
Mozilla Firefox dima
Откройте на редактирование файл bbcode/xbb.php. Найдите в нем строки
HTML
<td><a href="#" onclick="xbb_codeList();return false;"
 class="toolbarButton">
<img alt="[code]" src="./images/buttons/code.gif"
 id="img_code" />
</a></td>
 
<td><a href="#" onclick="xbb_codeList();return false;"
 class="buttonMenu">
<img src="./images/button_menu.gif" alt="" /></a></td>

И замените их на следующие:
HTML
<td><a href="#" onclick="xbb_insertSimpleTags('code');return false;"
 class="toolbarButton">
<img alt="[code]" src="./images/buttons/code.gif"
 id="img_code" />
</a></td>

Не проверял, но должно сработать.

Ответить:

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

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

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

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