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

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


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

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

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

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

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

<?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
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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

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

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