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

"Кто в банке?"


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

У меня модераторам разрешено банить, ставить на премодерацию и опускать в ридонли через рейтинги.

Допущенных к "кнопке" оказалось больше двух десятков.

При этом иногда форум выдает интересный глюк: время наказания уже давно истекло и считается в минус, а наказание не снимается.

Сделал пока внешним скриптом возможность посмотреть, кто же сидит в банке:

<?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>".$INFO['board_name']." => Кто в банке?</title></head><body><table border=1 align=center><tr><th>Ник</th><th>RO</th><th>Премодерация</th><th>Бан</th><th>Профиль</th></tr>";
$query_messa= "SELECT id, 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> </td>";}
else{echo "<td>".$row_messa['restrict_post']."</td>";};

if($row_messa['mod_posts']==0 or $row_messa['mod_posts']=="NULL"){echo "<td align=center> </td>";}
else{echo "<td>".$row_messa['mod_posts']."</td>";};

if($row_messa['temp_ban']==0 or $row_messa['temp_ban']=="NULL"){echo "<td align=center> </td>";}
else{echo "<td>".$row_messa['temp_ban']."</td>";};
echo "<td><a href='index.php?showuser=".$row_messa['id']."'>Посмотреть</a></td></tr>";
};
echo "</table></body></html>";
?>

 

Образец: http://www.pharm-forum.ru/banka.php

 

Не поможет ли мне вездесущий All довести этот скрипт до удобочитаемого вида?

 

В первую очередь для версии 1.3; или так и оставить внешним скриптом.

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

Вот для начала подойдёт я думаю. Доработать можно будет, во всяком случае.

 

index.php например после "UserCP" => "Usercp", и добавляем

'banka' => 'banka',

 

в папке sources создаём файл banka.php с такой начинкой:

 

<?php
$idx = new banka;
class banka
{
var $output	 = "";
var $page_title = "";
var $nav		= array();
var $html	   = "";

function banka()
 {global $ibforums, $std, $print;

if ($ibforums->input['CODE'] == "" or $ibforums->input['CODE'] == null)
  {
	$ibforums->input['CODE'] = 'view';
  }

  // Call the skin, lang, codes, etc
$ibforums->lang = $std->load_words($ibforums->lang, 'lang_banka', $ibforums->lang_id);
$this->html = $std->load_template('skin_banka');
$this->base_url = $ibforums->base_url;

 switch($ibforums->input['CODE']) {

 case 'view':	   //на главную страницу банки
 $this->main();
 break;

 case 'un_ban': //вытащим из банки - может когда допишется фун-кция)
 {	 $this->un_ban();
 }
 break;

 default:
 	$this->main();
 break;
 }

$print->add_output("$this->output");
$print->do_output( array( 'TITLE' => $this->page_title." < ".$ibforums->vars['board_name'], 'JS' => 0, 'NAV' => $this->nav ) );
 }


function main()
  { global $DB, $ibforums, $std;


$this->output.=$this->html->table_start();

$DB->query("SELECT id, 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')");
While ($temp = $DB->fetch_row())
{
	$s_ban = $std->hdl_ban_line( $temp['temp_ban'] );
	$time_ban = $this->get_date( $s_ban['date_end']);

 $profile = "<a href=index.php?showuser=".$temp['id'].">".$temp['name']."</a>";
  if ($temp['$mod_posts'] == 0)
  {	 $mod_posts = $ibforums->lang['no_mod']; }
 else
 {
  $mod_posts = $ibforums->lang['mod_banka'];
 }


$this->output.=$this->html->table_mid($profile,$temp['restrict_post'],$mod_posts,$time_ban);
}


$this->output.=$this->html->end_table();   //Конец таблицы

$this->page_title = $ibforums->lang['nav'];	//output the nav
$this->nav = array($ibforums->lang['title']);



  }




function get_date($date="", $method="") //Это из админ_функшнс.пхп
{
	global $INFO, $IN, $MEMBER;

	$this->time_options = array( 'JOINED' => $INFO['clock_joined'],
								 'SHORT'  => $INFO['clock_short'],
								 'LONG'   => $INFO['clock_long']
							   );

	if (!$date)
	{
		return '--';
	}

	if (empty($method))
	{
		$method = 'LONG';
	}

	$this->time_offset = (($MEMBER['time_offset'] != "") ? $MEMBER['time_offset'] : $INFO['time_offset']) * 3600;

	if ($INFO['time_adjust'] != "" and $INFO['time_adjust'] != 0)
	{
		$this->time_offset += ($INFO['time_adjust'] * 60);
	}

	if ($MEMBER['dst_in_use'])
	{
		$this->time_offset += 3600;
	}

	return gmdate($this->time_options[$method], ($date + $this->time_offset) );



}

function un_ban()
 { global $DB, $ibforums;

 }


} //конец класса
?>

 

В папке скинов skin/sX

создаём

skin_banka.php

<?php

class skin_banka {


function table_start(){
global $ibforums;
return <<<EOF

<table border=1 align=center width=60%><tr><th>{$ibforums->lang['nik']}</th><th>{$ibforums->lang['RO']}</th><th>Премодерация</th><th>Окончание бана</th></tr>


EOF;
}

function table_mid($profile, $restrict_post, $mod_posts, $time_ban){
global $ibforums;
return <<<EOF
<tr align='center'>
<td>{$profile}</td> <td>{$restrict_post}</td> <td>{$mod_posts}</td> <td>{$time_ban}</td>
</tr>

EOF;
}

function end_table(){
global $ibforums;
return <<<EOF
</table>

EOF;
}


}
?>

 

В папке lang/X/ создаём lang_banka.php

<?php

$lang = array (
'nav' => "Кто в банке сидит?",
'nik' => "Профиль",
'RO' => "RO",
'no_mod' => "отсутсвует",
'mod_banka' => "Премодерация включена",
'title' => "Банка"



);

?>

 

в нужное место добавляем ссылку на всё это добро, вида /index.php?act=banka

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

Возможно вместо отдельного столбца "Посмотреть профиль" стоит сделать ник пользователя в первом столбце ссылкой на этот самый профиль... :D
Ссылка на комментарий
Поделиться на других сайтах

Ну, в моём примере так и сделано.
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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