Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2007-02-23 10:35:00

PunBBmaster
Гость

Проблема с рангами и группами юзеров

привет, народ

тут такое дело: есть ранги (это типа то, что под никами пишется), в настройках форума я разрешил юзерам писать там кто что хочет, так вот, если они там ничего не пишут, то отображается название ихнего ранга (например, New member или Member и т.д.), если они там что-то пишут, то отображается то, что они там написали

далее: есть группы юзеров (Админы, Модеры, Юзеры, Забаненые и Гости), я добавил еще несколько групп юзеров, в настройках которых указаны эти самые ранги (т.е. то, что там должно писаться для эзеров из этой группы)

ну ясно, да?

а теперь внимание, вопрос: как мне сделать так, чтобы для юзеров из определенных групп (например, с груп_айди = 5,6 или 7) в роли ранга (текста под ником) в любом случае отображался тот ранг, который указан в группе, не важно, указывали ли они его вручную или нет?

немного сумбурно, но, думаю, понятно?
заранее спасибо smile

#2 2007-02-23 11:25:20

Slavik
Гость

Re: Проблема с рангами и группами юзеров

Администрирование -> User groups -> Set user title: (Yes || No) Allow users in this group to set their own user title.

#3 2007-02-23 15:01:43

PunBBmaster
Гость

Re: Проблема с рангами и группами юзеров

Slavik пишет:

Администрирование -> User groups -> Set user title: (Yes || No) Allow users in this group to set their own user title.

дело в том, что если статус уже задан, то он и будет отображаться
т.е., например, для Мемберов разрешено изменение текста статуса, юзер изменил его, и все, переводишь его в группу, где это запрещено, ему это запрещается (т.е. редактировать он его уже не может), но вот отображается тот его статус, который он уже ввел до этого... sad

Редактировался PunBBmaster (2007-02-23 15:02:39)

#4 2007-02-23 15:42:19

Slavik
Гость

Re: Проблема с рангами и группами юзеров

Хм... мало того, еще и если юзера банить а у него есть свой статус, то вместо "забаненный" отображается его статус.

Предлагаю выход:
в viewtopic.php есть примерно такой запрос:

     $result = $db->query('SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, p.has_attach, g.g_id, g.g_user_title, o.user_id AS is_online FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id LEFT JOIN '.$db->prefix.'online AS o ON (o.user_id=u.id AND o.idle=0) WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$pun_user['disp_posts'], false) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); //Attachment Mod, changed the true to false...

Мы добавляем в селект поле g_set_title из таблички groups, получаем примерно:

     $result = $db->query('SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, p.has_attach, g.g_id, g.g_user_title,g.g_set_title, o.user_id AS is_online FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id LEFT JOIN '.$db->prefix.'online AS o ON (o.user_id=u.id AND o.idle=0) WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$pun_user['disp_posts'], false) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); //Attachment Mod, changed the true to false...

Затем идем в functions.php и видим там:

    // If the user has a custom title
    if ($user['title'] != '')
        $user_title = pun_htmlspecialchars($user['title']);
    // If the user is banned
    else if (in_array(strtolower($user['username']), $ban_list))
        $user_title = $lang_common['Banned'];

Предлагаю заменить на:

    // If the user is banned
    if (in_array(strtolower($user['username']), $ban_list))
        $user_title = $lang_common['Banned'];
    // If the user has a custom title
    else if ($user['title'] != '' && $user['g_set_title'])
        $user_title = pun_htmlspecialchars($user['title']);

#5 2007-02-23 17:59:41

PunBBmaster
Гость

Re: Проблема с рангами и группами юзеров

Slavik
немного не то, что именно мне требовалось, но навел меня на верный путь, проблема решена
благодарю! smile

#6 2007-02-23 18:09:52

Slavik
Гость

Re: Проблема с рангами и группами юзеров

А чем не то, если не секрет?

#7 2007-02-24 10:22:05

PunBBmaster
Гость

Re: Проблема с рангами и группами юзеров

ну главный вопрос был вот этот:

PunBBmaster пишет:

а теперь внимание, вопрос: как мне сделать так, чтобы для юзеров из определенных групп (например, с груп_айди = 5,6 или 7) в роли ранга (текста под ником) в любом случае отображался тот ранг, который указан в группе, не важно, указывали ли они его вручную или нет?

насчет забаненных юзеров, то я сам сначала не заметил даже smile
кстати, если кого интересует решение, в вышеуказанный запрос в viewtopic.php добавляется u.group_id, а в functions.php типа такого:

else if ($user['group_id']== '5')
$user_title = pun_htmlspecialchars($user['g_user_title']);

в общем еще раз сенькс за помощь, направил меня на верный путь smile
глянь, плиз, еще этот топик, может поможешь smile

#8 2007-02-24 15:59:04

Slavik
Гость

Re: Проблема с рангами и группами юзеров

Чета мне мое решение больше нравится, потмоу что стандратный тайтл будет отображаться не только для группы 5, а для всех у кого стоит g_set_title 0

#9 2007-02-24 21:00:36

PunBBmaster
Гость

Re: Проблема с рангами и группами юзеров

Slavik
а если этого не требуется?
мне же это нужно только для определенной группы, а для других пусть отображается что они пишут, иначе, зачем вообще тогда я разрешал им писать? smile

Подвал доски

Под управлением FluxBB. Хостинг Hostens