Перейти к контенту
  • 0

Warn Level для модераторо форума.


prosoft

Вопрос

Версия 2.0.0 PF2

Модераторы форумов не видят Warn Level у пользователей. Тем не менее группа SuperAdmin все прекрасно видит и может работать с Warn Level. В настройках.

 

Moderators can ban via warn panel? = Yes

Moderators can mod queue members via warn panel? = Yes

Moderators can remove post rights via warn panel? = Yes

Number of times per day a moderator can warn a single member  = 3

 

Global Moderator Permissions

 

Global Moderators can ban via warn panel? = Yes

Global Moderators can mod queue members via warn panel? = Yes

Global Moderators can remove post rights via warn panel? = Yes

Number of times per day a global moderator can warn a single member = 3

 

Что может быть?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
И у меня то же самое... При обновлении с 1.3.1 до PF1, а потом до PF2 у модераторов исчезла возможность выставлять предупреждения, хотя все права выставлены как надо.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Хм... Нашел в чем проблема. Исправил. Не знаю насколько правильно, но заработало.

 

Файл source/admin/ad_moderator.php.

Ищем:

$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Can warn other users?</b>" ,

Раскомментируем эту и следующие строчки до:

$ibforums->html .= $ibforums->adskin->end_form($button);

 

Файл source/topics.php

ищем

//--------------------------------------------------------------
// Warny porny?
//--------------------------------------------------------------
if ( $ibforums->vars['warn_on'] and ( ! stristr( $ibforums->vars['warn_protected'], ','.$member['mgroup'].',' ) ) )

после

if (( $ibforums->member['g_is_supmod'] == 1 )...

добавляем

or ($ibforums->member['is_mod'] == 1)

ниже находим

// Work out which image to show.

После нее вставляем следующее:

$DB->simple_construct( array( 'select' => '*', 
   'from'   => 'moderators', 
   'where'  => "(member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))" ) );
 $DB->simple_exec();
 if ( $moder = $DB->fetch_row() )
 {
 $ibforums->member['allow_warn'] = $moder['allow_warn'];
 }

 

После модификации, модераторы форумов в своих форумах могут использовать "плюсомет" по назначению. В других форума - только просматривать Warn Level пользователей.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

так

еще проблема через админцентр поставил протекст группе админы и модеры... а пользователей этих групп всеровно отображается рейтинг и с возможностью его изменения =)

Добавлено в [mergetime]1091524368[/mergetime]

кстати неподскажете как пофиксить что бы просматривать рейтинг могли все подряд юзеры у всех остальных.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

1. Matt считает, что модераторам негоже ставить штрафы, поэтому фича эта убрана.

2. Насчет того, что отображается всегда - это глюк, который признан. Его легко исправить.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
у меня даже пропала возможность включить плюсомет (просто строчка исчезла и все!). Описанный выше способ мне поможет?
Ссылка на комментарий
Поделиться на других сайтах

  • 0
у меня даже пропала возможность включить плюсомет (просто строчка исчезла и все!). Описанный выше способ мне поможет?

 

Да.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

>. Matt считает, что модераторам негоже ставить штрафы, поэтому фича эта убрана.

 

Это, как бы, администрация форума решать должна :D

 

У меня другая проблема. Есть два класса пользователей с модераторскими правами. По идее, одни должны иметь права раздачи штрафов, другие - нет. Пока приходится разрешать обоим. И это не смотря на то, что у них настройки есть в свойствах модераторов индивидуальная по этому параметру :-F

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Есть два класса пользователей с модераторскими правами. По идее, одни должны иметь права раздачи штрафов, другие - нет. Пока приходится разрешать обоим. И это не смотря на то, что у них настройки есть в свойствах модераторов индивидуальная по этому параметру :-F

 

После доработки описанной выше в настройках у модеров появится Can warn other users. А дальше смотрим исправление. Все дело в этом коде (файл source/topics.php)

 

$DB->simple_construct( array( 'select' => '*', 
   'from'   => 'moderators', 
   'where'  => "(member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))" ) );
 $DB->simple_exec();
 if ( $moder = $DB->fetch_row() )
 {
 $ibforums->member['allow_warn'] = $moder['allow_warn'];
 }

 

Здесь проверяется, разрешено ли модератору этого форума "плюсометание" или нет.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

На странице настройки модеров появятся следующие пунктики

 

Can warn other users? Yes      No

Can edit user avatars and signatures? Yes      No

Ссылка на комментарий
Поделиться на других сайтах

  • 0

"Can warn other users?" у меня изначально есть и править ничего не надо.

 

После добавления исправления кода ничего не изменилось. Координаторы (модераторы с урезаннмыми правами) у меня так и могут ставить штарфы, не смотря на то, что прямое разрешение есть только у модераторов.

