Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1724 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Script pour gestion de cours par catégories

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script pour gestion de cours par catégories

n°1496189
-ThX-
Not here anymore
Posté le 27-12-2006 à 07:29:08  profilanswer
 

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

mood
Publicité
Posté le 27-12-2006 à 07:29:08  profilanswer
 

n°1496231
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2006 à 10:51:52  profilanswer
 

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...

n°1496240
-ThX-
Not here anymore
Posté le 27-12-2006 à 11:05:39  profilanswer
 

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.

n°1496264
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2006 à 11:53:23  profilanswer
 

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)

n°1496270
-ThX-
Not here anymore
Posté le 27-12-2006 à 12:11:58  profilanswer
 

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

n°1496281
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2006 à 13:05:21  profilanswer
 

-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.

n°1496292
-ThX-
Not here anymore
Posté le 27-12-2006 à 13:29:47  profilanswer
 

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

n°1496301
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2006 à 13:43:20  profilanswer
 

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é...

n°1496395
-ThX-
Not here anymore
Posté le 27-12-2006 à 17:47:21  profilanswer
 

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

n°1496401
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2006 à 17:58:02  profilanswer
 

-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...

mood
Publicité
Posté le 27-12-2006 à 17:58:02  profilanswer
 

n°1496458
-ThX-
Not here anymore
Posté le 27-12-2006 à 22:46:00  profilanswer
 

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.

n°1496459
-ThX-
Not here anymore
Posté le 27-12-2006 à 22:49:18  profilanswer
 

--  
-- 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 ;


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Script pour gestion de cours par catégories

 

Sujets relatifs
Comment creer sa boutique en ligne ? (caddy / gestion stock ...etc)Cherche script pour ftp
Gestion des clefs étrangères (problèmes de réplications)Script Windows CE
Script shell : lecture dans un fichier et mise en formepagination et couleur page en cours
Script FormulaireScript tableau clanwar (matches)
script.Gestion des doubles ds affichage DB
Plus de sujets relatifs à : Script pour gestion de cours par catégories


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR