<?
/***************************************************************************
                          Annuaire.php -  library of admin functions
                             -------------------
    begin                : 05 Aout UTC 2001
    copyright            : (C) 2002 by NADAL Jean-Baptiste
    email                : jbnadal@ifrance.com
 ***************************************************************************
 *
 *  Cette classe permet de gerer un livre d'or pour le site de l'Harmonie
 *  de Montpellier-Jacou
 *
 ***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************
 * $Id: Annuaire.php,v 1.4 2002/12/15 20:22:29 jb Exp $
 ***************************************************************************/

if (file_exists("conf.php"))
   require("conf.php");
else
   require("./Scripts/conf.php");


class Annuaire
{
   // =============================================================
   // Les Variables
   var $szNomBase;             /* Nom de la base de travail. */
   var $szPage;                /* Nom de la page courante dans le site */
   
   var $szNom;
   var $szURL;
   var $szDescription;
   var $nbHits;
   var $nID;
   
   // =============================================================
   // Constructeur
   function  Annuaire($nomB, $page)
   {
      $this->szNomBase = $nomB;
      $this->szPage = $page;
   }
   // =================================================
   // Cette fonction supprime l'élement de base passé en paramètre
   function Supprimer ($num_elem)
   {
      global $sql_bdd;
      
      // On se connecte sur la base
      $connect_db = jb_sql_connect (false);
      $resultat = mysql_db_query ($sql_bdd,"delete from $this->szNomBase".
                                  " where id=$num_elem",$connect_db);
        if ($resultat == 1)
           echo "<br><br><center><font size=4 color=red>
                 <b>L' élement message $num_elem a été effacé</b></font>
                 </center><br><br>\n";
        else
           echo "<br><br><center><font size=6 color=red>
                 <b>BUG !!! suppression Impossible</b></font></center><br>
                 <br>\n";
        MYSQL_CLOSE;
   }

   // =================================================
   // Cette fonction Creer un formulaire pour la création d'un nouvel élément
   function debutFormulaire ($valide)
   {
      global $racine, $page_index;

      echo "<form method=post action=$racine/$page_index?page=$this->szPage&".
         "action=$valide>";
      echo "<script language=\"javascript\">\n";
      
      echo "document.write(\"<input type=hidden name=datecourante ".
         "value=\"+datelo+\" />\")\n";
      echo "</script>\n";
      echo "<input type=hidden name=elem size=32 value=\"$this->nID\" />";
   }

   // =================================================
   // Cette fonction Ferme le Formulaire
   function FinFormulaire ()
   {
      echo "<center><input type=submit value=valider /></center><br></form>";
   }

   // =================================================
   // Cette fonction retourn les champs input pour un ajout
   function GetChampsInputAnnuaire ()
   {
      echo "Nom : <input type=text name=nom size=32 value=\"$this->szNom\" />".
         "<br>\n";
      echo "Url : <input type=text name=url size=32 value=\"$this->szURL\" />".
         "<br>\n";
      echo "Description : <br><textarea name=description wrap=virtual ".
         "cols=40 rows=3>$this->szDescription</textarea><br><br>";
   }

   // =================================================
   // Cette fonction permet de lister tous les élément présents dans la base
   function Lister ()
   {
      global $racine, $page_index, $sql_bdd;
      
      // on affiche l"entete du tablo
      echo "<center><table border=0 width=\"95%\">
              <tr>
                <th bgcolor=\"#d5dee6\"> ID </th>
                  <th bgcolor=\"#d5dee6\">Nom</th>
                    <th bgcolor=\"#d5dee6\" colspan=2>Action</th>
              </tr>\n";
      // On se connecte sur la base de Download
      $connect_db = jb_sql_connect (false);
      $resultat = mysql_db_query ($sql_bdd,"select * from $this->szNomBase ",
                                  $connect_db);
      $i = 0;
      while ($row = mysql_fetch_row ($resultat)) {
         if (($i % 2) == 0)
            echo"<tr bgcolor=\"#DDDDDD\">\n";
         else
            echo "<tr bgcolor=\"#CCCCCC\">\n";
         echo "<td>$row[0] </td>\n";
         echo "<td>$row[1] </td>\n";
         echo "<td><a href=$racine/$page_index?page=$this->szPage&".
            "action=modifier&elem=$row[0]>Modifier</a></td>\n";
         echo " <td><a href=$racine/$page_index?page=$this->szPage&".
            "action=supprimer&elem=$row[0]>Supprimer</a></td>
             </tr>\n";
         $i++;
      }
      echo "</table> </center><br><br>";
      mysql_free_result ($resultat);
   }
} /* fin de la class Annuaire */

