Перейти к контенту
  • 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 модераторы могут использовать плюсомет только если разрешить им банить через этот плюсомет, если банить запретить, то плюсомет они уже использовать не могут. В чем глюк?
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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