Arhar Опубликовано 8 Января 2007 Жалоба Поделиться Опубликовано 8 Января 2007 Позволим модераторам перемещать пользоваеля в группу забаненные Сделано для избежания бага с баном на определенное время, т.к. случается, что это время уходит в минус, а пользователь все еще забанен здесь же все просто модераторы могут перемещать пользователя в группу забанненые и возвращать оттуда можно сделать изменения по принципу возвращения, если существует перенос из группы в группу при наборе определенного количества сообщений 1.изменяем warn.php function do_warn() найти if ( ! $this->ipsclass->vars['warn_past_max'] ) { $this->ipsclass->vars['warn_min'] = $this->ipsclass->vars['warn_min'] ? $this->ipsclass->vars['warn_min'] : 0; $this->ipsclass->vars['warn_max'] = $this->ipsclass->vars['warn_max'] ? $this->ipsclass->vars['warn_max'] : 10; $warn_level = intval($this->warn_member['warn_level']); if ( $this->ipsclass->input['level'] == 'add' ) { if ( $warn_level >= $this->ipsclass->vars['warn_max'] ) { $err = 1; } } else { if ( $warn_level <= $this->ipsclass->vars['warn_min'] ) { $err = 1; } } if ( $err == 1 ) { $this->ipsclass->Error( array( LEVEL => '1', MSG => 'no_warn_max' ) ); } } заменить на $block=""; if ( $this->ipsclass->input['doblock'] == 'block' ) { $block=1; } elseif ( $this->ipsclass->input['doblock'] == 'unblock' ) { $block=2; } else { $block=0; } if ($block==0){ if ( ! $this->ipsclass->vars['warn_past_max'] ) { $this->ipsclass->vars['warn_min'] = $this->ipsclass->vars['warn_min'] ? $this->ipsclass->vars['warn_min'] : 0; $this->ipsclass->vars['warn_max'] = $this->ipsclass->vars['warn_max'] ? $this->ipsclass->vars['warn_max'] : 10; $warn_level = intval($this->warn_member['warn_level']); if ( $this->ipsclass->input['level'] == 'add' ) { if ( $warn_level >= $this->ipsclass->vars['warn_max'] ) { $err = 1; } } else { if ( $warn_level <= $this->ipsclass->vars['warn_min'] ) { $err = 1; } } if ( $err == 1 ) { $this->ipsclass->Error( array( LEVEL => '1', MSG => 'no_warn_max' ) ); } } } найти в этой же функции //----------------------------------------- // Update member //----------------------------------------- $warn_level = intval($this->warn_member['warn_level']); if ( $this->ipsclass->input['level'] == 'add' ) { $warn_level++; } else { $warn_level--; } if ( $warn_level > $this->ipsclass->vars['warn_max'] ) { $warn_level = $this->ipsclass->vars['warn_max']; } if ( $warn_level < intval($this->ipsclass->vars['warn_min']) ) { $warn_level = 0; } $this->ipsclass->DB->do_update( 'members', array ( 'mod_posts' => $mod_queue, 'restrict_post' => $restrict_post, 'temp_ban' => $susp, 'warn_level' => $warn_level, 'warn_lastwarn' => time(), ) , "id={$this->warn_member['id']}" ); заменить на //----------------------------------------- // Update member //----------------------------------------- if ($block==0) { $warn_level = intval($this->warn_member['warn_level']); if ( $this->ipsclass->input['level'] == 'add' ) { $warn_level++; } else { $warn_level--; } if ( $warn_level > $this->ipsclass->vars['warn_max'] ) { $warn_level = $this->ipsclass->vars['warn_max']; } if ( $warn_level < intval($this->ipsclass->vars['warn_min']) ) { $warn_level = 0; } } if ($block==1) { $this->ipsclass->DB->do_update( 'members', array ( 'mgroup' => 5, ) , "id={$this->warn_member['id']}" ); } if ($block==2) { if ($this->warn_member['posts']<3) { $this->ipsclass->DB->do_update( 'members', array ( 'mgroup' => 3, ) , "id={$this->warn_member['id']}" ); } else { $this->ipsclass->DB->do_update( 'members', array ( 'mgroup' => 23, ) , "id={$this->warn_member['id']}" ); } } elseif ($block==0){ $this->ipsclass->DB->do_update( 'members', array ( 'mod_posts' => $mod_queue, 'restrict_post' => $restrict_post, 'temp_ban' => $susp, 'warn_level' => $warn_level, 'warn_lastwarn' => time(), ) , "id={$this->warn_member['id']}" ); } как видите, здесь у меня две группы, куда возвращаем мембера одна с номером 3 - пользователи другая - 23 - активные пользователи(у которых больше 2 сообщений (антибот) а группа с номером 5 - Забанненые в этом же файле, но в функции function show_form($errors="") находим $this->output .= $this->ipsclass->compiled_templates['skin_mod']->warn_suspend($ban_arr, $ban_extra); } добавляем ПЕРЕД $this->output .= $this->ipsclass->compiled_templates['skin_mod']->warn_do_block(); мы добавили этот вывод в секцию, выводимую только для тех, у кого $this->can_ban, тоесть для админов и супермодеров(если у последних $this->ipsclass->vars['warn_gmod_ban'] == 1) И создаем в АДМИНКА--ВНЕШНИЙ ВИД--ИЗМЕНИТЬ ФРАГМЕНТЫ--skin_mod Новый шаблон с именем warn_do_block без входящих переменных с содержанием <tr> <td class="pformleftw"><b>Переместить в группу заблокированные</b></td> <td class="pformright"> <input type="radio" name="doblock" id="block" class="radiobutton" value="block" /><label for="block" class="warnbad"><b>Да</b></label> <br /> <input type="radio" name="doblock" id="unblock" class="radiobutton" value="unblock" /><label for="unblock" class="warngood"><b>Нет</b></label> </td> </tr> И самое главное! изменяем шаблон warn_header находим type={ipb.input['type']} и дабавляем сразу после этого следующее: &doblock={ipb.input['doblock']} вот так наверно что-то упустил, так как клепал позавчера, а выложил только сегодня и может быть, что-то забыл, поэтому проверьте плиз создайте тестюзера и помучайте его Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DANMASTER Опубликовано 28 Апреля 2007 Жалоба Поделиться Опубликовано 28 Апреля 2007 А для 1.3.x реально сделать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Freestyler(c) Опубликовано 28 Апреля 2007 Жалоба Поделиться Опубликовано 28 Апреля 2007 есть же мод быстрого перемещения в любые группы... __http://ibresource.ru/forum/topic377.html___ Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Rainbowwolf Опубликовано 29 Апреля 2007 Жалоба Поделиться Опубликовано 29 Апреля 2007 Это для какого ipb? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
aivus Опубликовано 18 Августа 2007 Жалоба Поделиться Опубликовано 18 Августа 2007 Так же если у вас только одна группа пользователей, тоесть нет группы активных пользователей, то при изменении //----------------------------------------- // Update member //----------------------------------------- ....... Нужно использовать следующий код: ...(как в обычном листинге)... if ($block==2) { $this->ipsclass->DB->do_update( 'members', array ( 'mgroup' => 3, ) , "id={$this->warn_member['id']}" ); } ...(как в обычном листинге)...вместо: if ($block==2) { if ($this->warn_member['posts']<3) { $this->ipsclass->DB->do_update( 'members', array ( 'mgroup' => 3, ) , "id={$this->warn_member['id']}" ); } else { $this->ipsclass->DB->do_update( 'members', array ( 'mgroup' => 23, ) , "id={$this->warn_member['id']}" ); } } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Августа 2007 Жалоба Поделиться Опубликовано 18 Августа 2007 Сделано для избежания бага с баном на определенное время, т.к. случается, что это время уходит в минус, а пользователь все еще забаненСделал внешним файлом возможность посмотреть ники забаненых на текущий момент:<?php require 'conf_global.php'; Error_Reporting(1+2+4+8); // Connect to the Database if (!($link = mysql_pconnect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']))) { echo( sprintf( "Нет соединения С базой данных!", mysql_error() ) ); exit() ; } ; echo "<html><head><title>Vesvalo.AA => Кто в банке?</title></head><body><table border=1 align=center><tr><th>Ник</th><th>RO</th><th>Премодерация</th><th>Бан</th></tr>"; $query_messa= "SELECT name, restrict_post, mod_posts, temp_ban FROM `ibf_members` WHERE (restrict_post <>0 AND restrict_post <> 'NULL') or (mod_posts <>0 AND mod_posts <> 'NULL') or (temp_ban <>0 AND temp_ban <> 'NULL')"; if (!($result_messa = mysql_db_query($INFO['sql_database'], $query_messa))){ echo mysql_errno(), mysql_error(); return 0 ; } while($row_messa = mysql_fetch_array($result_messa)) { echo "<tr>"; echo "<td>"; echo $row_messa['name']; echo "</td>"; if($row_messa['restrict_post']=="0" or $row_messa['restrict_post']=="NULL"){echo "<td align=center>V</td>";} else{echo "<td> </td>";}; if($row_messa['mod_posts']=="0" or $row_messa['mod_posts']=="NULL"){echo "<td align=center>V</td>";} else{echo "<td> </td>";}; if($row_messa['temp_ban']=="0" or $row_messa['temp_ban']=="NULL"){echo "<td align=center>V</td>";} else{echo "<td> </td>";}; echo "</tr>"; }; echo "</table></body></html>"; ?> Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
zil1924 Опубликовано 21 Октября 2007 Жалоба Поделиться Опубликовано 21 Октября 2007 (изменено) Тоесть например после 5 сообщений пользователь уходить в группу Заблокированные или как? мы добавили этот вывод в секцию, выводимую только для тех, у кого $this->can_ban, тоесть для админов и супермодеров(если у последних $this->ipsclass->vars['warn_gmod_ban'] == 1)что это ? и куда добовлять? и зачем нужно? =)) Изменено 21 Октября 2007 пользователем zil1924 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.