/**************************************************************************
 *
 *
 **************************************************************************/
class AnnuDownload extends  Annuaire
{
   // =============================================================
   // Les Variables
   var $szURLmini;
   var $nbHitsmini;
   var $szSizeUrl;
   var $szSizeUrl_mini;

   // =============================================================
   // Constructeur
   function  AnnuDownload ($nomBase, $page)
   {
      $this->Annuaire ($nomBase, $page);
   }
   
   // =================================================
   // Cette fonction retourn les champs input pour un ajout
   function GetChampsInputDownload ()
   {
      $this->GetChampsInputAnnuaire ();
      echo "URL du mini <input type=text name=urlmini size=32 ".
         "value=\"$this->szURLmini\" /><br/>\n";
      echo "Taille de l'URL <input type=text name=sizeurl size=32".
         " value=\"$this->szSizeUrl\" /><br>\n";
      echo "Taille de l'URL mini <input type=text name=sizeurlmini".
         " size=32 value=\" $this->szSizeUrl_mini\" /><br>\n";
   }

   // =================================================
   // Cette fonction supprime l'élement de base passé en paramètre
   function AjouterDownload ()
   {
      echo " <center><h1> Ajoute d'un nouveau download</h1></center><br>\n";
      $this->debutFormulaire ("ValideAjouter");
      echo "<center>\n";
      $this->GetChampsInputDownload ();
      echo "</center>\n";
      $this->FinFormulaire ();
   }
   
   // =================================================
   // Cette fonction Rajoute une entree dans la base de données
   function InsertDownload ($nom, $url, $description, $urlmini, $sizeurl,
                            $sizeurlmini)
   {
      global $sql_serveur, $sql_bdd, $sql_user, $sql_passwd;
      global $racine, $page_index;


      if (($nom == '') || ($url == ""))
         echo "<br><br><center><font size=6 color=red>
               <b>BUG !!! Le morceau $nom  n'a pas été ajouté</b></font>
               <br> certains champs sont vides</center><br><br>\n";
      else {
         // On se connecte sur la base de Download
         $requete = "insert into $this->szNomBase (nom,url,commentaire,".
            "url_mini, sizeUrl,sizeUrlMini ) values ('$nom','$url',".
            "'$description','$urlmini','$sizeurl','$sizeurlmini')";
         $connect_db = jb_sql_connect (false);
         $resultat = mysql_db_query ($sql_bdd, $requete, $connect_db);
         if ($resultat == 1)
            echo "<br><br><center><font size=4 color=red>
                  <b>L' élement $nom  a été Ajouté</b></font></center><br>
                  <br>\n";
         else
            echo "<br><br><center><font size=6 color=red>
                  <b>BUG !!! L' élement $nom  n'a pas été ajouté</b></font>
                  </center><br><br>\n";

         MYSQL_CLOSE;
      }
      echo "<br><br> <center><a href=$racine/$page_index?page=$this->szPage>".
         "Retour à la page d'administration des downloads
         </a></center> \n";
   }
   
   // =================================================
   // Cette fonction Rajoute une entree dans la base de données
   function ValideModifierDownload ($nom, $url, $description, $urlmini,
                                    $sizeurl, $sizeurlmini, $id)
   {
      global $racine, $page_index,  $sql_bdd;
      
      /* On se connecte sur la base de Download. */
      $requete = "update $this->szNomBase  set nom='$nom' ,url='$url',".
         "commentaire='$description',url_mini='$urlmini', sizeUrl=".
         "'$sizeurl',sizeUrlMini='$sizeurlmini'  where id='$id' ";
      $connect_db = jb_sql_connect (false);
      $resultat = mysql_db_query ($sql_bdd, $requete, $connect_db);
      if ($resultat == 1)
         echo "<br><br><center><font size=4 color=red>
               <b>L' élement $nom  a été Modifié</b></font></center><br>
               <br>\n";
      else
         echo "<br><br><center><font size=6 color=red>
               <b>BUG !!! L' élement $nom  n'a pas été Modifié</b></font>
               </center><br><br>\n";
      MYSQL_CLOSE;
      echo "<br><br>
            <center><a href=$racine/$page_index?page=$this->szPage>".
         "Retour à la page d'administration des".
         " download</a></center> \n";
   }


   // =================================================
   // Cette fonction permet de modifier un download présent dans la base
   function ModifierDownload ($elem)
   {
      global $sql_bdd;
      
      // On se connecte sur la base de Download
      $requete = "select * from $this->szNomBase where id='$elem'  ";
      $connect_db = jb_sql_connect (false);
      $resultat = mysql_db_query ($sql_bdd, $requete, $connect_db);
      
      $this->nID = mysql_result ($resultat, 0, "id");
      $this->szNom = mysql_result ($resultat, 0, "nom");
      $this->szURL = mysql_result ($resultat, 0, "url");
      $this->szDescription = mysql_result ($resultat, 0, "commentaire");
      $this->szURLmini = mysql_result ($resultat, 0, "url_mini");
      $this->szSizeUrl = mysql_result ($resultat, 0, "sizeurl");
      $this->szSizeUrl_mini = mysql_result ($resultat, 0, "sizeurlmini");
      
      
      echo "<center><h1> Modification du download :  $this->szNom </h1>
            </center><br>\n";
      $this->debutFormulaire ("ValideModifier");
      echo "<center>\n";
      $this->GetChampsInputDownload ();
      echo "</center>\n";
      $this->FinFormulaire ();
      mysql_free_result ($resultat);
   }

   // =================================================
   // Cette fonction permet d'afficher sous forme de tablo les downloads
   function AfficheDownload($intro)
   {
      // Les variables locales
      global $sql_bdd;
      global $racine;
      // Fin des variables locales
      // On se connecte sur la base de Annuaire
      $connect_db = jb_sql_connect(false);
      
      // on affiche l"entete du tablo
      echo "$intro\n <center><table  width=\"95%\" border=0>
            <tr>
              <th bgcolor=\"#d5dee6\">Nom du morceau </th>
              <th bgcolor=\"#d5dee6\">Lieu d'enregistrement<br>du concert</th>
              <th bgcolor=\"#d5dee6\" colspan=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              Morceaux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><font size=-1>
              complet &nbsp;&nbsp;&nbsp;  extrait</font></th>
            </tr>\n";

      $resultat = mysql_db_query($sql_bdd,"select * from $this->szNomBase ",
                                 $connect_db);
      $i = 0;
      while ($row = mysql_fetch_row($resultat))
      {
         if (($i % 2) == 0)
            echo"<tr bgcolor=\"#DDDDDD\">\n";
         else
            echo "<tr bgcolor=\"#CCCCCC\">\n";
         echo "<td>$row[1] </td>\n";
         echo "<td>$row[3] </td>\n";
         echo "<td align=center><a href=\"$racine/Scripts/download.php?".
            "id=$row[0]&mode=normal\"> <img src=Imgs/download_small.gif ".
            "alt=download border=0> </a> <br> ($row[7]) </td> \n";
         echo "<td align=center><a href=\"$racine/Scripts/download.php?".
            "id=$row[0]&mode=extrait\"> <img src=Imgs/download_small.gif ".
            "alt=download border=0> </a><br> ($row[8])</td> </tr>\n";
         
         echo "<td bgcolor=\"#d5dee6\">&nbsp; </td>\n <td ".
            "bgcolor=\"#d5dee6\" align=right><b> <font size=-1> ".
            "nb téléchargement </font> : </b> </td>\n";
         echo "<td bgcolor=\"#d5dee6\" align=center>$row[4] </td>\n ".
            "<td  bgcolor=\"#d5dee6\" align=center> $row[6] </td>\n";
         $i++;
      } // fin while
      echo "</table> </center><br><br>";
      mysql_free_result($resultat);
   }
} // fin de la class AnnuDownload

/**************************************************************************
 *
 *
 **************************************************************************/
class AnnuLinks extends Annuaire
{
   // =============================================================
   // Les Variables
   var $nType;
   
   // =============================================================
   // Constructeur
   function  AnnuLinks ($nomB,$page)
   {
      $this->szNomBase = $nomB;
      $this->szPage = $page;
   }
   // =============================================================
   function ValideModifierLiens ($elem, $nom, $url, $description, $type)
   {
      global $sql_serveur, $sql_bdd, $sql_user, $sql_passwd;
      global $racine, $page_index;

      /* On se connecte sur la base de Download. */
      $connect_db = mysql_connect ($sql_serveur, $sql_user, $sql_passwd) 
         or die("Impossible de se connecter");
      $requete = "update $this->szNomBase  set nom='$nom' ,url='$url',".
         "commentaire='$description',type='$type'  where id='$elem' ";

      $resultat = mysql_db_query ($sql_bdd, $requete, $connect_db);
      if ($resultat == 1)
         echo "<br><br><center><font size=4 color=red>
               <b>L' élement $nom  a été Modifié</b></font></center><br>
               <br>\n";
      else
         echo "<br><br><center><font size=6 color=red>
               <b>BUG !!! L' élement $nom  n'a pas été Modifié</b></font>
               </center><br><br>\n";
      
      MYSQL_CLOSE;
      echo "<br><br>
            <center><a href=$racine/$page_index?page=$this->szPage>".
         "Retour à la page d'administration des liens</a>
          </center> \n";
   }

   // =============================================================
   function ModifierLiens ($elem)
   {
      global $sql_bdd;
      
      /* On se connecte sur la base de Download. */
      $connect_db = jb_sql_connect (false);
      $requete = "select * from $this->szNomBase where id='$elem'  ";
      $resultat = mysql_db_query ($sql_bdd, $requete, $connect_db);
      
      $this->nID = mysql_result ($resultat, 0, "id");
      $this->szNom = mysql_result ($resultat, 0, "nom");
      $this->szURL = mysql_result ($resultat, 0, "url");
      $this->szDescription = mysql_result ($resultat,0, "commentaire");
      $this->nType = mysql_result ($resultat, 0, "type");
      
      echo "<center><h1> Modification du liens :  $this->szNom </h1>
            </center><br>\n";
      $this->debutFormulaire ("ValideModifier");
      echo "<center>\n";
      $this->GetChampsInputAnnuaire ();
      $this->GetChampsInputLiens ();
      echo "</center>\n";
      $this->FinFormulaire ();
      mysql_free_result ($resultat);
   }

   // =============================================================
   function InsertLiens ($nom, $url, $description, $type)
   {
      global $racine, $page_index, $sql_bdd;

      
      if (($nom == '') || ($url == ""))
         echo "<br/><br/><center><font size=6 color=red>
               <b>BUG !!! Le morceau $nom  n'a pas été ajouté</b>
               </font><br> certains champs sont vides</center><br><br>\n";
      else {

         /* On se connecte sur la base de Download. */
         $connect_db = jb_sql_connect (false);
         $requete = "insert into $this->szNomBase (nom,url,commentaire,".
            "type) values ('$nom','$url','$description','$type')";
         $resultat = mysql_db_query ($sql_bdd, $requete, $connect_db);
         if ($resultat == 1)
            echo "<br><br><center><font size=4 color=red>
                  <b>L' élement $nom  a été Ajouté</b></font></center>
                  <br><br>\n";
         else
            echo "<br><br><center><font size=6 color=red>
                  <b>BUG !!! L' élement $nom  n'a pas été ajouté</b>
                  </font></center><br><br>\n";
         
         MYSQL_CLOSE;
      }
      echo "<br><br>
            <center><a href=$racine/$page_index?page=$this->szPage>".
         "Retour à la page d'administration des liens</a>
          </center> \n";
   }

   // =============================================================
   function AjouterLiens ()
   {
      echo "<center><h1> Ajout d'un nouveau Lien</h1></center><br>\n";
      $this->debutFormulaire ("ValideAjouter");
      echo "<center>\n";
      $this->GetChampsInputAnnuaire ();
      $this->GetChampsInputLiens ();
      echo "</center>\n";
      $this->FinFormulaire ();
   }

   // =============================================================
   function GetChampsInputLiens ()
   {
      echo "Type  : <select name=type>\n";
      if ($this->nType == 1) 
         echo "<option value = 1 selected> Orchestres d'Harmonie\n";
      else echo "<option value = 1> Orchestres d'Harmonie\n";
      if ($this->nType == 2) 
         echo "<option value = 2 selected> Sites sur la musique\n";
      else echo "<option value = 2> Sites sur la musique\n";
      if ($this->nType == 3) 
         echo "<option value = 3 selected> Autour de Montpellier\n";
      else echo "<option value = 3>Autour de Montpellier\n";
      echo "</select><br><br>\n";
   }
}

?>
