Просмотр файла viktorina.php

Размер файла: 9.34Kb
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/constants.' . $phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
$user_lang = ($userdata['user_id'] != ANONYMOUS) ? $userdata['user_lang'] : $board_config['default_lang'];
if( file_exists($phpbb_root_path . 'language/lang_' . $user_lang . '/lang_viktorina.php') )
{
include_once($phpbb_root_path . 'language/lang_' . $user_lang . '/lang_viktorina.php');
}
else
{
$user_lang = 'english';
include_once($phpbb_root_path . 'language/lang_english/lang_viktorina.php');
}
global $db , $lang , $phpEx , $phpbb_root_path;
define('QUESTIONS_TABLE', $table_prefix.'question');
define('QUESTIONS_TEMP_TABLE', $table_prefix.'questions_temp');
define('QUESTIONS_ACTIVE_TABLE', $table_prefix.'questions_active');
define('QUESTIONS_CONFIG_TABLE', $table_prefix.'questions_config');
$page_title = $lang['qz_page_title0'];
$user_id = $userdata['user_id'];
	$template->set_filenames(array( 'body' => 'viktorina_body.tpl'));
if( isset($HTTP_POST_VARS['on_off']))
{
	$sql = "SELECT COUNT(*) as count_user FROM " . QUESTIONS_ACTIVE_TABLE . " WHERE user_id = $user_id";
	if(!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."001", '', __LINE__, __FILE__, $sql);
	}
	$row = $db->sql_fetchrow($result);
	$count_user = $row['count_user'];
$on_off_user = 0;
if ($count_user)
{
	$sql = "SELECT on_off_user FROM " . QUESTIONS_ACTIVE_TABLE . " WHERE user_id = $user_id";
	if(!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."002", "", __LINE__, __FILE__, $sql);
	}
	$row = $db->sql_fetchrow($result);
	$on_off_user = $row['on_off_user'];
}
if ($count_user==0)
{
		$sql = "INSERT INTO " . QUESTIONS_ACTIVE_TABLE . " 
		(user_id, on_off_user, start_time)
		VALUES ($user_id, 1, 0)";
		
		if (!$db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, $lang['qz_obloms']."003", "", __LINE__, __FILE__, $sql);
			}

}
if ($count_user)
{
$on_off_user2 = ($on_off_user) ? 0 : 1;
$sql = "UPDATE " . QUESTIONS_ACTIVE_TABLE . "
SET on_off_user = $on_off_user2
WHERE user_id = $user_id";
if (!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."004", "", __LINE__, __FILE__, $sql);
	}
}

redirect(append_sid("viktorina.$phpEx", true));
}

if( isset($HTTP_POST_VARS['add_vop']))
{
redirect(append_sid("add_question.$phpEx", true));
}

if( isset($HTTP_POST_VARS['adms']) AND $userdata['user_level']==ADMIN)
{
redirect('admin/admin_viktorina.' . $phpEx . '?p=2&sid=' . $userdata['session_id']);
}

	$points_name = ($board_config['points_name']) ? $board_config['points_name'] : 'points';
	$sql="SELECT *
	FROM " . QUESTIONS_CONFIG_TABLE;
	
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."005", '', __LINE__, __FILE__, $sql);
	}
		while( $row = $db->sql_fetchrow($result) )
		{
			$quiz_conf[$row['config_name']] = $row['config_value'];
		}

		$conf_on_off = $quiz_conf['on_off'];
		$conf_cost_right = $quiz_conf['cost_right'];
		$conf_max_numb_temp = $quiz_conf['max_numb_temp'];
		$conf_min_time = $quiz_conf['min_time'];
		$conf_right_rating = $quiz_conf['numb2rate'];

$sql = "SELECT COUNT(id) AS numb_all FROM " . QUESTIONS_TABLE . " WHERE moder=1";	
	if(!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."006", "", __LINE__, __FILE__, $sql);
	}
	$row = $db->sql_fetchrow($result);
	$numb_all = $row['numb_all'];

