<?php
// ----------------------------------------------------------------------------------------------------
//			Mod Classement des Sites 
//
//      par Saint-pere  <saintpere5 AT hotmail POINT com> http://www.yep-yop.com
//
//     premiere distribution le Dimanche 26 Février 2006
//
// ----------------------------------------------------------------------------------------------------

if ( !defined('IN_PHPBB') )
{
   die("Hacking attempt");
}
global $lang, $userdata, $board_config, $sites_par_pages, $theme, $id_squelette;
global $HTTP_POST_VARS,$HTTP_GET_VARS,$HTTP_SERVER_VARS;
unset($action);
load_lang('classement_sites');

// ---------------------------------------------
// Données modifiables ....
// ---------------------------------------------
// Nombre de sites par page
$sites_par_pages = 10;
//Nombre de pages maximum
$max_pages = 20;
// Taille maximale de la banniere en octets
$file_max_size = 71000;
// extensions de fichiers autorisées
$authorized_extensions = array('jpg','gif','png'); 
// Taille maximale des bannieres diminuées par GD
$largeur_max = 470;
$hauteur_max = 120;
// Repertoire de destination 
$repertoire_destination = 'areabb/mods/classement_sites/bannieres/';
// ---------------------------------------------
// ne plus rien modifier sans s'y connaitre un minimum
// ---------------------------------------------

// On charge la boite à outils
include( $phpbb_root_path . 'areabb/mods/classement_sites/includes/class_classement.' . $phpEx);
$classite = new ClassClassement(
	$sites_par_pages,
	$max_pages,
	$file_max_size,
	$authorized_extensions,
	$repertoire_destination,
	$largeur_max,
	$hauteur_max
);


//chargement du template
$template->set_filenames(array(
   'classement_sites' => 'areabb/mods/classement_sites/tpl/mod_classement.tpl'
));



// on verifie si un enregistrement du jour existe  déjà 
// on verifie si un enregistrement  de < 36H ( pkoi pas 24 ? parceque ! )
$sql = 'SELECT * FROM '.AREABB_CLASS_SEM.' WHERE date > \''.(time() - 604800).'\'';
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not check classification information', '', __LINE__, __FILE__, $sql);
}
if (($db->sql_numrows($result)) == 0) 
{
	$classite->mise_a_jour_lundi();
}



if (isset($HTTP_POST_VARS['action']) || isset($HTTP_GET_VARS['action']))
{
	if (isset($HTTP_POST_VARS['action'])) 
	{
		$action = $HTTP_POST_VARS['action']; 
	}else{
		$action = $HTTP_GET_VARS['action'];
	}
}
$hidden = $message = '';

//  Affichage du champs de saisie / édition de son site d'arcade
switch ($action)
{
	case 'gestion':
		// On affiche le panneau de gestion
		include_once( $phpbb_root_path . 'areabb/mods/classement_sites/includes/ajouter.' . $phpEx);
		break;
	case 'code':
		// On affiche les codes pour que le user puisse référencer son site
		include_once( $phpbb_root_path . 'areabb/mods/classement_sites/includes/code.' . $phpEx);
		break;
	case 'last':
		// On affiche par ordre décroissant d'inscription
		$param_tri = 'id_site DESC';
		include_once( $phpbb_root_path . 'areabb/mods/classement_sites/includes/listing.' . $phpEx);
		break;
	case 'visites':
		// On affiche en ordre décroissant de visites
		$param_tri = 'clics DESC';
		include_once( $phpbb_root_path . 'areabb/mods/classement_sites/includes/listing.' . $phpEx);
		break;
	case 'effacer':
		// Un admin veut effacer un site
		if ($userdata['user_level'] > 0)
		{
			$sql = 'DELETE FROM '. AREABB_CLASS_SITE .' WHERE id_site='.intval($HTTP_GET_VARS['id']);
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not ERASE classification information', '', __LINE__, __FILE__, $sql);
			}
			$message  = $lang['class_site_efface'];
		}
		break;
	case 'vote':
		// Quelqu'un a-t-il voté ?
		$id_site = intval($HTTP_GET_VARS['site']);
		// On verifie que l'ID du site est bien dans notre liste
		if ($classite->verification_existance_id_site($id_site))
		{
			//On verifie que le votant a pas déjà voté
			if ($classite->verification_vote_24h($id_site) == true)
			{
				// On incrémente le compteur de votes
				$sql = 'UPDATE '.AREABB_CLASS_SITE.' SET votes=votes+1 WHERE id_site='.$id_site ;
				if( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not update classification information', '', __LINE__, __FILE__, $sql);
				}
				$classite->maj_traceur_ip($id_site);
			}else $message  = $lang['class_site_vote_moins_24'];
		}else $message  = $lang['class_site_site_inconnu'];
	case 'listing':
		// On affiche le listing des meilleurs sites par votes
		$param_tri = 'votes DESC, id_site ASC';
	default :
		$action = 'listing';
		$param_tri = 'votes DESC, id_site ASC';
		include_once( $phpbb_root_path . 'areabb/mods/classement_sites/includes/listing.' . $phpEx);
		break;
}
// On affiche le menu des options
include_once( $phpbb_root_path . 'areabb/mods/classement_sites/includes/menu.' . $phpEx);

if ($message != '')
{
	$template->assign_block_vars('message_alerte', array(
		'L_MESSAGE'	=> $lang['L_MESSAGE'],
		'MESSAGE'	=> $message
	));
}
$template->assign_var_from_handle('classement_sites', 'classement_sites');

?> 