Page d'accueil de l'administration

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.
Pour toute la partie administration nous utiliserons le fichier "index.php" du dossier "admin" du gabarit que vous avez théoriquement télécharger et qui nous servira donc de point de départ pour la plupart des fichier que nous allons créer. Il vous faut donc garder une copie de ce fichier!

Etape 1 :

Déplacez l'intégralité du dossier "admin" du gabarit dans le dossier "FREE" sous Wamp.

Etape 2 :

Créez un fichier nommé "fonctions.php" contenant les variables suivantes :
//------------Variables à compléter------------------>
//Nombre d'article à afficher par page dans les catégories (pagination) : de 1 à ...
$messagesParPage = '10';
 
//Nombre d'article à afficher en page d'accueil : de 0 à ...
$nombre_article_accueil = '5';
 
//Afficher le lien vers le formulaire de contacte 0=non et 1=oui
$afficher_lien_formulaire_contacte = '1';
 
//Adresse email du site
$adresse_email = '';
 
//Votre pseudo pour répondre aux commentaires
$pseudo_admin = "admin";
Enregistrez le fichier dans le dossier "FREE" (FREE étant la racine du site).

Etape 3 :

Ouvrez le fichier "index.php" du dossier "admin".

Dans ce fichier, nous allons faire en sorte  :
  • d'avoir un visuel du nombre de commentaire en attente.
  • d'avoir un accès aux modifications et suppressions des catégories.
  • d'avoir un visuel du nombre d'article dans chaque catégories.
  • d'avoir un visuel lié aux articles en attentes de validation.
  • d'accéder aux articles de la catégorie affiché.
  • d'avoir un visuel de la configuration du site.
Etape 4 :

On inclue le fichier des fonctions ainsi que le fichier de connexion.
<?php
include('../fonctions.php');
//On se connecte à la base de données
include('../connexion_bd.php');
connexion_bd();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr-fr">
 
<head>
 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css"/>
<title>Administration</title>
 
</head>
 
<body>
 
<div id="moncadre">
 
<?php include('menu.php');?>
 
<div class="cadrecentrale">
 
<h1>Administration</h1>
 
</div><!--cadrecentrale-->
 
<?php include('footer.php');?>
 
</div><!--moncadre-->
 
</body>
 
</html>
En dessous de "H1" commence le code PHP.

Dans un premier, on calcul le nombre de commentaire en attente :
<?php
    $commentaire_en_attente = mysql_query("SELECT id FROM COMMENTAIRE WHERE validation='0'");
    $total_commentaire_en_attente = mysql_num_rows($commentaire_en_attente);
    echo '<p>Commentaire en attente : '.$total_commentaire_en_attente.'</p>';
On sélectionne ensuite les données des catégorie et si rien n'est retourné, on en informe le webmaster :
//On sélectionne les données des catégories
$result = mysql_query("SELECT id,nom_categorie,titre_rewrite FROM CATEGORIES ORDER BY id ASC");
//Si rien, on informe le webmaster
if(mysql_num_rows($result) == 0)
{
    echo '<div class="cadre"><p>Aucune catégorie pour le moment! <b>>><a title="Ajouter une cat&eacute;gorie" href="ajouter-categorie.php">Ajouter une cat&eacute;gorie</a></b></p></div>';
}
...et à l'inverse si il y a quelque chose, on affiche les données :
//Il y a quelque chose, on affiche
else {
    echo '<table style="width: 100%;" cellpadding="2" cellspacing="2"> <tbody>     <tr>     <td class="hauttd">Cat&eacute;gories</td>     <td class="hauttd">Modifier</td>     <td class="hauttd">Supprimer</td>     </tr>';
    while($affiche = mysql_fetch_array($result))
    {
        //On calcul le nombre d'article dans chaque catégorie
        $result1 = mysql_query("SELECT id_categorie FROM CONTENU WHERE id_categorie=".$affiche['id']."");
        $total = mysql_num_rows($result1);
        //On vérifie si la catégorie contient des articles en attentes
        $result2 = mysql_query("SELECT id FROM CONTENU WHERE id_categorie=".$affiche['id']." AND valide='non'");
        $attente = mysql_num_rows($result2);
        if($attente != 0)
        { 
            $attente = '<span class="article-attente"></span>';
        }
        else
        {
            $attente = '<span class="article-ok"></span>';
        }
        //Fin du calcul
        //On affiche les données
        echo '<tr><td>'.$attente.'<a href="voir-categorie.php?id='.$affiche['id'].'">'.$affiche['nom_categorie'].'</a><span style="float:right;">('.$total.')</span></td>     <td><a href="modifier-categorie.php?id='.$affiche['id'].'&rewrite='.$affiche['titre_rewrite'].'"><img src="images/modifier.png" alt="Modifier"/></a></td>     <td><a href="supprimer-categorie.php?id='.$affiche['id'].'&rewrite='.$affiche['titre_rewrite'].'"><img src="images/supprimer.png" alt="Supprimer"/></a></td></tr>';
    }
    echo '</tbody></table>';
    //On ferme else
}
On ajoute ensuite quelques informations à destination du webmaster contenu dans le fichier des fonctions et qui sera par la suite directement modifiable via l'administration :
//On ajoute quelques infos
echo '<h1>Informations du fichier <a href="modifier-site.php?fichier=fonctions.php">fonctions.php</a></h1>';
echo '<p>Nombre d\'article affiché par page dans les catégories : ';
if(empty($messagesParPage)){ 
    echo '<span class="article-attente"></span>Vous devez renseigner un chiffre supérieure à zéro!</p>';
} 
else{
    echo ''.$messagesParPage.'</p>';
}
 