Добавлено в [mergetime]1091786334[/mergetime]

Пардон, это были обломки от прежней моей попытки исправить дело вручную. теперь - заработало. Спасибо :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
у меня теперь работает, но модеры могут ставит предупреждения только в своих разделах (в чужих они даже полоску не видят), как можно сделать чтобы полоску видели все (как на этом форуме) и чтоб модеры могли вешать предупреждения во всех разделах, а не только в своих?
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Я сделал у себя показ предупреждений только у тех, у кого он есть. Не помню точный исходник, чтобы прямо сказать, что дописывать, но найти в sources\topics.php комментарий

       //--------------------------------------------------------------
       // Warny porny?
       //--------------------------------------------------------------

 

и в блоке if() {...} после него добавь условие:

               or $member['warn_level']

 

Т.е. у меня сейчас этот блок выглядит так:

       //--------------------------------------------------------------
       // Warny porny?
       //--------------------------------------------------------------

       if ( $ibforums->vars['warn_on'] and ( ! stristr( $ibforums->vars['warn_protected'], ','.$member['mgroup'].',' ) ) )
       {
           if (
               ( $ibforums->member['is_mod'] )
               or ( $ibforums->member['g_is_supmod'] == 1 )
               or ( $ibforums->vars['warn_show_own'] and ( $ibforums->member['id'] == $member['id'] ) )
               or $member['warn_level']
              )
           {
                       // Work out which image to show.

 

В результате, если предупреждения нулевые, то их видят только админы и модераторы, если ненулевые - то все.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

prosoft, маленькое исправление. В текущем варианте у тебя идёт проверка не индивидуального доступа к форуму, а первой попавшейся записи. Я сделал в таком виде:

               $ibforums->member['allow_warn'] = false;
               if(!empty($this->topic['forum_id']))
               {
                   $DB->simple_construct( array( 'select' => '*', 
                       'from'   => 'moderators', 
                       'where'  => "`forum_id`={$this->topic['forum_id']} AND (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))" ) );
                   $DB->simple_exec();
                   if($moder = $DB->fetch_row())
                       $ibforums->member['allow_warn'] = $moder['allow_warn'];

               }

 

P.S. пардон, исправил на предмет, когда форум не указывается (в поиске, нпример)

Изменено пользователем Balancer
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Это на этом форуме экранирование спецсимволов кривое.

Убирай, где не нужно, обратные слеши.

Сейчас в виде цитаты проверю, может, правильно отпостится:

                $ibforums->member['allow_warn'] = false;

                if(!empty($this->topic['forum_id']))

                {

                    $DB->simple_construct( array( 'select' => '*',

                        'from' => 'moderators',

                        'where'  => "`forum_id`={$this->topic['forum_id']} AND (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))" ) );

                    $DB->simple_exec();

                    if($moder = $DB->fetch_row())

                        $ibforums->member['allow_warn'] = $moder['allow_warn'];

                       

                }

Добавлено в [mergetime]1091957392[/mergetime]

Ага, теперь, вроде, всё ок.

 

Блин, дурдом вечный с этим экранированием. Вырубите его вообще нафиг на хочтинге!

Ссылка на комментарий
Поделиться на других сайтах

  • 0

ну а как сделать:

1) чтобы модеры видели warn в чужих разделах

2) чтобы они не только видеть в чужих рахделах warn но и вешать замечания.

3) чтобы модеры не видели warn у админов.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Интересная вещь получается... мож кто знает...

 

Сношу полностью эти строчки (т.к. мне нужно чтобы все видели рейтинг)

 

if (

    ( $ibforums->member['g_is_supmod'] == 1 )

    or ( $ibforums->vars['warn_show_own'] and ( $ibforums->member['id'] == $member['id'] ) )

      )

 

добовляю ещё этот код

 

$ibforums->member['allow_warn'] = false;

                if(!empty($this->topic['forum_id']))

                {

                    $DB->simple_construct( array( 'select' => '*',

                        'from'  => 'moderators',

                        'where'  => "`forum_id`={$this->topic['forum_id']} AND (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))" ) );

                    $DB->simple_exec();

                    if($moder = $DB->fetch_row())

                        $ibforums->member['allow_warn'] = $moder['allow_warn'];

                       

                }

 

и всё работает как мне надо... Но заметил глюк, именно после этих действий почему-то не показывается нормально список УЧАСТНИКОВ... т.е. он выводит только самого первого юзера и всё, остальных он не печатает? мож кто знает почему это?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
глюк такой - после обновления форума 1.3 до 2.0.4 модераторы могут использовать плюсомет только если разрешить им банить через этот плюсомет, если банить запретить, то плюсомет они уже использовать не могут. В чем глюк?
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.