Script pour gestion de cours par catégories

Script pour gestion de cours par catégories - PHP - Programmation

Marsh Posté le 27-12-2006 à 07:29:08    

Bonjour à tous.
 
Je suis en train de mettre au point pour mon site, un script de gestion de cours/tutoriels par catégories, c'est assez souple à l'utilisation.
 
La partie administration ressemble à ca : http://www.nextgeneration.fr/images/tutadmin.jpg
 
Je ne sais pas si il existe des scripts plus ou moins similaires, et je me demandais, est-ce qu'a votre avis ça vaudrait le coup de "nettoyer" un peu tout le code, le rendre 100% configurable, et faire un install.php pour le distribuer ?
Ou alors, est-ce que c'est réinventer la roue ?
 
Merci de vos réactions

Reply

Marsh Posté le 27-12-2006 à 07:29:08   

Reply

Marsh Posté le 27-12-2006 à 10:51:52    

est-ce que tu gères une arborescence de catégories où c'est juste des catégories sur 1 seul niveau?
ex de catégories :
+ Programmation (1)
+--- C/C++ (6)
+---+ Web (2)
|     +--- PHP (5)
|     +--- JS (4)
+ Graphisme (3)
...
 
Si c'est le cas, ça pourrait m'intéresser...

Reply

Marsh Posté le 27-12-2006 à 11:05:39    

