Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как организовать BB - коды.

6.0K
08 октября 2006 года
merlex
78 / / 25.02.2006
Хочется сделать для сайта ББ коды, причем чтобы админ мог выбрать какие именно BB теги и их параметры доступны юзеру, какие модеру, а какие админу.
Мож кто подскажет, как это сделать. А еще лучше выложит скрипт. Буду очень благодарен. Если есть варианты с менее обширными вожможностями, пойдут и они.
СПАСИБА!
244
08 октября 2006 года
UAS
2.0K / / 19.07.2006
[QUOTE=merlex]Мож кто подскажет, как это сделать. А еще лучше выложит скрипт.[/QUOTE]
Читай подпись shaelf, писать скрипт никто не будет по доброте душевной...:p

Как-как... Пиши регулярные выражения для обработки ББ-кодов!А чтобы для каждого были определённые коды - храни в БД (или где-нить) какие ББ коды доступны юзеру, админу и т.д., а потом при посещении, юзером например, делай выборку доступных BB-кодов и формируй форму ввода сообщения(или чего там)....
1.9K
08 октября 2006 года
eliteMOBILE
89 / / 27.01.2005
Итак, предлагаю тебе сделать нечто такое. Организуешь массивы для админа, для модератора и для всех остальных.
Вот пример:
 
Код:
$smiles['admin'][':)'] = 'ulibka.gif';
$smiles['admin'][';)'] = 'hello.gif';
$smiles['admin'][':('] = 'image3.gif';

$smiles['moderator'][':)'] = 'ulibka.gif';
$smiles['moderator'][';)'] = 'hello.gif';
$smiles['moderator']['<:)'] = 'image18.gif';

$smiles['guest'][':)'] = 'ulibka.gif';
$smiles['guest'][';)'] = 'hello.gif';


Теперь неавторизированный пользователь будет иметь имя guest, а авторизированным будет только admin или moderator. Реализуем это так:
 
Код:
$access = 'moderator';


Далее поступаем так:
 
Код:
foreach($smiles[$access] as $motion=>$image)
  echo "$motion соответствует картинка $image\n";


Если вы сами для себя програмируете, то могу вам предложить работать со мной, у меня есть популярный сайт куда много чего можно написать интерестного.
15
08 октября 2006 года
shaelf
2.7K / / 04.05.2005
>>Если вы сами для себя програмируете, то могу вам предложить работать со мной, у меня есть популярный сайт куда много чего можно написать интерестного.
Это не про site.art-web.biz случайно?)
244
09 октября 2006 года
UAS
2.0K / / 19.07.2006
eliteMOBILE.net - переписал мой пост!!! :\ А твой пост скорее просто реклама...
6.0K
15 октября 2006 года
merlex
78 / / 25.02.2006
В посте eliteMOBILE.net, чей бы он там ни был идея хороша но....

Сам принцип то мне понятен, нужен (был) конкретный код. Но всеравно спасибо за советы. Я структурно сделал так.

Есть переменная с текстом $text. Есть несколько функций.
bb2html(); - преобразует ББтеги в переменной в хтмл-теги.
Как она это делает.

Код:
function bb2html($source)
{
preg_match_all("'\[(.*)\]'U",$source,$arx);//выбираем из пер-ной все ББ теги
$safe_tags=delScr($tags[0]);//удаляем возможный скрипт

$source=str_replace($tags[0],$safe_tags[$i],$source);//зам-ем в исходной пер-ной сарые теги новыми - без скриптов

$source=toSafeText($source);//еще раз обезопасимся :)
$find = array(
                   "'\x20{3,}'",
          "'\[b\](.*?)\[/b\]'i",
                    "'\[i\](.*?)\[/i\]'i",
                    "'\[u\](.*?)\[/u\]'i",
                    "'\[url\](.*?)\[/url\]'i",
                    "'\[url=(.*?)\](.*?)\[/url\]'i",
                     );
        $replace = array(
                    "<img class='tabs' />",
           "<b>\\1</b>",
                    "<i>\\1</i>",
                    "<u>\\1</u>",
                    "<a href=\"\\1\">\\1</a>",
                    "<a href=\"\\1\">\\2</a>",
                     );

$source = preg_replace($find,$replace,$source);

return $source;
};

function delScr($str)
{
$inv_sum = array(
"'^\s'",
"'$\s'",
"'[();\'\"]'i",
"'(javascript|vbscript):.*[^\]>]'i"
);

$val_sum = array(
'_',
'',
'_',
"java script:WarMes()",
);

if (is_array($str))
{
for ($i=0;$i<count($str);$i++){
$str[$i]=preg_replace($inv_sum,$val_sum,$str[$i]);
}
}
else
{
$str=preg_replace($inv_sum,$val_sum,$str);
}
return $str;
}


В данном варианте не происходит замены в теге {url}{/url}, но это поправимо.
WarMes(); - функция на яваскрипт, которая сообщает о замене.
toSafeText(); - ф-я на PHP удаляющая кавычки и пр символы.
15
15 октября 2006 года
shaelf
2.7K / / 04.05.2005
2merlex а если б ты воспользовался поиском по форуму, то ивидел бы кучу ссылок на различные классы для работы с BBcode, т.к. эта тема обсасывается тут постоянно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог