Ну так тем более, сделайте 30 групп. ИМХОforfreedom писал(а):У нас на конференции звания не зависят от количества сообщений.
И используйте
ghide=...Ну так тем более, сделайте 30 групп. ИМХОforfreedom писал(а):У нас на конференции звания не зависят от количества сообщений.
ghide=...Код: Выделить всё
2.9. Если вам нечего сказать - промолчите. Если вам нечего сказать кроме флейма/флуда - промолчите. Если вы можете сказать только то, что уже сказано до вас - промолчите. Если вы не уверены в 100%-ой верности вашего ответа - промолчите.нетforfreedom писал(а):кто-нибудь может подсказать
Код: Выделить всё
$sql = 'SELECT group_id
FROM ' . USERS_TABLE . '
WHERE user_id = ' . (int)$poster_id; Код: Выделить всё
$sql = 'SELECT group_id, user_rank
FROM ' . USERS_TABLE . '
WHERE user_id = ' . (int)$poster_id;Код: Выделить всё
$poster_group = $sql_row['group_id'];Код: Выделить всё
$rank_ids = array(1,2,3); // тут id званий
$poster_rank = $sql_row['user_rank'];Код: Выделить всё
if (!in_array($poster_group, $group_ids))Код: Выделить всё
if (!in_array($poster_group, $group_ids) && !in_array($poster_rank, $rank_ids))ID званий которые не увидят? А если нужно создать несколько правил? Если так, то не практично.Sheer писал(а):Код: Выделить всё
$rank_ids = array(1,2,3); // тут id званий
Код: Выделить всё
[ghide=5]скрытый текст[/ghide][ghide=] на [ghide=5] используя, например, Hook System. В качестве примера можно взять хук для антибот10500, убрав лишнюю в этом случае строку с preg_replace и заменив javascript на желаемый - чтобы проводилась требуемая замена (вместо form_token, разумеется, будет message и тд), а также переименовать файл и имя хук-функциии по вкусу. Учтите, для кода, который есть, будут заменены [ghide=] абсолютно везде ))[ghide= внутри скобок будет ещё двоеточие и bbcode_uid, замена получится посложнее и с нужным местом определиться тоже посложнее)Спасибо. А Вам не трудно будет приветсти текст php-функции и java-скрипта, а то чувствую, сам не одолею... :(Чтобы не лезть в сам мод, можно подменять пустой [ghide=] на [ghide=5] используя, например, Hook System
Код: Выделить всё
<?
function anti_shkolota()
{
global $template;
if (isset($template->_tpldata['postrow']))
{
// Применяем функцию do_replace() к каждому члену массива postrow, содержащего тексты сообщений
array_walk($template->_tpldata['postrow'], 'do_replace');
}
}
function do_replace(&$item)
{
// Составляем список знаков препинания
$list = array('.', '?', '!', '(', ')');
// Ищем в сообщениях множественные знаки препинания и заменяем их на одиночные
$item['MESSAGE'] = preg_replace(array_map(create_function('$key', 'return "#" . preg_quote($key) . "{2,}#";'), $list), $list, $item['MESSAGE']);
}
// Регистрируем хук
$phpbb_hook->register(array('template', 'display'), 'anti_shkolota');
?>Нет, этот хук работает для выдаваемой страницы. А Вам надо поймать новое сообщение пользователя и внести изменения именно в него.dndn писал(а):Наверно ее проще подправить
У меня же ББ-код не срабатывает для вновь зарегистрировавшегося юзера. Для того, чтобы следующие его сообщения можно было скрывать, нужно обязательно произвести репарсинг ББ-кодов для этого юзера через STK. Только после этого ББ-код начинает работать и только для сообщений, которые созданы после репарсинга. Все старые его сообщения так и НЕ поддаются сокрытию...Izya писал(а):Это стандартная проблема. Вкратце, это связано с тем, что в БД для каждого сообщения записывается список ID использованных в нем бб-кодов, и при показе сообщения происходит его "прогон" по этому списку. А любой новый бб-код получает новый ID, которого раньше не существовало. И поэтому ни одно старое сообщение не "прогоняется" через новый бб-код.
Исправить это можно. И для этого есть два способа:
1. Пересохранить каждое сообщение вручную :D
:arrow: 2. Скачать с сайта phpbb.com специальный мод Admin Reparse BBCode, который добавляет в админку инструмент "репарсинга" (как бы это перевести на русский :? ) бб-кодов. Этот инструмент пробежится по всем сообщениям в БД и пересоздаст тот самый список ID.
Можно еще расширить код - сделать сплошную(solid вместо dashed) и закруглить углыGorbushka писал(а):Могу предложить немного более красивое оформление:А то чёрное не очень сочетается со стандартными шаблонами...Код: Выделить всё
/* Hide block */ div.adapthide { border: 1px dashed #0000FF; background-color: #FFFFFF; margin: 0px 10px 5px 10px; padding: 5px 5px 5px 5px; font-size: 12px; }
Код: Выделить всё
/* Hide block */
div.adapthide {
border: 1px solid #0000FF
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
background-color: #FFFFFF
margin: 0px 10px 5px 10px;
padding: 5px 5px 5px 5px;
font-size: 12px;
}