Vu que le script a été développé (pour l'instant) spécifiquement pour mon site, je n'ai pas de gestion a plusieurs profondeurs. Mais c'est faisable facilement, c'est meme une bonne idée, j'y avais pas pensé !
 
Merci de ta réponse, je te tiendrai au courant.

Reply

Marsh Posté le 27-12-2006 à 11:53:23    

pour la gestion de l'ordre d'affichage des catégories, tu utilises quoi? Un entier de 1 à n et c'est le clic sur les boutons up/down qui met à jour ce nombre? Où alors, tu utilises la précédence (ex : catégorie ID=2 avant catégorie ID=5)

Reply

Marsh Posté le 27-12-2006 à 12:11:58    

J'ai un champ 'ordre' qui sert uniquement a ca. Je trie par swap des valeurs

Reply

Marsh Posté le 27-12-2006 à 13:05:21    

-ThX- a écrit :

J'ai un champ 'ordre' qui sert uniquement a ca. Je trie par swap des valeurs


swap des valeurs? Je vois pas bien ce que c'est.

Reply

Marsh Posté le 27-12-2006 à 13:29:47    

Code :
  1. <?
  2.     require ('config.php');
  3.    
  4.     function connecter()
  5.     {
  6.         include ('config.php');
  7.         @mysql_connect($db_hostname, $db_username, $db_password)
  8.         or die ("Impossible de se connecter à la base de donn&eacute;es, v&eacute;rifier username, toussa" );
  9.         @mysql_select_db($db_name)
  10.         or die ("Impossible de s&eacute;lectionner la base :(" );
  11.     }
  12.     function deconnecter()
  13.     {
  14.         @mysql_close();
  15.     }
  16.     function changeCat($id, $newCat) {
  17.         $newOrder = nextOrderInCategory($newCat);
  18.         @mysql_query("UPDATE tutoriels SET categorie=$newCat WHERE id_tutoriel=$id" );
  19.         @mysql_query("UPDATE tutoriels SET ordre=$newOrder WHERE id_tutoriel=$id" );
  20.     }
  21.     function nextOrderInCategory($category)
  22.     {
  23.         // Returns the next 'ordre' value in $category
  24.         // Useful to add a new tutorial in the database       
  25.        
  26.         $rq = "SELECT * FROM tutoriels WHERE categorie=$category";
  27.         $sql = mysql_query($rq);
  28.         $max = 0;
  29.         while($ligne = mysql_fetch_array($sql)) {
  30.             $max = ($ligne['ordre'] > $max) ? $ligne['ordre'] : $max;
  31.         }
  32.         $max++;
  33.        
  34.         @mysql_free_result($sql);
  35.         return $max;
  36.     }
  37.     function nextCatOrder() {
  38.         $rq = "SELECT * FROM categories";
  39.         $sql = mysql_query($rq);
  40.         $max = 0;
  41.         while($ligne = mysql_fetch_array($sql)) {
  42.             $max = ($ligne['ordre'] > $max) ? $ligne['ordre'] : $max;
  43.         }
  44.         $max++;
  45.        
  46.         @mysql_free_result($sql);
  47.         return $max;
  48.     }
  49.     function previousIDInCategory($id, $category)
  50.     {       
  51.         // Returns, in $category, the ID of the previous entry in database, sorted by order
  52.         $rq = "SELECT * FROM tutoriels WHERE categorie=$category ORDER BY ordre ASC";
  53.         $sql = mysql_query($rq);
  54.        
  55.         while($ligne = mysql_fetch_array($sql)) {
  56.             if ($ligne['id_tutoriel'] == $id)
  57.                 $ret = $last;
  58.             $last = $ligne['id_tutoriel'];
  59.         }
  60.         return $ret;
  61.     }
  62.     function previousCat($id)
  63.     {       
  64.         $rq = "SELECT * FROM categories ORDER BY ordre ASC";
  65.         $sql = mysql_query($rq);
  66.        
  67.         while($ligne = mysql_fetch_array($sql)) {
  68.             if ($ligne['id_categorie'] == $id)
  69.                 $ret = $last;
  70.             $last = $ligne['id_categorie'];
  71.         }
  72.         return $ret;
  73.     }
  74.     function nextIDInCategory($id, $category)
  75.     {       
  76.         // Returns, in $category, the ID of the next entry in database, sorted by order
  77.         $rq = "SELECT * FROM tutoriels WHERE categorie=$category ORDER BY ordre DESC";
  78.         $sql = mysql_query($rq);
  79.        
  80.         while($ligne = mysql_fetch_array($sql)) {
  81.             if ($ligne['id_tutoriel'] == $id)
  82.                 $ret = $next;
  83.             $next = $ligne['id_tutoriel'];
  84.         }
  85.         return $ret;
  86.     }
  87.     function nextCat($id)
  88.     {       
  89.         $rq = "SELECT * FROM categories ORDER BY ordre DESC";
  90.         $sql = mysql_query($rq);
  91.        
  92.         while($ligne = mysql_fetch_array($sql)) {
  93.             if ($ligne['id_categorie'] == $id)
  94.                 $ret = $next;
  95.             $next = $ligne['id_categorie'];
  96.         }
  97.         return $ret;
  98.     }
  99.    
  100.     function monterTuto($id, $cat)
  101.     {   
  102.         $rq = "SELECT * FROM tutoriels WHERE id_tutoriel=$id";
  103.         $sql = mysql_query($rq);
  104.         $ret = mysql_fetch_array($sql);
  105.         @mysql_free_result($sql);
  106.         $ordre_cur = $ret['ordre'];
  107.         $id_cur = $id;
  108.         $id_last = previousIDInCategory($id_cur, $cat);
  109.         $rq = "SELECT * FROM tutoriels WHERE id_tutoriel=$id_last";
  110.         $sql = mysql_query($rq);
  111.         $ret = mysql_fetch_array($sql);
  112.         @mysql_free_result($sql);
  113.         $ordre_last = $ret['ordre'];
  114.         @mysql_query("UPDATE tutoriels SET ordre=$ordre_last WHERE id_tutoriel=$id_cur" );                 
  115.         @mysql_query("UPDATE tutoriels SET ordre=$ordre_cur WHERE id_tutoriel=$id_last" );
  116.     }
  117.     function monterCat($cat) {
  118.         $rq = "SELECT * FROM categories WHERE id_categorie=$cat";
  119.         $sql = mysql_query($rq);
  120.         $ret = mysql_fetch_array($sql);
  121.         @mysql_free_result($sql);
  122.         $ordre_cur = $ret['ordre'];
  123.         $id_cur = $cat;
  124.         $id_last = previousCat($id_cur);
  125.         $rq = "SELECT * FROM categories WHERE id_categorie=$id_last";
  126.         $sql = mysql_query($rq);
  127.         $ret = mysql_fetch_array($sql);
  128.         @mysql_free_result($sql);
  129.         $ordre_last = $ret['ordre'];
  130.         @mysql_query("UPDATE categories SET ordre=$ordre_last WHERE id_categorie=$id_cur" );
  131.         @mysql_query("UPDATE categories SET ordre=$ordre_cur WHERE id_categorie=$id_last" );
  132.     }
  133.     function descendreCat($cat) {
  134.         $rq = "SELECT * FROM categories WHERE id_categorie=$cat";
  135.         $sql = mysql_query($rq);
  136.         $ret = mysql_fetch_array($sql);
  137.         @mysql_free_result($sql);
  138.         $ordre_cur = $ret['ordre'];
  139.         $id_cur = $cat;
  140.         $id_next = nextCat($id_cur);
  141.         $rq = "SELECT * FROM categories WHERE id_categorie=$id_next";
  142.         $sql = mysql_query($rq);
  143.         $ret = mysql_fetch_array($sql);
  144.         @mysql_free_result($sql);
  145.         $ordre_next = $ret['ordre'];
  146.         @mysql_query("UPDATE categories SET ordre=$ordre_next WHERE id_categorie=$id_cur" );
  147.         @mysql_query("UPDATE categories SET ordre=$ordre_cur WHERE id_categorie=$id_next" );
  148.     }
  149.     function descendreTuto($id, $cat)
  150.     {
  151.         $rq = "SELECT * FROM tutoriels WHERE id_tutoriel=$id";
  152.         $sql = mysql_query($rq);
  153.         $ret = mysql_fetch_array($sql);
  154.         @mysql_free_result($sql);
  155.         $ordre_cur = $ret['ordre'];
  156.         $id_cur = $id;
  157.         $id_next = nextIDInCategory($id_cur, $cat);
  158.         $rq = "SELECT * FROM tutoriels WHERE id_tutoriel=$id_next";
  159.         $sql = mysql_query($rq);
  160.         $ret = mysql_fetch_array($sql);
  161.         @mysql_free_result($sql);
  162.         $ordre_next = $ret['ordre'];
  163.         @mysql_query("UPDATE tutoriels SET ordre=$ordre_next WHERE id_tutoriel=$id_cur" );                 
  164.         @mysql_query("UPDATE tutoriels SET ordre=$ordre_cur WHERE id_tutoriel=$id_next" );
  165.     }
  166. ?>


 
L'essentiel est la

Reply

Marsh Posté le 27-12-2006 à 13:43:20    

Ok, j'ai compris. Comme tu ne peux monter/descendre qu d'un cran un tuto ou un catégorie, y'a juste à swaper 2 n° d'ordre, effectivement. Dans mon cas, j'aurais besoin de pouvoir faire des "sauts" de repositionnement plus grands (> 1 cran) et changer de niveau dans l'arborescence => faut recalculer tous les n° d'ordre et en +, un n° d'ordre est local à un niveau et à une branche de l'arborescence :/ C'est plus compliqué...

Reply

Marsh Posté le 27-12-2006 à 17:47:21    

Pour les categories, tu peux ajouter un champ 'parent' : mis a 0 dans le cas des catégories generales, et qui valent l'Id de la categorie mère pour les sous-cat. Comme dans un système de fichiers

Reply

Marsh Posté le 27-12-2006 à 17:58:02    

-ThX- a écrit :

Pour les categories, tu peux ajouter un champ 'parent' : mis a 0 dans le cas des catégories generales, et qui valent l'Id de la categorie mère pour les sous-cat. Comme dans un système de fichiers


 
pour l'arbo, c'est bon, j'ai déjà fait. Comme il doit être facile de modifier l'ordre d'affichage des catégories dans l'aro, j'ai fait un fichier de conf en php qui contient une variable tableau contenant l'ensemble des ID de mes catégories. L'ordre dans ce tableau conditionne l'ordre d'affichage. Donc, avec un simple éditeur de texte, c'est facile de modifier l'ordre mias manipuler des ID, c'est aps très causant. Il me manque donc une IHM pour modifier ce fichier de conf. Pour compliquer la chose, ce fichier de conf contient aussi le nom du style à utiliser lors de l'affichage (nom de style existant dans mon css) pour chaque catégorie (en général, le style est une icône). Faut aussi que mon ihm permettent de saisir ce nom de style...

Reply

Marsh Posté le 27-12-2006 à 17:58:02   

Reply

Marsh Posté le 27-12-2006 à 22:46:00    

Allez...
 
tutoriel.php > fichier d'affichage pour les users

Code :
  1. <?
  2.    include ('admin/functions.php');
  3.    connecter();
  4.    if (empty($_GET['cat'])) {                   // Afficher juste une catégorie, ou l'ensemble
  5.      $titre = "Site - Liste des cours et tutoriels";
  6.    } else {
  7.      $tcatId = $_GET['cat'];
  8.      $requete = "SELECT * FROM categories WHERE id_categorie=".$tcatId;
  9.      $retour = mysql_query($requete);
  10.      $catName = mysql_fetch_array($retour);
  11.      $titre = "Site - Liste des cours et tutoriels : Cat&eacute;gorie ". $catName['titre'];
  12.      mysql_free_result($retour);
  13.    }
  14.    include ('header.inc')
  15. ?>
  16. <h2>Liste des cours &amp; tutoriels</h2>
  17. <?
  18.         $requete = "SELECT * FROM categories ORDER BY ordre ASC;";
  19.         $retour = mysql_query($requete);
  20.         $nombreCategories = mysql_num_rows($retour);
  21.    
  22.         $i = 0;
  23.         while($ligne=mysql_fetch_array($retour)){
  24.                   $catId[$i] = $ligne["id_categorie"];
  25.                   $catTitre[$i] = $ligne["titre"];
  26.                   $catIcon[$i] = $ligne["icone"];
  27.                   $i++ ;
  28.         }
  29.         mysql_free_result($retour);
  30.         if (!empty($_GET['cat'])) {
  31.             $j = $tcatId -1;
  32.             echo "<h3>Catégorie : ".$catTitre[$j]. "</h3>\n<table id='indextutoriels'>\n" ;
  33.             $requete = "SELECT * FROM tutoriels WHERE categorie=".$catId[$j]." ORDER BY ordre ASC" ;
  34.             echo "<tr><td width=60px><b>Niveau</b></td><td><b>Titre</b></td><td width=35px>&nbsp</td><td width=120px><b>Auteur</b></td></tr>\n";
  35.             if(($retour = mysql_query($requete)) && mysql_num_rows($retour) ){
  36.                 while($ligne=mysql_fetch_array($retour)){
  37.                     $niveauTuto = $ligne["niveau"];
  38.                     $titreTuto = $ligne["titre"];
  39.                     $hrefTuto = $ligne["href"];
  40.                     $auteurTuto = $ligne["auteur"];
  41.                     $formatTuto = $ligne["format"];
  42.                     $formatTuto = (($formatTuto == "1" ) ? "<img src='images/pdf.jpg' alt='pdf' />" : "" ) ;
  43.                     echo "<tr><td><img src='./images/niveau/".$niveauTuto.".jpg' alt='Niveau "
  44.                    .$niveauTuto."' /></td><td><a href='".$hrefTuto."'>".
  45.                     $titreTuto."</a></td><td>".$formatTuto."</td><td>".$auteurTuto."</td></tr>";
  46.                 }
  47.             } else {
  48.                 echo "<td colspan=3>Aucun cours / tutoriel dans cette cat&eacute;gorie</td>\n";
  49.                
  50.                 mysql_free_result ($retour);
  51.             }
  52.             echo "</table>\n";
  53.         }else{
  54.         for( $j=0; $j<$i; $j++) {
  55.             echo "<h3>Catégorie : ".$catTitre[$j]. "</h3>\n<table id='indextutoriels'>\n" ;
  56.             $requete = "SELECT * FROM tutoriels WHERE categorie=".$catId[$j] ;
  57.             echo "<tr><td width=60px><b>Niveau</b></td><td><b>Titre</b></td><td width=35px>&nbsp</td><td width=120px><b>Auteur</b></td></tr>\n";
  58.             if(($retour = mysql_query($requete)) && mysql_num_rows($retour) ){
  59.                 while($ligne=mysql_fetch_array($retour)){
  60.                     $niveauTuto = $ligne["niveau"];
  61.                     $titreTuto = $ligne["titre"];
  62.                     $hrefTuto = $ligne["href"];
  63.                     $auteurTuto = $ligne["auteur"];
  64.                     $formatTuto = $ligne["format"];
  65.                     $formatTuto = (($formatTuto == "1" ) ? "<img src='images/pdf.jpg' alt='pdf' />" : "" ) ;
  66.                     echo "<tr><td><img src='./images/niveau/".$niveauTuto.".jpg' alt='Niveau "
  67.                    .$niveauTuto."' /></td><td><a href='".$hrefTuto."'>".
  68.                     $titreTuto."</a></td><td>".$formatTuto."</td><td>".$auteurTuto."</td></tr>";
  69.                 }
  70.             } else {
  71.                 echo "<td colspan=3>Aucun cours / tutoriel dans cette cat&eacute;gorie</td>\n";
  72.                
  73.                 mysql_free_result ($retour);
  74.             }
  75.             echo "</table>\n";
  76.         }
  77.         }
  78. ?>   <br />
  79. <?
  80.    include ('footer.inc');
  81. ?>


 
tutadmin.php > IHM d'administration

Code :
  1. <?
  2.    require_once ('functions.php');
  3.    include ('overall_header.inc'); 
  4. ?>
  5. <div class="soft" width="90%">
  6. <h2>Administration des cours</h2>
  7. <h3>Cat&eacute;gories</h3>
  8. <?
  9.         connecter();
  10.         $requete = "SELECT * FROM categories ORDER BY ordre ASC";
  11.         $retour = mysql_query($requete);
  12.         $nombreCategories = mysql_num_rows($retour);
  13.    
  14.         $i = 0;
  15.         echo "<table id='indextutoriels'>\n" ;
  16.         echo "<tr><td width='32px'><b>Id</b></td><td><b>Titre de la cat&eacute;gorie</b></td>";
  17.         echo "<td width='32px'>&nbsp;</td><td width='32px'>&nbsp;</td><td width='25px'>&nbsp;</td></tr>\n";
  18.         while($ligne=mysql_fetch_array($retour)){
  19.                   $catId[$i] = $ligne["id_categorie"];
  20.                   $catTitre[$i] = $ligne["titre"];
  21.                   $catIcon[$i] = $ligne["icone"];
  22.                   $catOrder[$i] = $ligne["ordre"];
  23.                     $sql = mysql_query("SELECT * FROM categories ORDER BY ordre ASC" );
  24.                     $tmp = mysql_fetch_array($sql);
  25.                     $minO = $tmp['ordre'];
  26.                     @mysql_free_result($sql);
  27.                     $sql = mysql_query("SELECT * FROM categories ORDER BY ordre DESC" );
  28.                     $tmp = mysql_fetch_array($sql);
  29.                     $maxO = $tmp['ordre'];
  30.                     @mysql_free_result($sql);
  31.                     if (($catOrder[$i] != $minO) && ($catOrder[$i] != $maxO)) {
  32.                        $manipOrdre = "<a href='catedit.php?action=1&amp;c=$catId[$i]'><img src='images/up.jpg' alt='MONTER' /></a>".
  33.                                      "<a href='catedit.php?action=2&amp;c=$catId[$i]'><img src='images/down.jpg' alt='DESCENDRE' /></a>";
  34.                     } elseif ( ($catOrder[$i] == $minO) && ($catOrder[$i] != $maxO) ) {
  35.                        $manipOrdre = "<a href='catedit.php?action=2&amp;c=$catId[$i]'><img src='images/down.jpg' alt='DESCENDRE' /></a>";
  36.                     } elseif ( ($catOrder[$i] != $minO) && ($catOrder[$i] == $maxO) ) {
  37.                        $manipOrdre = "<a href='catedit.php?action=1&amp;c=$catId[$i]'><img src='images/up.jpg' alt='MONTER' /></a>";
  38.                     } else {
  39.                       $manipOrdre ="";
  40.                     }
  41.                   echo "<tr><td width='32px'>".$catId[$i]."</td><td>".$catTitre[$i]."</td>";
  42.                   echo "<td width='32px'><a href='catedit.php?action=0&amp;c=".$catId[$i]."'><img src='images/edit.jpg' alt='EDIT' /></a></td>";
  43.                   echo "<td width='32px'><a href='catedit.php?action=3&amp;c=".$catId[$i]."'><img src='images/del.jpg' alt='DEL' /></a></td><td>$manipOrdre</td></tr>\n";
  44.                   $i++ ;
  45.         }
  46.         echo "<tr><td colspan=4><a href='catedit.php?action=0&amp;c=0'><img src='images/new.jpg' alt='NEW' /></a></td></tr></table><br />";
  47.         echo "<h3>Cours &amp; tutoriels</h3>";
  48.         mysql_free_result($retour);
  49.         for( $j=0; $j<$i; $j++) {
  50.             echo "<h4>Catégorie : ".$catTitre[$j]. "</h4>\n<table id='indextutoriels'>\n" ;
  51.             $requete = "SELECT * FROM tutoriels WHERE categorie=".$catId[$j]." ORDER BY ordre ASC" ;
  52.             echo "<tr><td><b>Niveau</b></td><td><b>Titre</b></td><td><b>Lien</b></td>";
  53.             echo "<td width=30px>&nbsp;</td>";
  54.             echo "<td width=15px>&nbsp;</td><td width=25px align='center'>&nbsp;</td></tr>\n";
  55.             if(($retour = mysql_query($requete)) && mysql_num_rows($retour) ){
  56.                 $nombreTutos=mysql_num_rows($retour);
  57.                 while($ligne=mysql_fetch_array($retour)){
  58.                     $niveauTuto = $ligne["niveau"];
  59.                     $titreTuto = $ligne["titre"];
  60.                     $hrefTuto = $ligne["href"];
  61.                     $auteurTuto = $ligne["auteur"];
  62.                     $formatTuto = $ligne["format"];
  63.                     $idTuto = $ligne["id_tutoriel"];
  64.                     $ordreTuto = $ligne["ordre"];
  65.                     $sql = mysql_query("SELECT * FROM tutoriels WHERE categorie=$catId[$j] ORDER BY ordre ASC" );
  66.                     $tmp = mysql_fetch_array($sql);
  67.                     $minO = $tmp['ordre'];
  68.                     @mysql_free_result($sql);
  69.                     $sql = mysql_query("SELECT * FROM tutoriels WHERE categorie=$catId[$j] ORDER BY ordre DESC" );
  70.                     $tmp = mysql_fetch_array($sql);
  71.                     $maxO = $tmp['ordre'];
  72.                     @mysql_free_result($sql);
  73.                     $formatTuto = (($formatTuto == "1" ) ? "<img src='images/pdf.jpg' alt='pdf' />" : "" ) ;
  74.                     if (($ordreTuto != $minO) && ($ordreTuto != $maxO)) {
  75.                        $manipOrdre = "<a href='tutedit.php?action=1&amp;t=$idTuto'><img src='images/up.jpg' alt='MONTER' /></a>".
  76.                                      "<a href='tutedit.php?action=2&amp;t=$idTuto'><img src='images/down.jpg' alt='DESCENDRE' /></a>";
  77.                     } elseif ( ($ordreTuto == $minO) && ($ordreTuto != $maxO) ) {
  78.                        $manipOrdre = "<a href='tutedit.php?action=2&amp;t=$idTuto'><img src='images/down.jpg' alt='DESCENDRE' /></a>";
  79.                     } elseif ( ($ordreTuto != $minO) && ($ordreTuto == $maxO) ) {
  80.                        $manipOrdre = "<a href='tutedit.php?action=1&amp;t=$idTuto'><img src='images/up.jpg' alt='MONTER' /></a>";
  81.                     } else {
  82.                       $manipOrdre ="";
  83.                     }
  84.                     echo "<tr><td><img src='./images/niveau/".$niveauTuto.".jpg' alt='Niveau "
  85.                    .$niveauTuto."' /></td><td>".
  86.                     $titreTuto."</td><td>".$hrefTuto."</td>".
  87.                     "<td><a href='tutedit.php?action=0&amp;t=".$idTuto."'><img src='images/edit.jpg' alt='EDIT' /></td>".
  88.                     "<td><a href='tutedit.php?action=3&amp;t=".$idTuto."'><img src='images/del.jpg' alt='DEL' /></td><td>$manipOrdre</td></tr>";
  89.                 }
  90.             } else {
  91.                 echo "<tr><td colspan=6>Aucun cours / tutoriel dans cette cat&eacute;gorie</td></tr>\n";
  92.                
  93.                 mysql_free_result ($retour);
  94.             }
  95.             echo "<tr><td colspan=6><a href='tutedit.php?action=0&amp;t=0'><img src='images/new.jpg' alt='NEW' /></a></td></tr>";
  96.             echo "</table>\n";
  97.         }
  98.         echo "<h4>Tutoriels en attente </h4>\n<table id='indextutoriels'>\n" ;
  99.             $requete = "SELECT * FROM tutoriels WHERE categorie=0" ;
  100.             echo "<tr><td><b>Niveau</b></td><td><b>Titre</b></td><td><b>Lien</b></td>";
  101.             echo "<td width=30px>&nbsp;</td>";
  102.             echo "<td width=15px>&nbsp;</td><td width=25px align='center'>&nbsp;</td></tr>\n";
  103.             if(($retour = mysql_query($requete)) && mysql_num_rows($retour) ){
  104.                 $nombreTutos=mysql_num_rows($retour);
  105.                 while($ligne=mysql_fetch_array($retour)){
  106.                     $niveauTuto = $ligne["niveau"];
  107.                     $titreTuto = $ligne["titre"];
  108.                     $hrefTuto = $ligne["href"];
  109.                     $auteurTuto = $ligne["auteur"];
  110.                     $formatTuto = $ligne["format"];
  111.                     $idTuto = $ligne["id_tutoriel"];
  112.                     $ordreTuto = $ligne["ordre"];
  113.                     $formatTuto = (($formatTuto == "1" ) ? "<img src='images/pdf.jpg' alt='pdf' />" : "" ) ;
  114.                     echo "<tr><td><img src='./images/niveau/".$niveauTuto.".jpg' alt='Niveau "
  115.                    .$niveauTuto."' /></td><td>".
  116.                     $titreTuto."</td><td>".$hrefTuto."</td>".
  117.                     "<td><a href='tutedit.php?action=0&amp;t=".$idTuto."'><img src='images/edit.jpg' alt='EDIT' /></td>".
  118.                     "<td><a href='tutedit.php?action=3&amp;t=".$idTuto."'><img src='images/del.jpg' alt='DEL' /></td><td>&nbsp;</td></tr>";
  119.                 }
  120.             } else {
  121.                 echo "<tr><td colspan=6>Aucun cours / tutoriel en attente</td></tr>\n";
  122.                
  123.                 mysql_free_result ($retour);
  124.             }
  125.             echo "<tr><td colspan=6><a href='tutedit.php?action=0&amp;t=0'><img src='images/new.jpg' alt='NEW' /></a></td></tr>";
  126.             echo "</table>\n";
  127.     deconnecter();
  128. ?>  </div> <br />
  129. <?
  130.    include ('overall_footer.inc');
  131. ?>


 
tutedit.php > a placer dans le meme rep que tutadmin.php

Code :
  1. <?
  2.    // $_GET['action']
  3.    // ---------------------
  4.    // 0 editer
  5.    // 1 monter d'un cran
  6.    // 2 descendre d'un cran
  7.    // 3 supprimer
  8.    require_once ('functions.php');
  9.    function displayEdition() {
  10.       $cats= "<option value='0'>En attente</option>\n";
  11.       connecter();
  12.       if ($_GET['t'] != 0) {
  13.             $rq = "SELECT * FROM tutoriels WHERE id_tutoriel={$_GET['t']}";
  14.             $sql = mysql_query($rq);
  15.             $ret = mysql_fetch_array($sql);
  16.             $id = $_GET['t'];
  17.             $cat = $ret['categorie'];
  18.             $titre = $ret['titre'];
  19.             $href = $ret['href'];
  20.             $auteur = $ret['auteur'];
  21.             $niveau = $ret['niveau'];
  22.             $pdf = ($ret['format']=="1" ) ? "checked='checked'" : "" ;
  23.                                                            
  24.       } else {
  25.              $titre = "[ Titre du tutoriel ]";
  26.              $href = "./.php";
  27.              $auteur = "Anonyme";
  28.              $id=0;
  29.       }
  30.       $rq = "SELECT * FROM categories";
  31.       $sql = mysql_query($rq);
  32.       while ( $ret = mysql_fetch_array($sql) ){
  33.             $sel = ($ret['id_categorie']==$cat) ?"selected='selected'":"";
  34.             $cats .= "<option value='{$ret['id_categorie']}' $sel >{$ret['titre']}</option>\n";
  35.       }
  36.       $niveaux="";
  37.       for  ($i=1; $i<=5 ; ++$i) {
  38.           $sel = ($i==$niveau) ? "checked='checked'" : "";
  39.           $niveaux .= "      <input type='radio' name='niveau' value='$i' accesskey='niveau' $sel /><img src='images/niveau/$i.jpg' alt='$i'/>";
  40.       }
  41.       include ('displayedit.php');
  42.    }
  43.    switch($_GET['action']) {
  44.    case 0:
  45.         if (!isset($_POST['titre'])) {
  46.             include ('overall_header.inc');
  47.             displayEdition();
  48.             include ('overall_footer.inc');
  49.         } else {
  50.             $t=$_GET['t'];
  51.                         connecter();
  52.             if ($t=="0" ) {
  53.                @mysql_query("INSERT INTO `tutoriels` ( `id_tutoriel` , `titre` , `auteur` , `niveau` , `href` , `categorie` , `format` , `ordre` )
  54.                              VALUES ( 'temp' , '', '', NULL , '', '', '', '".nextOrderInCategory($_POST['categorie'])."')" );
  55.                $t = mysql_insert_id();
  56.             }
  57.             @mysql_query("UPDATE tutoriels SET titre='".$_POST['titre']."' WHERE id_tutoriel=".$t);
  58.             @mysql_query("UPDATE tutoriels SET auteur='".$_POST['auteur']."' WHERE id_tutoriel=".$t);
  59.             @mysql_query("UPDATE tutoriels SET niveau='".$_POST['niveau']."' WHERE id_tutoriel=".$t);
  60.             @mysql_query("UPDATE tutoriels SET href='".$_POST['href']."' WHERE id_tutoriel=".$t);
  61.             $pdf = ($_POST['pdf']=="ispdf" ) ?"1":"0";
  62.             @mysql_query("UPDATE tutoriels SET format='$pdf' WHERE id_tutoriel=".$t);
  63.             $sql=mysql_query("SELECT * FROM tutoriels WHERE id_tutoriel=".$t);
  64.             $ret=@mysql_fetch_array($sql);
  65.             if ($ret['categorie'] != $_POST['categorie']) {
  66.                 changeCat($t, $_POST['categorie']);
  67.             }
  68.             include_once('tutadmin.php');
  69.         }
  70.    break;
  71.    case 1:
  72.         connecter();
  73.         $sql = mysql_query("SELECT * FROM tutoriels WHERE id_tutoriel={$_GET['t']}" );
  74.         $ret = mysql_fetch_array($sql);
  75.         mysql_free_result($sql);
  76.         $cat = $ret['categorie'];
  77.         monterTuto($_GET['t'],$cat);
  78.         deconnecter();
  79.         include_once ('tutadmin.php');
  80.    break;
  81.    case 2:
  82.         connecter();
  83.         $sql = mysql_query("SELECT * FROM tutoriels WHERE id_tutoriel={$_GET['t']}" );
  84.         $ret = mysql_fetch_array($sql);
  85.         mysql_free_result($sql);
  86.         $cat = $ret['categorie'];
  87.         descendreTuto($_GET['t'],$cat);
  88.         deconnecter();
  89.         include_once ('tutadmin.php');
  90.    break;
  91.    case 3:
  92.         connecter();
  93.         mysql_query("DELETE FROM tutoriels WHERE id_tutoriel={$_GET['t']} LIMIT 1" );
  94.         deconnecter();
  95.         include_once ('tutadmin.php');
  96.    break;
  97.    default:
  98.        $message = "L&acute;action demand&eacute;e n&acute;est pas impl&eacute;ement&eacute;e";
  99.    }
  100. ?>


 
catedit.php > meme chose

Code :
  1. <?
  2.    // $_GET['action']
  3.    // ---------------------
  4.    // 0 editer
  5.    // 1 monter
  6.    // 2 descendre
  7.    // 3 supprimer
  8.    require_once ('functions.php');
  9.    function displayEdition() {
  10.       connecter();
  11.       if ($_GET['c'] != 0) {
  12.             $rq = "SELECT * FROM categories WHERE id_categorie={$_GET['c']}";
  13.             $sql = mysql_query($rq);
  14.             $ret = mysql_fetch_array($sql);
  15.             $id = $_GET['c'];
  16.             $titre = $ret['titre'];
  17.             $icon = $ret['icon'];
  18.       } else {
  19.              $titre = "[ Titre de la cat&eacute;gorie ]";
  20.              $icon = "./images/defcat.jpg";
  21.              $id=0;
  22.       }
  23.       include ('displaycatedit.php');
  24.    }
  25.    switch($_GET['action']) {
  26.    case 0:
  27.         if (!isset($_POST['titre'])) {
  28.             include ('overall_header.inc');
  29.             displayEdition();
  30.             include ('overall_footer.inc');
  31.         } else {
  32.             $c=$_GET['c'];
  33.                         connecter();
  34.             if ($c=="0" ) {
  35.                mysql_query("INSERT INTO `categories` ( `id_categorie` , `titre` , `icon` , `ordre` )
  36. VALUES (
  37. NULL , '', '', '".nextCatOrder()."'
  38. )" );
  39.                $c = mysql_insert_id();
  40.             }
  41.             connecter();
  42.             @mysql_query("UPDATE categories SET titre='{$_POST['titre']}' WHERE id_categorie=$c" );
  43.             @mysql_query("UPDATE categories SET icon='{$_POST['icon']}' WHERE id_categorie=$c" );
  44.             include_once('tutadmin.php');
  45.         }
  46.    break;
  47.    case 1:
  48.         connecter();
  49.         monterCat($_GET['c']);
  50.         deconnecter();
  51.         include_once ('tutadmin.php');
  52.    break;
  53.    case 2:
  54.         connecter();
  55.         descendreCat($_GET['c']);
  56.         deconnecter();
  57.         include_once ('tutadmin.php');
  58.    break;
  59.    case 3:
  60.         connecter();
  61.         mysql_query("DELETE FROM categories WHERE id_categorie={$_GET['c']} LIMIT 1" );
  62.         deconnecter();
  63.         include_once ('tutadmin.php');
  64.    break;
  65.    default:
  66.        $message = "L&acute;action demand&eacute;e n&acute;est pas impl&eacute;ement&eacute;e";
  67.    }
  68. ?>


 
displaycatedit.php > fichier inclus IHM pour l'édition des catégories

Code :
  1. <?
  2. echo "<form id='editer' name='editer' method='post' action='catedit.php?action=0&amp;c=$id'>";
  3. echo "  <table align='center' width='80%' border='0' cellspacing='0' cellpadding='0'>";
  4. echo "    <tr>";
  5. echo "      <td>&nbsp;</td>";
  6. echo "      <td>Titre</td>";
  7. echo "      <td>&nbsp;</td>";
  8. echo "      <td><input type='text' size='60' name='titre' accesskey='titre' value='$titre' /></td>";
  9. echo "      <td>&nbsp;</td>";
  10. echo "    </tr>";
  11. echo "    <tr>";
  12. echo "      <td>&nbsp;</td>";
  13. echo "      <td>Icone</td>";
  14. echo "      <td>&nbsp;</td>";
  15. echo "      <td><input type='text' size='60' name='icon' accesskey='href' value='$icon' /></td>";
  16. echo "      <td>&nbsp;</td>";
  17. echo "    </tr>";
  18. echo "  </table>";
  19. echo "<input type='submit' name='go' value='Modifier' />";
  20. echo "</form>";
  21. ?>


 
displayedit.php > pareil mais pour les cours/tutoriels

Code :
  1. <?
  2. echo "<form id='editer' name='editer' method='post' action='tutedit.php?action=0&amp;t=$id'>";
  3. echo "  <table align='center' width='80%' border='0' cellspacing='0' cellpadding='0'>";
  4. echo "    <tr>";
  5. echo "      <td>&nbsp;</td>";
  6. echo "      <td>Titre</td>";
  7. echo "      <td>&nbsp;</td>";
  8. echo "      <td><input type='text' size='60' name='titre' accesskey='titre' value='$titre' /></td>";
  9. echo "      <td>&nbsp;</td>";
  10. echo "    </tr>";
  11. echo "    <tr>";
  12. echo "      <td>&nbsp;</td>";
  13. echo "      <td>Auteur</td>";
  14. echo "      <td>&nbsp;</td>";
  15. echo "      <td><input type='text' size='60' name='auteur' accesskey='auteur' value='$auteur' /></td>";
  16. echo "      <td>&nbsp;</td>";
  17. echo "    </tr>";
  18. echo "    <tr>";
  19. echo "      <td>&nbsp;</td>";
  20. echo "      <td>Lien</td>";
  21. echo "      <td>&nbsp;</td>";
  22. echo "      <td><input type='text' size='60' name='href' accesskey='href' value='$href' /></td>";
  23. echo "      <td>&nbsp;</td>";
  24. echo "    </tr>";
  25. echo "    <tr>";
  26. echo "      <td>&nbsp;</td>";
  27. echo "      <td>Cat&eacute;gorie</td>";
  28. echo "      <td>&nbsp;</td>";
  29. echo "      <td><select name='categorie' accesskey='categorie'>";
  30. echo "      $cats";
  31. echo "      </select>      </td>";
  32. echo "      <td>&nbsp;</td>";
  33. echo "    </tr>";
  34. echo "    <tr>";
  35. echo "      <td>&nbsp;</td>";
  36. echo "      <td>Pdf</td>";
  37. echo "      <td>&nbsp;</td>";
  38. echo "      <td><input type='checkbox' name='pdf' value='ispdf' accesskey='pdf' $pdf />      </td>";
  39. echo "      <td>&nbsp;</td>";
  40. echo "    </tr>";
  41. echo "    <tr>";
  42. echo "      <td>&nbsp;</td>";
  43. echo "      <td>Niveau</td>";
  44. echo "      <td>&nbsp;</td>";
  45. echo "      <td>";
  46. echo " $niveaux";
  47. echo "      </td>";
  48. echo "      <td>&nbsp;</td>";
  49. echo "    </tr>";
  50. echo "  </table>";
  51. echo "<input type='submit' name='go' value='Modifier' />";
  52. echo "</form>";
  53. ?>


 
functions.php donné quelques posts plus haut
 
Et ne pas oublier un "config.php" pour les infos de BDD.

Reply

Marsh Posté le 27-12-2006 à 22:49:18    

--  
-- Structure de la table `categories`
--  
 
CREATE TABLE `categories` (
  `id_categorie` int(2) NOT NULL auto_increment,
  `titre` varchar(64) NOT NULL default '',
  `icon` varchar(64) NOT NULL default 'defcat.jpg',
  `ordre` int(2) NOT NULL default '0',
  PRIMARY KEY  (`id_categorie`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
-- --------------------------------------------------------
 
--  
-- Structure de la table `tutoriels`
--  
 
CREATE TABLE `tutoriels` (
  `id_tutoriel` int(3) NOT NULL auto_increment,
  `titre` varchar(64) NOT NULL default '',
  `auteur` varchar(64) NOT NULL default 'Anonyme',
  `niveau` int(1) default NULL,
  `href` varchar(128) NOT NULL default '',
  `categorie` int(2) NOT NULL default '0',
  `format` int(1) NOT NULL default '0',
  `ordre` int(3) NOT NULL default '0',
  PRIMARY KEY  (`id_tutoriel`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed