Récapitulatif sur la réorganisation du site ! - Partie 3

Ce topic permet d'afficher clairement les news qui sont sur le site.
Règles du forum
Ce topic permet à tous le monde de créer ses news. Celles-ci seront directement afficher sur le site lui même. C'est pourquoi chaque news devra être validée par un modérateur ou par l'administrateur avant que celle-ci n'apparaisse. Ne vous étonnez donc pas si votre news n'est pas visible immédiatement (elle le sera dans les minutes qui suivent !).

ATTENTION: Vous ne pouvez pas poster de sujet simple. Il vous faudra obligatoirement cocher la case "Annonce" (et non pas annonce globale) qui se trouve sous votre message pour que votre news soient acceptées !

Récapitulatif sur la réorganisation du site ! - Partie 3

Message par Martial » 22 Mai 2009, 01:57

Ouahh !!! Qu'est-ce que c'est que ce bordel encore ... :( Je suis si bavard que ça que je doive faire ça sur 3 sujets ?! Bref, redésolé pour la coupure... :fixe:

Passons aux choses sérieuses, le cœur du site: index.php

Mouahahahaha, maintenant que vous êtes à peu près renseigné sur le fonctionnement du site, je vais pouvoir vous montrer réellement où se situe toute l'ingéniosité de cette nouvelle réorganisation ! Je l'ai déjà dit est répété à mainte reprise, mais le fichier "index.php", qui est le seul fichier PHP qui se trouve à la racine du site, est le fichier de base par lequel TOUTES les pages du site passent. On pourrait donc l'appeler le "cœur" car si jamais la page d'index contient une erreur, rien ne peut être accessible sur le site, que ce soit les systèmes ou les sections !

Bon, je ne m'attend pas à ce que vous compreniez tout d'un coup, mais je préfère poster le contenu du fichier "index.php" avant de vous expliquer par étape comment est-ce que j'ai procédé !

Code : Tout sélectionner
<?php

// Initialisation
include 'includes/init.php';

// Début de la tamporisation de sortie
ob_start();

$titre_page =  'Final-RPG';

// On vérifie que le site est activé dans le fichier includes/config.php
if(ACTIVE_SITE == TRUE | $auth->acl_get('a_')){

    // On regarde si une variable GET est définie dans l'URL
    
    if
(!empty($_GET)){
    
    
/********************************************** Les sections ***************************************************/
    
    
// Si une section est demandée, on regarde si elle existe
    
    
    
        if
(isset($_GET['section'])){
            
        
/*************************************** La page d'accueil *****************************************/
            
            if
(($_GET['section'] == 'accueil' | $_GET['section'] == 'index') && file_exists(CHEMIN_PAGES . 'autres/accueil.php')){
            
                include
(CHEMIN_PAGES . 'autres/accueil.php');
                
            
}
            
        
/************************************** Pages diverses *********************************************/
            
            elseif
($_GET['section'] == 'recrutement' && file_exists(CHEMIN_PAGES . 'autres/recrutement.php')){
            
                include
(CHEMIN_PAGES . 'autres/recrutement.php');
                
            
}
            
            elseif
($_GET['section'] == 'historique' && file_exists(CHEMIN_PAGES . 'autres/historique.php')){
            
                include
(CHEMIN_PAGES . 'autres/historique.php');
                
            
}
            
            elseif
($_GET['section'] == 'equipe' && file_exists(CHEMIN_PAGES . 'autres/equipe.php')){
            
                include
(CHEMIN_PAGES . 'autres/equipe.php');
                
            
}
            
            elseif
($_GET['section'] == 'annuaire' && file_exists(CHEMIN_PAGES . 'autres/annuaire.php')){
            
                include
(CHEMIN_PAGES . 'autres/annuaire.php');
                
            
}
        
            elseif
($_GET['section'] == 'page_indisponible' && file_exists(CHEMIN_PAGES . 'autres/page_indisponible.php')){
            
                include
(CHEMIN_PAGES . 'autres/page_indisponible.php');
                
            
}
            
        
/***************************************** Les modules ********************************************/
            
            
/* Administration */
            
            elseif
($_GET['section'] == 'admin' && file_exists(CHEMIN_MODULES . 'admin/admin.php')){
                
                if
($auth->acl_get('a_')){
            
                    include
(CHEMIN_MODULES . 'admin/admin.php');
                
                
}
                
                else
{
                
                    include
(CHEMIN_MODULES . 'erreurs/erreurs/403.php');
                
                
}
            
            
}
            
            
/* Formulaire de contact */
            
            elseif
($_GET['section'] == 'contact' && file_exists(CHEMIN_MODULES . 'contact/contact.php')){
                
                $nom_systeme 
= 'Contact';    
                
                $nom_systeme_petit 
= 'contact';
                
                if
(ACTIVE_CONTACT == TRUE | $auth->acl_get('a_')){
                
                    $titre_page 
= $nom_systeme . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_CONTACT . 'contact/' . $_GET['page'] . SEPARATEUR_FICHIER . $nom_systeme_petit . '.php')){
                        
                        include
(CHEMIN_CONTACT . 'contact/' . $_GET['page'] . SEPARATEUR_FICHIER . $nom_systeme_petit . '.php');
                        
                        if
($_GET['page'] == 'mail'){
                        
                            $temps 
= 2;
                            
                            $page 
= "contact.html";
                            
                            header
('Refresh: ' . $temps . '; URL= ' . $page);
                        
                        
}
                    
                    
}
                    
                    else
{
                    
                        include
(CHEMIN_CONTACT . 'contact.php');
                    
                    
}
                    
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/systeme_ferme.php');
                
                
}
            
            
}
            
            
/* Fin du formulaire de contact */        
            
            
/* Livre d'or */
            
            elseif
($_GET['section'] == 'livreor' && file_exists(CHEMIN_LIVREOR . 'livreor.php')){
                
                $nom_systeme 
= 'Livre d\'Or';
                
                $nom_systeme_petit 
= 'livreor';
                
                if
(ACTIVE_LIVREOR == TRUE | $auth->acl_get('a_')){
                    
                    $titre_page 
= $nom_systeme . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_LIVREOR . 'livreor/' . $_GET['page'] . SEPARATEUR_FICHIER . $nom_systeme_petit . '.php')){
                    
                        include
(CHEMIN_LIVREOR . 'livreor/' . $_GET['page'] . SEPARATEUR_FICHIER . $nom_systeme_petit . '.php');
                        
                        if
($_GET['page'] == 'verification'){
                            
                            $temps 
= 3;
            
                            $page 
= "livreor.html";
            
                            header
('Refresh: ' . $temps . '; URL= ' . $page);
    
                        
}
                    
                    
}
                    
                    else
{
                        
                        include
(CHEMIN_LIVREOR . 'livreor.php');
                
                    
}

                }
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/systeme_ferme.php');
                
                
}
            
            
}
            
            
/* Fin du Livre d'or */
            
            
            
            
/* Gestion des erreurs */
            
            elseif
($_GET['section'] == 'erreurs' && file_exists(CHEMIN_ERREURS . 'erreurs.php')){
                
                include
(CHEMIN_ERREURS . 'erreurs.php');
            
            
}
            
            
/* Fin de la gestion des erreurs */
            
            
/* Espace membre */
            
            
            elseif
($_GET['section'] == 'connexion_membre' && file_exists(CHEMIN_ESPACE_MEMBRE . 'connexion/connexion_membre.php')){
                
                if
($user->data['is_registered']){
                    
                    page_interdite
('Vous êtes déjà connecté !', 'Vous êtes déjà connecté, vous n\'avez rien à faire sur cette page !');
                            
                
}
                
                else
{
                
                    include
(CHEMIN_ESPACE_MEMBRE . 'connexion/connexion_membre.php');
                    
                
}
            
            
}    
            
            
            
            
/* Fin de l'espace membre */
            
            
/* Système de news */
            
            
            elseif
($_GET['section'] == 'news' && file_exists(CHEMIN_NEWS . 'news.php')){
                
                $nom_systeme 
= 'News';
                
                $nom_systeme_petit 
= 'news';
                
                if
(ACTIVE_NEWS == TRUE | $auth->acl_get('a_')){
                    
                    $titre_page 
= $nom_systeme . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_NEWS . 'news/' . $_GET['page'] . SEPARATEUR_FICHIER . $nom_systeme_petit . '.php')){
                        
                        include
(CHEMIN_NEWS . 'news/' . $_GET['page'] . SEPARATEUR_FICHIER . $nom_systeme_petit . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_NEWS . 'news.php');
                    
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/systeme_ferme.php');
                
                
}
            
            
}
            
            
/* Fin du système de news */
            
            
/* Téléchargements */
        
            elseif
