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

Warnings в Invsion. Помогите пожалуйста.


Song

Вопрос

Друзья, помогите пожалуйста!

В Invision модератор может предупреждать (warnings) пользователей не только у себя в разделе, но и во всех остальных разделах, что не есть хорошо.

Я нашёл где проверяются права модератора по ворнам, но не хватает ума изменить так, чтобы модератор только у себя в разделе мог это делать.

Это файл warn.php, строки 93 - 107:

 

Вот этот код:

 

       	 else if ($ibforums->member['g_is_supmod'] == 1)   - ДЛЯ АДМИНА
      	 {
         $pass               = 1;
         $this->can_ban      = $ibforums->vars['warn_gmod_ban'];
    	 $this->can_mod_q    = $ibforums->vars['warn_gmod_modq'];
    	 $this->can_rem_post = $ibforums->vars['warn_gmod_post'];
    	 $this->times_a_day  = intval($ibforums->vars['warn_gmod_day']);
    	 $this->type         = 'supmod';
      	 }
      	 else if ($ibforums->member['is_mod']) - ВОТ ЗДЕСЬ ДЛЯ МОДЕРАТОРО
      	 {
         $DB->query("SELECT * FROM ibf_moderators WHERE (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))");
   
// Дальше нужно что-то изменить в этом условии, не хватает ума, помогите пожалуйста.

	 if ( $this->moderator = $DB->fetch_row() )
   {
  	 $pass               = 1;
  	 $this->can_ban      = $ibforums->vars['warn_mod_ban'];
       $this->can_mod_q    = $ibforums->vars['warn_mod_modq'];
       $this->can_rem_post = $ibforums->vars['warn_mod_post'];
       $this->times_a_day  = intval($ibforums->vars['warn_mod_day']);
       $this->type         = 'mod';
   }
      	 }

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

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

  • 0

$DB->query("SELECT * FROM ibf_moderators WHERE (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))");

заменить на

          $DB->query("SELECT forum_id FROM ibf_topics WHERE tid = '".$ibforums->input['t']."'");
         if ($row = $DB->fetch_row())
         {
        	 $DB->query("SELECT * FROM ibf_moderators WHERE (forum_id = '".$row['forum_id']."' AND (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."')))");
         }
         else
         {
        	 $DB->query("SELECT * FROM ibf_moderators WHERE (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))");
         }

?

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

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

  • 0

Всё, пасиб тебе theIggs,

я сделал по аналогии. В файле topic.php вставил строки

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

 $member['warn_add']   = "<a href='{$ibforums->base_url}act=warn&type=add&mid={$member['id']}&t={$this->topic['tid']}&st=".intval($ibforums->input['st'])."' title='{$ibforums->lang['tt_warn_add']}'><{WARN_ADD}></a>";
 $member['warn_minus'] = "<a href='{$ibforums->base_url}act=warn&type=minus&mid={$member['id']}&t={$this->topic['tid']}&st=".intval($ibforums->input['st'])."' title='{$ibforums->lang['tt_warn_minus']}'><{WARN_MINUS}></a>";
}


if  ( $ibforums->member['is_mod'] AND $ibforums->member['allow_warn'] ) 
{

  $DB->query("SELECT forum_id FROM ibf_topics WHERE tid = '".$ibforums->input['t']."'");
  if ($row = $DB->fetch_row())
    {
     $DB->query("SELECT * FROM ibf_moderators WHERE (forum_id = '".$row['forum_id']."' AND (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."')))");
    } else
    {
     $DB->query("SELECT * FROM ibf_moderators WHERE (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))");
    }

  if ( $this->moderator = $DB->fetch_row() )
   {
     $member['warn_add']   = "<a href='{$ibforums->base_url}act=warn&type=add&mid={$member['id']}&t={$this->topic['tid']}&st=".intval($ibforums->input['st'])."' title='{$ibforums->lang['tt_warn_add']}'><{WARN_ADD}></a>";
     $member['warn_minus'] = "<a href='{$ibforums->base_url}act=warn&type=minus&mid={$member['id']}&t={$this->topic['tid']}&st=".intval($ibforums->input['st'])."' title='{$ibforums->lang['tt_warn_minus']}'><{WARN_MINUS}></a>";

   }

} 	 }

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

  • 0

вставил в topic.php ... получил ошибку, убрал в конце оду } все работает. .все хорошо...

только модераторы как видели - и + во всех разделах так и видят.. :D

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

  • 0

Дык не в начало, а там где прописовываются {WARN_ADD} и {WARN_MINUS}.

Вот эти строчки надо заменить

    if ( ( $ibforums->member['is_mod'] AND $ibforums->member['allow_warn'] ) or ( $ibforums->member['g_is_supmod'] == 1 ) )
   {
   	$member['warn_add']   = "<a href='{$ibforums->base_url}act=warn&type=add&mid={$member['id']}&t={$this->topic['tid']}&st=".intval($ibforums->input['st'])."' title='{$ibforums->lang['tt_warn_add']}'><{WARN_ADD}></a>";
   	$member['warn_minus'] = "<a href='{$ibforums->base_url}act=warn&type=minus&mid={$member['id']}&t={$this->topic['tid']}&st=".intval($ibforums->input['st'])."' title='{$ibforums->lang['tt_warn_minus']}'><{WARN_MINUS}></a>";
   }
 	}

вышеприведённым текстом

Проверь скобочки, может ошибся.

 

Добавлено:

Только вот тут важный фактор: ведь кнопочки + и - прорисовываются для каждого юзера и, если мы вставляем этот код в topics.php, то значит запрос в БД будет выполняться на каждый раз, когда прорисовывается мессага юзера. Я думаю, это будет притормаживать.

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

  • 0

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /home/HOST/public_html/sources/Topics.php on line 2012

вот что выдал в итоге...

уберал последнюю } выдавал ошибку. :D

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

  • 0
Только вот тут важный фактор: ведь кнопочки + и - прорисовываются для каждого юзера и, если мы вставляем этот код в topics.php, то значит запрос в БД будет выполняться на каждый раз, когда прорисовывается мессага юзера. Я думаю, это будет притормаживать.

$DB->query() надо делать где-нить выше по тексту (не в цикле), сохранять результаты в массив по типу

$massiv[ $row['id'] ] = $result, а потом проверять уже из массива... Понятно объяснил? :D

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

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

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

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

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

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

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

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

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

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

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

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