echo '<p>Nombre d\'article affiché en page d\'accueil : ';
if(is_numeric($nombre_article_accueil)){
    echo ''.$nombre_article_accueil.'</p>';
}
else{
    echo '<span class="article-attente"></span>Vous devez renseigner un chiffre!</p>';
}
 
echo '<p>Lien vers le formulaire de contacte : ';
if($afficher_lien_formulaire_contacte==1){ 
    echo 'Affiché</p>';
} 
else{ 
    echo 'Non affiché</p>';
}
 
echo '<p>Adresse email : ';
if(!empty($adresse_email)){ 
    echo ''.$adresse_email.'</p>';
} 
else{ 
    echo '<span class="article-attente"></span>Aucune adresse email renseigné</p>';
}
 
if($afficher_lien_formulaire_contacte==1 AND empty($adresse_email)){
    echo '<p><span class="article-attente"></span>Vous affichez le formulaire de contacte mais aucune adresse email n\'est renseigné!</p>';
}
 
echo '<p>Pseudo utilisé pour répondre aux commentaires : ';
if(!empty($pseudo_admin)){ 
    echo ''.$pseudo_admin.'</p>';
} 
else{ 
    echo '<span class="article-attente"></span>Aucun pseudo renseigné</p>';
}
?>
Le fichier "index.php" dans son ensemble :
<?php
include('../fonctions.php');
//On se connecte à la base de données
include('../connexion_bd.php');
connexion_bd();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr-fr">
 
<head>
 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css"/>
<title>Administration</title>
 
</head>
 
<body>
 
<div id="moncadre">
 
<?php include('menu.php');?>
 
<div class="cadrecentrale">
 
<h1>Administration</h1>
 
<?php
    $commentaire_en_attente = mysql_query("SELECT id FROM COMMENTAIRE WHERE validation='0'");
    $total_commentaire_en_attente = mysql_num_rows($commentaire_en_attente);
    echo '<p>Commentaire en attente : '.$total_commentaire_en_attente.'</p>';