$sql = "SELECT SUM(zad_vop) AS all_sum_vop
FROM " . QUESTIONS_ACTIVE_TABLE . "
WHERE zad_vop > 0";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."007", '', __LINE__, __FILE__, $sql);
	}
$row = $db->sql_fetchrow($result);
$all_sum_vop = $row['all_sum_vop'];

$sql = "SELECT user_id, right_otv, zad_vop
FROM " . QUESTIONS_ACTIVE_TABLE . "
WHERE right_otv >= $conf_right_rating";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."008", '', __LINE__, __FILE__, $sql);
	}
	$row3 = $db->sql_fetchrowset($result);
$info_rate = $lang['qz_rate_non'] . $conf_right_rating . $lang['qz_right_ans'];

if (count($row3))
{
$max_rat = $row3[0]['right_otv']/$row3[0]['zad_vop'];
$max_user= $row3[0]['user_id'];
$max_zad= $row3[0]['zad_vop'];

		for($i = 0; $i < count($row3); $i++)
		{
			if ($row3[$i]['right_otv']/$row3[$i]['zad_vop'] >= $max_rat)
			{
				$max_rat = $row3[$i]['right_otv']/$row3[$i]['zad_vop'];
				$max_user= $row3[$i]['user_id'];
				$max_zad= $row3[$i]['zad_vop'];
			}
		}

	$sql = "SELECT username
		FROM " . USERS_TABLE . "
		WHERE user_id = $max_user
		LIMIT 1";

		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, $lang['qz_obloms']."009", '', __LINE__, __FILE__, $sql);
		}
	$row = $db->sql_fetchrow($result);
	$max_rating_name = $row['username'];

$user_link = "<a href=" . $phpbb_root_path . "profile.php?mode=viewprofile&u=" . $max_user . ">" . $max_rating_name . "</a>";
$info_rate = $user_link . ' (' . sprintf("%.2f",$max_rat*100) . $lang['qz_right_ansv'] . $max_zad . $lang['qz_qs'];
}
if ($user_id > 0)
{
$name2= $lang['qz_but_send'];
$name3= $lang['qz_but_adm'];
$name4= $lang['qz_but_my'];
$dis3 = 'disabled';
$dis4 = 'disabled';
$go_dis = 'disabled';
if ($userdata['user_level']==ADMIN) $dis3='';

	$sql = "SELECT COUNT(*) as count_user FROM " . QUESTIONS_ACTIVE_TABLE . " WHERE user_id = $user_id";
	if(!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."010", "", __LINE__, __FILE__, $sql);
	}
	$row = $db->sql_fetchrow($result);
	$count_user = $row['count_user'];

if ($count_user)
{
$sql = "SELECT on_off_user, zad_vop, right_otv, prin_vop, start_time
	FROM " . QUESTIONS_ACTIVE_TABLE . "
	WHERE user_id = $user_id LIMIT 1";
		if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, $lang['qz_obloms']."011", "", __LINE__, __FILE__, $sql);
			}
		$row2 = $db->sql_fetchrow($result);
		$on_off = $row2['on_off_user'];
$name1= ($on_off) ? $lang['qz_user_off'] : $lang['qz_user_on'];
		$numb_zad = $row2['zad_vop'];
		$numb_prav0 = $row2['right_otv'];
		$numb_add = $row2['prin_vop'];
$numb_prav = ($numb_zad) ?  $numb_prav0 . ' (' . sprintf("%.2f", $numb_prav0*100/$numb_zad).'%)' : 0;
$numb_prav1 = ($numb_zad) ?  sprintf("%.1f", $numb_prav0*100/$numb_zad).'%' : 0;
$time_prev = $row2['start_time'];

				$title_time = $lang['qz_time_requir'] . $conf_min_time . $lang['qz_minutes3'];
				$helps = $lang['qz_helps_u1'];
				if ( (date("U")-$time_prev)/60 >= $conf_min_time AND $on_off AND $conf_on_off)
				{
				$go_dis = 'onClick="window.open(\'question.php\',\'add_user\',\'width=600, height=300, resizable=no, scrollbars=no, status=no, toolbar=no, menubar=no\'); void(0); return false;"';
				$title_time = '';
				$helps = '';
				}
	$sql = "SELECT COUNT(*) as numb_wait FROM " . QUESTIONS_TEMP_TABLE . " WHERE author = $user_id";
	if(!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, $lang['qz_obloms']."012", "", __LINE__, __FILE__, $sql);
	}
	$row3 = $db->sql_fetchrow($result);
	$numb_wait = $row3['numb_wait'];

	if ($numb_wait>$conf_max_numb_temp-1) 
	{
		$dis2='disabled';
		$helps = $lang['qz_helps_u2'];
	}
}