($_GET['section'] == 'telecharger' && file_exists(CHEMIN_TELECHARGER . '/telecharger.php')){
                
                include
(CHEMIN_TELECHARGER . 'telecharger.php');
            
            
}
            
            
            
/* Fin téléchargements */
            
            
            
            
/************************************** Fin des modules ********************************************/
            
            
/************************************** Le contenu *************************************************/
            
            
// Si la section existe, on regarde quelle page de cette section est demandée
            
            elseif
($_GET['section'] == 'final_fantasy_1'){
                
                
// On définit le nom de la section visitée => sera utile si celle-ci est désactivé (cf: /pages/autres/section_ferme.php) ainsi que pour le nom du menu spécifique
        
                $nom_section 
= 'Final fantasy I';
                
                
// On affiche le contenu uniquement si la section est activé (ou si c'est l'administrateur)
                
                if
(ACTIVE_FF1 == TRUE | $auth->acl_get('a_')){
                
                    
// On fixe la valeur du menu et du titre en fonction de la section visitée
                    
                    $type_menu 
= 'ff1';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF1 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                        
                        
// On vérifie que la page demandée existe bien sur le serveur => évite les inclusions de pages extérieurs
                                   
                        include
(CHEMIN_FF1 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{ // Si non, on inclut la page par défaut de la section
                        
                
                        include
(CHEMIN_FF1 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{ // Si la section est fermée et que ce n'est pas l'administrateur qui veut la voir, on affiche la page section_ferme.php
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_2'){
        
                $nom_section 
= 'Final fantasy II';
                
                if
(ACTIVE_FF2 == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'ff2';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF2 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                        
                        echo 
'Chemin FF2:' . CHEMIN_FF2 . '<br />';
                        
                        echo 
'Nom du fichier à inclure: ' . CHEMIN_FF2 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php' . '<br />';
                                   
                        include
(CHEMIN_FF2 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF2 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                    
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_3'){
        
                $nom_section 
= 'Final fantasy III';
                
                if
(ACTIVE_FF3 == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'ff3';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF3 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF3 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF3 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_4'){
        
                $nom_section 
= 'Final fantasy IV';
                
                if
(ACTIVE_FF4 == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'ff4';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF4 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF4 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF4 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_5'){
        
                $nom_section 
= 'Final fantasy V';
                
                if
(ACTIVE_FF5 == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'ff5';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF5 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF5 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF5 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_6'){
        
                $nom_section 
= 'Final fantasy VI';
                
                if
(ACTIVE_FF6 == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'ff6';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF6 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF6 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF6 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_7'){
        
                $nom_section 
= 'Final fantasy VII';
                
                if
(ACTIVE_FF7 == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'ff7';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF7 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF7 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF7 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_8'){
        
                $nom_section 
= 'Final fantasy VIII';
                
                if
(ACTIVE_FF8 == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'ff8';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF8 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF8 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF8 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_9'){
        
                $nom_section 
= 'Final fantasy IX';
                
                if
(ACTIVE_FF9 == TRUE | $auth->acl_get('a_')){    
                
                    $type_menu 
= 'ff9';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF9 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF9 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF9 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_10'){
        
                $nom_section 
= 'Final fantasy X';
                
                if
(ACTIVE_FF10 == TRUE | $auth->acl_get('a_')){    
                
                    $type_menu 
= 'ff10';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF10 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF10 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF10 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_10_2'){
        
                $nom_section 
= 'Final fantasy X-2';
                
                if
(ACTIVE_FF10_2 == TRUE | $auth->acl_get('a_')){    
                
                    $type_menu 
= 'ff10_2';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF10_2 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF10_2 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF10_2 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_11'){
        
                $nom_section 
= 'Final fantasy XI';
                
                if
(ACTIVE_FF11 == TRUE | $auth->acl_get('a_')){    
                
                    $type_menu 
= 'ff11';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF11 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF11 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF11 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_12'){
        
                $nom_section 
= 'Final fantasy XII';
                
                if
(ACTIVE_FF12 == TRUE | $auth->acl_get('a_')){    
                
                    $type_menu 
= 'ff12';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF12 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF12 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF12 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            elseif
($_GET['section'] == 'final_fantasy_13'){
        
                $nom_section 
= 'Final fantasy XIII';
                
                if
(ACTIVE_FF13 == TRUE | $auth->acl_get('a_')){    
                
                    $type_menu 
= 'ff13';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FF13 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FF13 .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FF13 .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
            
            
// La saga des Crystal Chronicles -- Page de transition
            elseif($_GET['section'] == 'saga_final_fantasy_crystal_chronicles'){
                
                $type_menu 
= 'ffcc';
                
                include
(CHEMIN_FFCC .  'saga_final_fantasy_crystal_chronicles.php');
            
            
}
            
            
//Final fantasy Crystal Chronicles: Echoes of Time
            elseif($_GET['section'] == 'final_fantasy_crystal_chronicles_echoes_of_time'){
                
                $nom_section 
= 'Final fantasy Crystal Chronicles: Echoes of Time';
                
                if
(ACTIVE_FFCC_EOT == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'ffcc_eot';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FFCC_EOT .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FFCC_EOT .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FFCC_EOT .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
        
            
//Final fantasy Crystal Chronicles: Ring of Fates
            elseif($_GET['section'] == 'final_fantasy_crystal_chronicles_ring_of_fates'){
        
                $nom_section 
= 'Final fantasy Crystal Chronicles: Ring of Fates';
                
                if
(ACTIVE_FFCC_ROF == TRUE | $auth->acl_get('a_')){
                    
                    $type_menu 
= 'ffcc_rof';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_FFCC_ROF .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_FFCC_ROF .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    else
{
                
                        include
(CHEMIN_FFCC_ROF .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                    
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
            
            
}
            
        
/********************************** Les sections sur RPG Maker et le Making *****************************************/
                
            
//RPG Maker XP
            elseif($_GET['section'] == 'rpg_maker_xp'){
                
                $nom_section 
= 'RPG Maker XP';
                
                if
(ACTIVE_RMXP == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'rmxp';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_RMXP .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_RMXP .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    
// On se trouve dans la section RPG Maker, mais la page demandé n'existe pas (ou alors on ne demande pas de page) 
                    // => dans les deux cas, on affiche la page par défaut !
                    else{
                
                        include
(CHEMIN_RMXP .  'presentation' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
                
            
}
            
            
//RPG Maker VX
            elseif($_GET['section'] == 'rpg_maker_vx'){
    
                $nom_section 
= 'RPG Maker VX';
                
                if
(ACTIVE_RMVX == TRUE | $auth->acl_get('a_')){
                    
                    $type_menu 
= 'rmvx';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_RMVX .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_RMVX .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    
// On se trouve dans la section RPG Maker, mais la page demandé n'existe pas (ou alors on ne demande pas de page) 
                    // => dans les deux cas, on affiche la page par défaut !
                    else{
                
                        include
(CHEMIN_RMVX .  'presentation' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}            
                
            
}
        
        
/********************************** Fin des sections sur RPG Maker et le Making *****************************************/
        
        
/********************************** Autres RPG *****************************************/
            
            
//La saga des Zelda -- Page de transition
            elseif($_GET['section'] == 'zelda'){
                
                $nom_section 
= 'Zelda';
                
                if
(ACTIVE_ZELDA == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'zelda';
                    
                    include
(CHEMIN_ZELDA . 'zelda.php');
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
                
            
}
        
            
//Zelda Twilight Princess
            elseif($_GET['section'] == 'zelda_tp'){
                
                $nom_section 
= 'Zelda Twilight Princess';
                
                if
(ACTIVE_ZELDA_TP == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'zelda_tp';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_ZELDA_TP .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_ZELDA_TP .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    
// On se trouve dans la section RPG Maker, mais la page demandé n'existe pas (ou alors on ne demande pas de page) 
                    // => dans les deux cas, on affiche la page par défaut !
                    else{
                
                        include
(CHEMIN_ZELDA_TP .  'introduction' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
                
            
}
            
            
            
// la variable $_GET['section'} existe, mais aucune page ne correspond
            else{
            
                include
(CHEMIN_MODULES .  'erreurs/erreurs/404.php');
            
            
}
            
        
}
        
        
/****************************************************************************************************************/
        
        
//Aucune section ni module n'a été demandé, on inclut la page d'accueil
        else{
            
            include
(CHEMIN_MODULES .  'erreurs/erreurs/404.php');
            
        
}
    
    
}
    
    
// Si aucune variable GET n'a été donnée => on inclut la page d'accueil (évite les erreurs 404 répétitives !)
    
    else
{
        
        include
(CHEMIN_PAGES . 'autres/accueil.php');
    
    
}

}

// Si le site est désactivé dans le fichier includes/config.php
else{

    include(CHEMIN_PAGES . 'autres/site_ferme.php');

}


// Fin de la tamporisation de sortie -> récupération du contenu de la page
$contenu = ob_get_clean();

// Début du code HTML
include(CHEMIN_INCLUDES . 'haut.php');

//Affichage du contenu
echo $contenu;

// Fin du code HTML
include(CHEMIN_INCLUDES . 'bas.php');

?>


La première ligne sert à inclure le fichier "init.php". Il s'appelle comme ça car c'est le fichier d'initialisation, dans lequel on va inclure d'autres fichiers comme "session.php" et "fonctions.php". Il est aussi censé charger des librairies, mais comme je vous l'ai dit plus haut, je n'en ai pas utilisé pour le moment. Au moins, je sais où est-ce qu'il faudra que je les inclus ! :)

La seconde ligne "ob_start()" ouvre la tamporisation de sortie (tamporisation et non temporisation ! Il s'agit d'absorber comme un tampon et non de faire attendre le programme). Derrière ces termes qui parlent peu à première vu se cache une idée très simple. Toutes les variables se trouvant des des pages incluent entre "ob_start()" et "ob_get_clean()" peuvent être récupérées ! Vous devez sans doute vous demander à quoi ça peut bien servir. Bien c'est simplement pour le titre de la page. Oui, comme le contenu va être inclut au milieu de la page, le header avec les balises <title></title> qui permettent de définir le titre de la page, sera beaucoup plus haut. Il serait donc impossible de mettre un titre à la page en fonction du contenu inclut. Du moins, ça serait le cas si la tamporisation de sortie n'existait pas. Ainsi, pour chaque page de contenu on a:

Code : Tout sélectionner
<?php

$titre_page 
= 'Cartes' . SEPARATEUR_TITRE . $titre_page; //Définition du titre de la page

?>


Ce code apparaît donc au-dessus de chacune des pages de contenu du site (avec le texte entre simples guillemets différents pour chaque page).

En parlant du titre de la page, c'est à la troisième ligne de la page "index.php" qu'est définit pour la première fois la variable $titre_page ! Celle-ci prend alors la variable "Final-RPG" => c'est le texte que l'on peut voir tout à la fin de chaque titre sur toutes les pages (vous vous souvenez, la hiérarchie et tout ça :) ).

Ce n'est qu'à partir de la troisième ligne que l'on commence à imbriquer les structures conditionnelles pour savoir quelle page va être incluse ! Avant de regarder cette partie qui est plus complexe que le reste, j'aimerais m'intéresser aux dernière lignes, lorsque la tamporisation de sortie se termine:

Code : Tout sélectionner
<?php
// Fin de la tamporisation de sortie -> récupération du contenu de la page
$contenu = ob_get_clean();

// Début du code HTML
include(CHEMIN_INCLUDES . 'haut.php');

//Affichage du contenu
echo $contenu;

// Fin du code HTML
include(CHEMIN_INCLUDES . 'bas.php');

?>


Ici, c'est vraiment très simple à comprendre ! On voit bien distinctement les différentes parties du site. On comme, dès la fin de la tamporisation de sortie, par inclure "haut.php" qui, comme son nom l'indique, va inclure tout les élément relative à la partie supérieure du site tel que la bannière, le header, etc... Je ne vais pas vous refaire la liste, je l'avais déjà faite plus haut ! Viens ensuite le contenu, contenu qui est inclut beaucoup plus haut mais qui n'est affiché que maintenant ! Puis on fini en fermant par le fichier "bas.php", qui, lui, contient le menu latéral gauche ainsi que la bannière inférieure !

Pour les conditions d'inclusions des pages, je ne vais pas rentrer dans les détails car la nuit commence à être déjà entamer et je ne fais pas le pont ^^ Je vais simplement me contenter de prendre un exemple: la section RPG Maker XP (oui, encore ^^):

Code : Tout sélectionner
<?php

                        
//RPG Maker XP
            elseif($_GET['section'] == 'rpg_maker_xp'){
                
                $nom_section 
= 'RPG Maker XP';
                
                if
(ACTIVE_RMXP == TRUE | $auth->acl_get('a_')){
                
                    $type_menu 
= 'rmxp';
                    
                    $titre_page 
= $nom_section . SEPARATEUR_TITRE . $titre_page;
                    
                    if
(isset($_GET['page']) && file_exists(CHEMIN_RMXP .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_RMXP .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}
                    
                    
// On se trouve dans la section RPG Maker, mais la page demandé n'existe pas (ou alors on ne demande pas de page) 
                    // => dans les deux cas, on affiche la page par défaut !
                    else{
                
                        include
(CHEMIN_RMXP .  'presentation' . SEPARATEUR_FICHIER . $type_menu . '.php');
                
                    
}
                
                
}
                
                else
{
                    
                    include
(CHEMIN_PAGES . 'autres/section_ferme.php');
                
                
}
                
            
}

?>


C'est déjà plus clair quand on en a qu'un :)

Commençons s'en perdre de temps ! Au début, on regarde si la section RPG Maker XP est demandée en regardant la valeur de la variable $_GET['section']. Si c'est le cas, on effectue les opérations que j'expliquerais juste après, sinon, on regarde si la valeur de la variable $_GET['section'] correspond à une autre section. Si on n'a toujours pas de résultat positif, on inclut la page d'accueil !
Bon, revenons en arrière, si la valeur de la variable $_GET['section'] est bien 'rpg_maker_xp', on définit la fonction $nom_section en lui donnant le nom de la section actuelle => "RPG Maker XP", ici. Une chose est sûr, on se trouve dans la section RPG Maker XP ! Juste après, on vérifie que la section a bien été activée dans le fichier /includes/config.php ou bien que l'utilisateur connecté est l'administrateur. Si la section RPG Maker XP est fermée est que ce n'est pas l'administrateur du site qui visite la section, on affiche la page "section_ferme.php", ce qui a pour mérite de fermer TOUTES les pages de la section aux utilisateurs, et non pas uniquement la page de présentation du logiciel ! Si en revanche elle est activé ou que c'est l'administrateur qui visite, on définit 2 variables: $type_menu et $titre_page. La première a une double utilité, elle permet d'indiquer à la page du menu de base "menu.php" quel est le menu à inclure => ce code provient du début de "menu.php":

Code : Tout sélectionner
<?php 

if(isset($type_menu) && file_exists(CHEMIN_MENU . 'menu_' . $type_menu . '.php')){
                                    
    include
(CHEMIN_MENU . 'menu_' . $type_menu . '.php');

}

$type_menu = NULL;

?>


Mais elle permet aussi (la variable $type_menu) de connaître le préfixe utilisé dans les noms de fichiers à inclure ! Car comme vous le savez, chaque page, quelque soit la section, comporte un suffixe qui permet de savoir au premier coup d'oeil à quel section elle appartient. Petit exemple pour vous remettre l'idée en tête: presentation_rmxp.php => c'est la page de présentation de RPG Maker XP.

La variable $titre_page est redéfinie car on y ajoute le nom de la section grâce à la concaténation ! Rien de bien méchant donc.

La dernière structure conditionnelle va s'intéresser à l'existence de la demande d'une page en particulier (avec la variable $_GET['page']). Si rien n'a été trouvé, comme on sait déjà qu'on se trouve dans la section RPG Maker XP, on peut inclure la page par défaut de la section: presentation_rmxp.php en l'occurrence ici !

Si une page est bien demandée, on va vérifié qu'elle existe bien sur le serveur ! Ça me garantie que le site ne peut pas être attaqué par des inclusions de pages extérieurs ! Pour ça, j'ai utilisé la fonction PHP file_exists():

Code : Tout sélectionner
<?php

                    if
(isset($_GET['page']) && file_exists(CHEMIN_RMXP .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php')){
                                   
                        include
(CHEMIN_RMXP .  $_GET['page'] . SEPARATEUR_FICHIER . $type_menu . '.php');
                    
                    
}

?>


Si vous avez compris les constantes et l'histoire des GET, ces lignes devraient pas vous poser de problème !

Eh bien nous voici arriver à la fin de l'analyse de ce fichier !

D'autres modifications ?

Je tenais quand même à signaler que j'ai revu à la hausse les histoires d'encodage en UTF-8 et que j'ai profité de l'occasion pour modifier l'intégralité des pages et que désormais, elles sont toutes encodées en UTF-8 et qu'il n'y a normalement plus de problème de ce côté là !

Et pour la suite ?

Pour la suite, j'ai beaucoup, mais alors beaucoup de projets en tête. Je ne vais pas vous faire une liste complète maintenant car je sens que je fatigue (pardonnez moi toutes les énormes fautes que j'ai pu faire dans ce message :() et que je n'arriverais tout simplement pas à me souvenir de tout ce à quoi j'avais pensé (un peu comme pour ce message, je suis sûr d'avoir oublié pleins de chose !!).

Les plus gros projets auxquels je pensais me mettre dès que je retravaillerais sur le site étaient le système de commentaire de tutoriel ainsi qu'un système pour envoyer ces jeux amateurs (RPG Maker et autres). Je voudrais par ailleurs mettre en place une vrai section Ruby avec une tonne de scripts que les membres pourraient ajouter eux-même (après validation bien sûr :-p ). De même pour les tutoriels, il faudrait faire un système de tutoriel pour permettre à n'importe quel membre du forum d'exposer son savoir faire et nous instruire ! Une page "équipe" pour mettre en avant les gens qui travaillent sur le site ne serait pas de trop non plus, j'avais commencé à en faire une, mais je me suis arrêté en plein milieu. Ce dont je me souviens, c'était que je pensais jouer avec les champs personnalisés dans le profil, que l'on peut rajouter à partir du panneau d'administration ! Ensuite, l'idée de créer un nouveau style sur le site n'est pas mauvaise, d'autant plus que je l'ai dit plus haut, il devient urgent de faire de l'ordre dans les fichiers de style ! Mais pour ça, je pensais pouvoir compter sur Jiji, pourquoi ne revient-il pas ? :(

Et qu'est-ce que tu fais maintenant ?

Arf, j'en viens au plus difficile. Je vais devoir vous faire mes adieux pendant à peu près 1 mois. Oui, durant toutes cette période je me suis promis de travailler pour avoir ce fameux truc de 3 lettres. Certains le savent déjà, mais je suis actuellement en Terminale S et malheureusement, le BAC approche à grand pas, et je crois avoir utilisé le maximum de temps que je pouvais avant de me mettre à réviser... Ce serait un peu concon de le rater à cause du site, nan ?

Donc voilà, je vous préviens que vous n'êtes pas prêt de me revoir :( J'espère que je ne vous manquerais pas trop :p On se revoit pour les vacances d'été ! :)

A bientôt ! :)
L'important n'est pas de connaître mais de savoir trouver !
La gentillesse ou la franchise ? Que choisir ?
Vive les otakus !!
Retourner sur le site
Avatar de l’utilisateur
Martial
Administrateur
Administrateur
 
Message(s) : 2520
Inscription : 10 Nov 2006, 23:41
Localisation : Rambouillet
Meilleurs scores: 12

Re: Récapitulatif sur la réorganisation du site ! - Partie 3

Message par Amathlog » 22 Mai 2009, 19:41

Mais, mais, MAIS ????
En fin de compte je viens de me taper je sais pas combien de lignes pour m'apercevoir que le résultat visuel est égal à : ZERO !
...Pauvre de moi, *va chercher la corde* => :pendu:


Bon on va faire passer mon désespoir au second plan lol
Je te félicite pour ce travail énorme que tu as fait et je c'est bien un miracle que tu ne soit pas décédé sur ton clavier :-p
Bref bravo et moi je retourne me pendre.
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Re: Récapitulatif sur la réorganisation du site ! - Partie 3

Message par Shaolan » 22 Mai 2009, 23:33

je dois avouer que je n'ai rien lu car y a vraiment beaucoup de chose à lire, et quand j'ai vu l' "ascenseur" de défilement être petit, j'ai passé assez vite à un autre sujet.

En tout cas, ben bravo pour ton courage et ta persévérance (on va reprendre les même choses que amathlog ^^)

et puis, vivement que le site s'améliore !

Sore ja Matta !
Avatar de l’utilisateur
Shaolan
Maitre
Maitre
 
Message(s) : 1710
Inscription : 25 Déc 2006, 21:37


Retour vers News

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 4 invité(s)

cron