//On sélectionne les données des catégories
$result = mysql_query("SELECT id,nom_categorie,titre_rewrite FROM CATEGORIES ORDER BY id ASC");
//Si rien, on informe le webmaster
if(mysql_num_rows($result) == 0)
{
    echo '<div class="cadre"><p>Aucune catégorie pour le moment! <b>>><a title="Ajouter une cat&eacute;gorie" href="ajouter-categorie.php">Ajouter une cat&eacute;gorie</a></b></p></div>';
}
//Il y a quelque chose, on affiche
else {
 
    echo '<table style="width: 100%;" cellpadding="2" cellspacing="2"> <tbody>     <tr>     <td class="hauttd">Cat&eacute;gories</td>     <td class="hauttd">Modifier</td>     <td class="hauttd">Supprimer</td>     </tr>';
    while($affiche = mysql_fetch_array($result))
    {
        //On calcul le nombre d'article dans chaque catégorie
        $result1 = mysql_query("SELECT id_categorie FROM CONTENU WHERE id_categorie=".$affiche['id']."");
        $total = mysql_num_rows($result1);
        //On vérifie si la catégorie contient des articles en attentes
        $result2 = mysql_query("SELECT id FROM CONTENU WHERE id_categorie=".$affiche['id']." AND valide='non'");
        $attente = mysql_num_rows($result2);
        if($attente != 0)
        { 
            $attente = '<span class="article-attente"></span>';
        }
        else
        {
            $attente = '<span class="article-ok"></span>';
        }
        //Fin du calcul
        //On affiche les données
        echo '<tr><td>'.$attente.'<a href="voir-categorie.php?id='.$affiche['id'].'">'.$affiche['nom_categorie'].'</a><span style="float:right;">('.$total.')</span></td>     <td><a href="modifier-categorie.php?id='.$affiche['id'].'&rewrite='.$affiche['titre_rewrite'].'"><img src="images/modifier.png" alt="Modifier"/></a></td>     <td><a href="supprimer-categorie.php?id='.$affiche['id'].'&rewrite='.$affiche['titre_rewrite'].'"><img src="images/supprimer.png" alt="Supprimer"/></a></td></tr>';
    }
    echo '</tbody></table>';
    //On ferme else
}
 
//On ajoute quelques infos
echo '<h1>Informations du fichier <a href="modifier-site.php?fichier=fonctions.php">fonctions.php</a></h1>';
echo '<p>Nombre d\'article affiché par page dans les catégories : ';
if(empty($messagesParPage)){ 
    echo '<span class="article-attente"></span>Vous devez renseigner un chiffre supérieure à zéro!</p>';
} 
else{
    echo ''.$messagesParPage.'</p>';
}
 
echo '<p>Nombre d\'article affiché en page d\'accueil : ';
if(is_numeric($nombre_article_accueil)){
    echo ''.$nombre_article_accueil.'</p>';
}
else{
    echo '<span class="article-attente"></span>Vous devez renseigner un chiffre!</p>';
}
 
echo '<p>Lien vers le formulaire de contacte : ';
if($afficher_lien_formulaire_contacte==1){ 
    echo 'Affiché</p>';
} 
else{ 
    echo 'Non affiché</p>';
}
 
echo '<p>Adresse email : ';
if(!empty($adresse_email)){ 
    echo ''.$adresse_email.'</p>';
} 
else{ 
    echo '<span class="article-attente"></span>Aucune adresse email renseigné</p>';
}
 
if($afficher_lien_formulaire_contacte==1 AND empty($adresse_email)){
    echo '<p><span class="article-attente"></span>Vous affichez le formulaire de contacte mais aucune adresse email n\'est renseigné!</p>';
}
 
echo '<p>Pseudo utilisé pour répondre aux commentaires : ';
if(!empty($pseudo_admin)){ 
    echo ''.$pseudo_admin.'</p>';
} 
else{ 
    echo '<span class="article-attente"></span>Aucun pseudo renseigné</p>';
}
?>
</div><!--cadrecentrale-->
 
<?php include('footer.php');?>
 
</div><!--moncadre-->
 
</body>
 
</html>
Dans la foulé, nous allons créer des liens de navigations dans le menu...comme ça, ça sera fait . Ouvrez le fichier "menu.php" du dossier "admin" et insérez y les liens suivants :
<ul>
<li><a class="menu" title="Administration" href="index.php">Administration</a></li>
<li><a class="menu" title="Index" href="admin-index.php">Gestion page d'accueil</a></li>
<li><a class="menu" title="Ajouter une cat&eacute;gorie" href="ajouter-categorie.php">Ajouter une cat&eacute;gorie</a></li>
<li><a class="menu" title="Ajouter une page" href="ajouter-page.php">Ajouter une page</a></li>
<li><a class="menu" title="Modifier le site" href="modifier-site.php">Modifier le site</a></li>
<li><a class="menu" title="Commentaire" href="commentaire.php">Commentaire</a></li>
<li><a class="menu" title="Sortir" href="http://<?php echo $_SERVER['HTTP_HOST'];?>">Sortir de l'admin.</a></li> </ul>
Note : Pour les class CSS utilisés dans le code, reportez vous au fichier "style.css" du dossier "admin".

Voir/déposer un commentaire (5) | Signaler un problème