if ($count_user == 0)
{
$dis1 = '';
$dis2 = '';
$name1= $lang['qz_user_on'];
$helps = $lang['qz_helps_u3'];
$not_user = 1;
}

}

if (!$userdata['session_logged_in'] && $user_id == ANONYMOUS)
{
$name1= $lang['qz_user_on'];
$name2= $lang['qz_but_send'];
$name3= $lang['qz_but_adm'];
$name4= $lang['qz_but_my'];
$dis1 = 'disabled';
$dis2 = 'disabled';
$dis3 = 'disabled';
$dis4 = 'disabled';
$go_dis = 'disabled';
$title_time = $lang['qz_for_guests'];
$helps = $lang['qz_helps_u4'];
$not_user = 1;
}

if (!$helps AND $numb_prav0<$conf_right_rating)
{
$helps = $lang['qz_not_best'] . $conf_right_rating . $lang['qz_right_ans0'];
}

	$template->assign_vars(array(
			'DIS1' => $dis1,
			'DIS2' => $dis2,
			'DIS3' => $dis3,
			'DIS4' => $dis4,

			'L_ABOUT' => $lang['qz_about'],	
			'L_DESC1' => $lang['qz_desc1'],		
			'L_DESC2' => $lang['qz_desc2'],	
			'L_BONUS' => $lang['qz_about_bonus'],
			'L_MY_ACTS' => $lang['qz_my_acts'],
			'L_GAME_NOW' => $lang['qz_game_now'],
			'L_USE_BONUS' => $lang['qz_use_bonus'],
			'L_ALL_STAT' => $lang['qz_all_stat'],
			'L_MY_STAT' => $lang['qz_my_stat'],
			'L_COSTR' => $lang['qz_cost_right'],
	
			'L_PROM' => $lang['qz_prom'],
			'L_ALL_ZAD' => $lang['qz_all_zad'],
			'L_BEST' => $lang['qz_best'],
			'L_MY_ADDS' => $lang['qz_my_adds'],
			'L_WAIT' => $lang['qz_wait_mod'],
			'L_ZADANO' => $lang['qz_zadano'],
			'L_PRAV' => $lang['qz_my_prav'],

			'L_M' => $lang['qz_minutes'],
			'L_COPYR' => $lang['qz_co'],

			'GO_DIS' => $go_dis,
			'TITLE_TIME' => $title_time,
			'TIME_MIN' => $conf_min_time,
			'HELPS' => $helps,
			'SUM_VOP' => ($all_sum_vop) ? $all_sum_vop : 0,
			'NUMB_VOP' => $numb_all,
			'COST_RIGHT_POINTS' => $conf_cost_right . ' ' . $points_name,

			'RATE_INFO' => $info_rate,

			'N1' => (!$not_user) ? $numb_zad : 0,
			'N2' => (!$not_user) ? $numb_prav : 0,
			'N2-1'=>(!$not_user) ? $numb_prav1 : 0,
			'N3' => (!$not_user) ? $numb_add : 0,
			'N4' => (!$not_user) ? $numb_wait : 0,

			'NAME1' => $name1,
			'NAME2' => $name2,
			'NAME3' => $name3,
			'NAME4' => $name4

	));

	$template->assign_block_vars('', array());
include($phpbb_root_path . 'includes/page_header.' . $phpEx);

$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.' . $phpEx);

?>