Помогите сделать bb код

Печать RSS
367

3
Автор
Оранжевые штаны
0
Всем привет.. Помогите пожалуйста сделать bb код на мотор такого типа [ball=30]текст[/ball]
если у пользователя меньше 30 баллов допустим, то чтобы он не мог видеть текст.. Что нужно для этого? заранее спасибо)

ツ ツ ツ
0
Как то так
$msg = preg_replace('#\[ball=([0-9]+)\](.*?)\[/ball\]#sie', "твоя_функция('$1', '$2')", $msg);
Создай функцию "твоя_функция" в которой проверяй выводить ли юзеру
Изменил: Lugaro (13.04.2010 / 20:41)

2000 лет д.н.э.
0
<?php
function hide_ball($text){
global $udata;
   if($udata[36]>=$text[1]){
return 'hide text: '.$text[2];
   }else{
return 'this text hidden';
   }
}
....
function bb_code($msg){
...
$msg = preg_replace_callback('|\[ball>([0-9]+)\](.*?)\[\/ball\]|i', hide_ball, $msg);
...
}
?>
[ball>50] hello! [/ball]
Изменил: ramzes (13.04.2010 / 20:50)
W

Землянин
0
3. ramzes,
может
$msg = preg_replace_callback('|\[ball>([0-9]+)\](.*?)\[\/ball\]|i','hide_ball', $msg);
?

Дух
0
4. WCO, Нет
W

Землянин
0
хм, почему ?
W

Землянин
0
будет же ошибка, необьявленная константа hide_ball
3
Автор
Оранжевые штаны
0
ramzes, почему-то при добавлении каждого сообщения теперь пишет: this text hidden

Дух
0
7. WCO, Ето не константа а функция.
Че неюзал preg_replace_callback
W

Землянин
0
TLENSi (Сегодня / 21:12)
7. WCO, Ето не константа а функция.
Че неюзал preg_replace_callback
$msg = preg_replace_callback('|\[ball>([0-9]+)\](.*?)\[\/ball\]|i',hide_ball, $msg);
hide_ball - нужно указать что это строка, обрамить ' или "
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск