[Ищю] Мод для банов.

Статус
В этой теме нельзя размещать новые ответы.
E-body,

тут проблема в том, что {ipb.lang['']} в 2.3 выглядит так:
{$this->ipsclass->lang['']}
 
Вот шаблон для версии 2.3.х и с ним работает.
PHP:
<form action="{$this->ipsclass->script_url}" method="post" name="ban">
<input type="hidden" name="act" value="UserCP" />
<input type="hidden" name="CODE" value="do_ban" />
<input type="hidden" name="mid" value="{$member['id']}" />
<div class="formsubtitle">{$this->ipsclass->lang['title']} <i>{$member['members_display_name']}</i></div>
<p>{$this->ipsclass->lang['text']}</p>
<table class='ipbtable' cellspacing="0">
	<tr>
		<td><b>{$this->ipsclass->lang['ban_mem']}</b></td>
		<td><input type="radio" name="mban" value="yes">{$this->ipsclass->lang['y']}**
		<input type="radio" name="mban" value="no"checked="checked">{$this->ipsclass->lang['n']}</td>
	</tr>

	<tr>
		<td><b>{$this->ipsclass->lang['ban_group']}</b></td>
		<td><input type="radio" name="mbang" value="yes">{$this->ipsclass->lang['y']}**
		<input type="radio" name="mbang" value="no"checked="checked">{$this->ipsclass->lang['n']}</td>
	</tr>

	<tr>
		<td><b>{$this->ipsclass->lang['ban_ip']}</b></td>
		<td><input type="radio" name="mbanip" value="yes">{$this->ipsclass->lang['y']}**
	               <input type="radio" name="mbanip" value="no"checked="checked">{$this->ipsclass->lang['n']}</td>
	</tr>

	<tr>
		<td><b>{$this->ipsclass->lang['ban_email']}</b></td>
		<td><input type="radio" name="mbanemail" value="yes">{$this->ipsclass->lang['y']}**
				<input type="radio" name="mbanemail" value="no"checked="checked">{$this->ipsclass->lang['n']}</td>
	</tr>

	<tr>
		<td>{$this->ipsclass->lang['ban_time']}</td>
		<td><input type="text" name="mbantime"></td>
	</tr>

	<tr>
		<td><b>{$this->ipsclass->lang['ban_emailt']}</b></td>
		<td><input type="radio" name="msendemail" value="yes">{$this->ipsclass->lang['y']}**
				<input type="radio" name="msendemail" value="no"checked="checked">{$this->ipsclass->lang['n']}</td>
	</tr>

	<tr>
		<td>{$this->ipsclass->lang['ban_emailc']}</td>
		<td><textarea cols="65" rows="5" name="email">{$contents}</textarea></td>
	</tr>

	<tr>
		<td class="formbuttonrow" colspan="2"><input type="submit" class='button' name="ban" value="{$this->ipsclass->lang['ban_s']}" /></td>
	</tr>
</table>
</form>
Но вылетает ошибка при попытке забанить учасника
Сообщение форума

Обнаружена ошибка. Если вам неизвестны причины ошибки, попробуйте обратиться к разделам помощи.
Причина:

Этот пользователь небыл найден в базе, он не может быть забанен.
 
а если в topics.php вписать
Код:
 if (($this->ipsclass->member['g_is_supmod']) OR 
        ($this->ipsclass->member['g_access_cp']))
        {
		  $row['ban'] = "<a href='{$this->ipsclass->base_url}act=UserCp&CODE=ban&mid={$row['author_id']}'> Ban!</a>";
	    }
а не
Код:
 if (($this->ipsclass->member['g_is_supmod']) OR 
        ($this->ipsclass->member['g_access_cp']))
        {
		  $row['ban'] = "<a href='{$this->ipsclass->base_url}act=UserCp&CODE=ban&mid={$poster['id']}'> Ban!</a>";
	    }
начинает банить? :)

UPD:давно хотел баннилку нормальную нарисовать... придётся сделать раз никто не выкладывает не выкладывает переделанную от 2.1)
 
а если в topics.php вписать
Код:
 if (($this->ipsclass->member['g_is_supmod']) OR 
        ($this->ipsclass->member['g_access_cp']))
        {
		  $row['ban'] = "<a href='{$this->ipsclass->base_url}act=UserCp&CODE=ban&mid={$row['author_id']}'> Ban!</a>";
	    }
а не
Код:
 if (($this->ipsclass->member['g_is_supmod']) OR 
        ($this->ipsclass->member['g_access_cp']))
        {
		  $row['ban'] = "<a href='{$this->ipsclass->base_url}act=UserCp&CODE=ban&mid={$poster['id']}'> Ban!</a>";
	    }
начинает банить? :)

UPD:давно хотел баннилку нормальную нарисовать... придётся сделать раз никто не выкладывает не выкладывает переделанную от 2.1)
Спасибо, но даже это не помогло... Вот что может быть там ещё, почему он не видит кого банить? :nezn:
 
сделаю как время появится седни-завтра простую кнопку без лишних форм для простого и ненавязчивого бана, как тока руки дойдут)
 
сделаю как время появится седни-завтра простую кнопку без лишних форм для простого и ненавязчивого бана, как тока руки дойдут)
Такой уже есть, но именно этот выбрал в котором есть выбор как банить и оповещение юзера, чтоб бедный не оставался невпонятках.

Эта модификация добавляет функцию быстрой блокировки пользователя в его выпадающее меню в сообщении.
Блокировка сразу ведётся по IP-адресу, E-Mail и имени пользователя, добавляя эти данные в список запрещённых (таблица ibf_banfilters).

1.Открыть sources/action_public/profile.php, найти:
PHP:
 case 'personal_iframe_comments_save':
                   $this->personal_iframe_comments_save();
                   break;

Добавить ниже:
PHP:
 case 'quick_ban':
                   $this->quick_ban();
                   break;


2.Найти:
PHP:
}
   
   ?>

Добавить выше:
PHP:
 /*-----------------------------------------------------/*
       // Quick Ban
       /*-----------------------------------------------------*/
   
       function quick_ban()
       {
             $mid = isset( $this->ipsclass->input['mid'] ) ? intval( $this->ipsclass->input['mid'] ) : 0;
             $tid = isset( $this->ipsclass->input['t'] ) ? intval( $this->ipsclass->input['t'] ) : 0;
   
             $perm = 0;
   
             if( $this->ipsclass->member['g_is_supmod'] == 1 )
             {
               $perm = 1;
             }
           
             if( !$perm )
             {
               $this->ipsclass->Error( array( 'LEVEL' => 1, MSG => "no_permission" ) );
             }
   
             if( !$mid )
             {
               $this->ipsclass->Error( array( 'LEVEL' => 1, MSG => "no_permission" ) );
             }
   
             $check = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*', 'from' => 'members', 'where' => 'id='.$mid . ' and mgroup not in (4,7)' ) );
             
             if( !$check )
             {
               $this->ipsclass->Error( array( 'LEVEL' => 1, MSG => "no_permission_group" ) );
             }
   
             $this->ipsclass->DB->simple_construct( array( 'update' => 'members',
                                                           'set'    => 'mgroup='.$this->ipsclass->vars['banned_group'],
                                                           'where'  => 'id='.$mid ) );
   
             $this->ipsclass->DB->simple_exec();
   
             $array = array( 'ban_type' => 'email',
                             'ban_content' => $check['email'],
                             'ban_date' => time() );
   
             $this->ipsclass->DB->do_insert( "banfilters" , $array );
   
             $yarra = array( 'ban_type' => 'ip',
                             'ban_content' => $check['ip_address'],
                             'ban_date' => time() );
   
             $this->ipsclass->DB->do_insert( "banfilters" , $yarra );
   
             $this->ipsclass->boink_it($this->ipsclass->base_url."showtopic=".$tid);
       }


3.Открыть cache/lang_cache/ru/lang_error.php, вставить:
PHP:
'no_permission_group'        => "Вы не можете заблокировать администратора или модератора",

4.Далее пройдите в Админцентр > ВНЕШНИЙ ВИД > *ваш стиль* > skin_topic (просмотр темы) > RenderRow, найдите:
PHP:
<div class='popupmenu-item'>
  <img src='{$this->ipsclass->vars['img_url']}/folder_profile_portal/send_pm_small.png' alt='' border='0' /> <a href="{$this->ipsclass->base_url}act=Msg&amp;CODE=4&amp;MID={$author['id']}">{$this->ipsclass->lang['dd_send_pm']}</a>
  </div>

Добавьте ниже:
PHP:
<if="$this->ipsclass->member['g_is_supmod'] == 1">
  <div class='popupmenu-item'>
  <img src='{$this->ipsclass->vars['img_url']}/aff_cross.gif' alt='' border='0' />&nbsp;&nbsp;<a href="{$this->ipsclass->base_url}act=Profile&amp;CODE=quick_ban&amp;mid={$author['id']}&amp;t={$post['topic_id']}">Заблокировать</a>
  </div></if>
Взято с cyber-city.ru :-]
 
это не то что мне надо). у меня у самого стоит мод easy ban который кочует с версии 2.1.х. там тоже есть отправка email и всё такое, только по моему сделано это не удобно, тот мод что тут обсуждается очень похож кстати на него) а что приведён последним более упрощённая его копия без возможности выбора причём в профиле. а мне нужно из темы, с возможгным выбором удаления тем и сообщений + то что есть в easy ban'e.
 
у меня на 2.3.6 почему то не работает(

Анологично, пишет мол нету юзера такого! 2.3.6
smash_TeAm™ хдие пропадаешь? Вобщем мод сейчас на форуме только иллюзия, обхожусь предупреждениями простыми. Почему в ipb после удаления постов не удалается количество сообщений у юзера?
-
полезно бы прикрутить выбор обнуления всех сообщений юзера...
 
  • Заблокирован
  • #20
Почему в ipb после удаления постов не удалается количество сообщений у юзера?
У ipb это досадный баг :( Но он решается установкой мода dec post найти можешь его на ибресурсе или же на invisionize.com ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху