<?php
/***************************************************************************
                          lib_print_admin.php -  library of admin functions
                             -------------------
    begin                : Mars  UTC 2001
    copyright            : (C) 2002 by NADAL Jean-Baptiste
    email                : jbnadal@ifrance.com
 ***************************************************************************
 *
 *  All the top level functions needed by the admin first page.
 *
 ***************************************************************************
 *                                                                         *
 *   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: lib_print_admin.php,v 1.15 2005/04/17 16:44:32 jb Exp $
 ***************************************************************************/

require "conf.php";


/***************************************************************************
 *
 *
 ***************************************************************************/
function MiseAjourTable ($titre, $texte, $Date, $table, $nomCadre,
                         $numIdent = 1)
{
   global $sql_bdd;
   
   $connexion = jb_sql_connect (false);
   if ($Date == "")
      $Date = date ("d/m/Y H:i");
   
   $resultat = mysql_db_query ($sql_bdd, "update $table set titre=\"$titre\",".
                               "texte=\"$texte\",date=\"$Date\" where".
                               " id=$numIdent", $connexion);
   if ($resultat == 1)
      $Texte = "<b>$nomCadre  modifié</b>";
   else
      $Texte = "<b> Erreur durant la modification de la table $nomCadre </b>";

   /* On affcihe la boite permettant de signaler à l'administrateur si la mise
    * à jour c'est bien réalisée.
    */
   AfficheErreur ($Texte,$Date);

   $result = mysql_close ($connexion);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function AfficheModeficationCadreDB ($action, $base, $nomPage, $numIdent = 1)
{
   global $sql_bdd, $racine, $page_index;
   
   /* On se connecte sur la base ajem */
   $connexion = jb_sql_connect (false);
   
   $resultat = mysql_db_query ($sql_bdd,
                               "select * from $base where id=$numIdent",
                               $connexion);

   /* On stock le resultat de la requete dans des variables */
   $titre = mysql_result ($resultat, 0, "titre");
   $texte = mysql_result ($resultat, 0, "texte");
   $date = mysql_result ($resultat, 0, "date");

   /* Puis on cree un formulaire pour retourner la reponse de l'administrateur
    * au serveur
    */
   echo "<center><br /><br /><br />\n
         <form method=post action=$racine/$page_index?page=$nomPage>
            <script language=\"javascript\">
                var datelo =DonneDate();
                document.write(\"<input type=hidden name=datecourante".
                                "value=\"+datelo+\" />\")\n
            </script>
           <input type=hidden name=action value='valider' />
           <input type=hidden name=nligneTable value='$numIdent' />";

   $pCadre = new Cadre ("<font face=verdana size=2>Titre :</font>".
                        "<input type=text name=titre size=32". 
                        " value=\"$titre\" /><br>", "", $date);

   $pCadre->affiche_CadreHaut (true);
   echo "<center>\n
           <br><textarea name=texte wrap=virtual cols=80 rows=20>$texte\n
           </textarea><br><br>\n
           <input type=submit value=valider /><br></form>\n
         </center>\n";

   $pCadre->affiche_CadreBas (true);
   /* On a fini donc on ferme la connexion. */
   $result = mysql_close ($connexion);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_Admindownload ($action, $elem, $nom, $url, 
                              $description, $urlmini, $sizeurl, $sizeurlmini)
{
   global $racine, $page_index;

   $pMesDownload = new AnnuDownload ("download", "AdmDownload");
   $pCadreduHaut = new Cadre ("Gestion des Dowloads du Sites", "",
                              date ("d/m/Y "));

   $pCadreduHaut->affiche_CadreHaut (true);
   switch ($action) {

      case "" :
         echo "<center>\n
                 <a href=$racine/$page_index?page=AdmDownload&".
                  "action=ajouter>ajouter un dowload</a>\n
               </center>\n<br><br>\n";
         $pMesDownload->Lister ();
         break;
      case "ajouter" :
         $pMesDownload->AjouterDownload ();
         break;
      case "ValideAjouter" :
         $pMesDownload->InsertDownload ($nom, $url, $description, $urlmini, 
                                        $sizeurl, $sizeurlmini);
         break;
      case  "modifier" :
         $pMesDownload->ModifierDownload ($elem);
         break;
      case "ValideModifier" :
         $pMesDownload->ValideModifierDownload ($nom, $url, $description,
                                                $urlmini, $sizeurl,
                                                $sizeurlmini, $elem);
         break;
      case  "supprimer" :
         $pMesDownload->Supprimer ($elem);
         break;
   }
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_AdminAgenda ($action, $elem, $dateTexte, $datephp,
                            $heuredeb, $ville, $lieu, $listeMorceaux,
                            $commentaire, $nbmorceaux)
{
   global $racine, $page_index;

   $pMonAgenda = new AnnuAgenda ("agenda", "M_InfoC");
   $pCadreduHaut = new  Cadre ("Gestion des Concert de l'OHMJ", "",
                               date("d/m/Y "));

   $pCadreduHaut->affiche_CadreHaut (true);
   
   switch ($action) {
      
      case "" :
         echo "<center>\n
                 <a href=$racine/$page_index?page=M_InfoC&".
            "nAction=ajouter>\n
                   <b><u>Ajouter un Concert</u></b> </a><br><br>\n
               </center>\n<br><br>\n";
         $pMonAgenda->Lister ();
         break;
      case "ajouter" :
         $pMonAgenda->AjouterConcert ($elem);
         break;
      case "ValideAjouter" :
         $pMonAgenda->InsertConcert ($dateTexte, $datephp, $heuredeb, $ville,
                                     $lieu, $listeMorceaux, $commentaire);
         break;
      case  "modifier" :
         $pMonAgenda->ModifierConcert ($elem, $nbmorceaux);
         break;
      case "ValideModifier" :
         $pMonAgenda->ValideModifierConcert ($elem, $dateTexte, $datephp,
                                             $heuredeb, $ville, $lieu,
                                             $listeMorceaux, $commentaire);
         break;
      case  "supprimer" :
         $pMonAgenda->Supprimer ($elem);
         break;
      default :
         print "<ERREUR>";
   }
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_AdminLinks ($action, $elem, $nom, $url, $description, $type)
{
   global $racine, $page_index;
   
   $pMesLiens = new AnnuLinks ("liens", "AdmLinks");
   $pCadreduHaut = new  Cadre ("Gestion des Liens du Sites", "",
                               date ("d/m/Y "));

   $pCadreduHaut->affiche_CadreHaut (true);
   switch ($action) {
      
      case "" :
         echo "<center>\n
                 <a href=$racine/$page_index?page=AdmLinks&".
            "action=ajouter>ajouter un nouveau liens</a>\n
               </center>\n<br><br>\n";
         $pMesLiens->Lister ();
         break;
      case "ajouter" :
         $pMesLiens->AjouterLiens ();
         break;
      case "ValideAjouter" :
         $pMesLiens->InsertLiens ($nom, $url, $description, $type);
         break;
      case  "modifier" :
         $pMesLiens->ModifierLiens ($elem);
         break;
      case "ValideModifier" :
         $pMesLiens->ValideModifierLiens ($elem, $nom, $url, $description,
                                          $type);
         break;
      case  "supprimer" :
         $pMesLiens->Supprimer ($elem);
         break;
   }
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_News ($numNews, $datelo, $newsTxt)
{
   global $racine, $page_index;

   include "Scripts/news.php";
   $pCadreduHaut = new Cadre ("Gestion des News du Site", "", date ("d/m/Y "));
   $pCadreduHaut->affiche_CadreHaut (true);
   $mesNews = new News ();
   if ($numNews == "")
      $mesNews->afficheAjout ();
   else {
      $mesNews->Ajoute ($numNews, $datelo, $newsTxt);
      echo "<br><br>\n
            <center><a href=$racine/$page_index?page=AdmNews>".
           "Retour à la page d'ajout des News</a></center> \n";
   }
   
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_AdminAlbumPhotos ($page, $action, $name, $place, $dep, $ordre,
                                 $jour, $mois, $annee, $elem)
{
   global $AlbumRoot;
   global $racine, $page_index;
   global $KeyAdmAlbm, $AlbumRoot;
   /* Create the object */
   $SiteRoot = dirname ($GLOBALS['HTTP_SERVER_VARS']['SCRIPT_FILENAME']);
   $pAlbum = new AlbumPhotos ($page, $SiteRoot, $AlbumRoot, "");
   
   //print_r ($GLOBALS);
   
  $pCadreduHaut = new Cadre ("Gestion de l'Album Photos.", "",
                             date ("d/m/Y "));
  
  $pCadreduHaut->affiche_CadreHaut (true);
  
  switch ($action) {
      case "ajouter":
         $pAlbum->AjouterAlbumPlusRecent ();
         break;
      case "ValideAjouter" :
         $pAlbum->InsertNewAlbum ($name, $place, $dep, $ordre, 
                                  $jour, $mois, $annee);
         break;
      case  "supprimer" :
         $pAlbum->Supprimer ($elem);
         break;
      case  "afficher" :
         $pAlbum->Afficher ($elem);
         break;
      case "upload":
         $file = $GLOBALS['_FILES']['imgfile']['tmp_name'];
         $fileName = $GLOBALS['_FILES']['imgfile']['name'];
         $pAlbum->upload ($elem, $file, $fileName);
         break;
      case "suppImage":
         $file = $GLOBALS['_GET']['file'];
         $pAlbum->SuppImage ($elem, $file);
         break;
      case  "modifier" :
         $pAlbum->Modifier ($elem);
         break;
      case "ValideModifier" :
         $pAlbum->ValideModifierAlbum ($elem,
                                       $name, $place, $dep, $ordre, 
                                       $jour, $mois, $annee);
         break;
      case "":
         echo "<center>\n
                 <li><a href=$racine/$page_index?page=".$KeyAdmAlbm."&".
                 "action=ajouter>Ajouter un nouvel Album Photos</a> <br><br>\n
                 </center>\n<br><br>\n";
         $pAlbum->ListerAlbumPlusRecent ();
         break;
   }
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_AdminRepertoire ($action, $elem, $num, $nom,
                                $compositeur, $style)
{
  global $racine, $page_index;

   $pMonRepertoire = new AnnuRepertoire ("repertoire", "M_Rep");
   $pCadreduHaut = new Cadre ("Gestion des Morceaux de l'Orchestre", "",
                              date ("d/m/Y "));

   $pCadreduHaut->affiche_CadreHaut (true);
   switch ($action) {

      case "":
         echo "<center>\n
                 <a href=$racine/$page_index?page=M_Rep&".
                 "action=ajouter>ajouter un nouveau Morceau</a> <br><br>\n
                 <a href=$racine/$page_index?page=ModRepIndex >\n
                    Modifier l'index du répertoire </a> <br><br>\n
               </center>\n<br><br>\n";
         $pMonRepertoire->ListerMorceaux ();
         break;
      case "ajouter":
         $pMonRepertoire->AjouterMorceau ();
         break;
      case "ValideAjouter":
         $pMonRepertoire->InsertMorceau ($elem, $num, $nom, $compositeur,
                                         $style);
         break;
      case  "modifier":
         $pMonRepertoire->ModifierRepertoire ($elem);
         break;
      case "ValideModifier":
         $pMonRepertoire->ValideModifierMorceau ($elem, $num, $nom, 
                                                 $compositeur, $style);
         break;
      case  "supprimer":
         $pMonRepertoire->Supprimer ($elem);
         break;
   }
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_AdmUsers ($action, $elem, $pseudo, $password, $email, 
                         $state)
{
   global $racine, $page_index;
   
   $pMyAnnuUsers = new AnnuUsers ("users", "AdmUsers");
   $pCadreduHaut = new Cadre ("Gestion des Utilisateurs de l'Orchestre", "",
                              date ("d/m/Y "));

   $pCadreduHaut->affiche_CadreHaut (true);
   switch ($action) {
      case "" :
         echo "<center>\n
                 <a href=$racine/$page_index?page=AdmUsers&".
            "action=ajouter>\n
                   <b><u>Ajouter un Utilisateur</u></b> </a><br><br>\n
               </center>\n<br><br>\n";
         $pMyAnnuUsers->ListerUsers ();
         break;
      case "ajouter" :
         $pMyAnnuUsers->AjouterUser ();
         break;
      case "ValideAjouter" :
         $pMyAnnuUsers->InsertUser ($elem, $pseudo, $password, $email,
                                    $state);
         break;
      case  "modifier" :
         $pMyAnnuUsers->ModifierUser ($elem);
         break;
      case "ValideModifier" :
         $pMyAnnuUsers->ValideModifierUser ($elem, $pseudo, $password,
                                            $email, $state);
         break;
      case  "supprimer" :
         $pMyAnnuUsers->Supprimer ($elem);
         break;
   }
   $pCadreduHaut->affiche_CadreBas(true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_AdminLivre_OR ($page)
{
   global $racine;

   include ("Scripts/Livredor.php");
   $pMonLivredor = new Livredor ();
   $pMonLivredor->RecuperePage ($page, true);
   
   if ($page == "")
      $page = 0;
   $page++;
   $pCadreduHaut = new  Cadre ("<center>Livre d'or de l'Harmonie de".
                               " montpellier-Jacou</center>", "",
                               date ("d/m/Y "));

   $pCadreduHaut->affiche_CadreHaut (true);
   echo "<center>\n";
   $pMonLivredor->GenereEntete ($page, true);
   echo "</center>\n";
   $pCadreduHaut->affiche_CadreBas (true);
   echo "<br /><br />";
   $pCadreduHaut = new Cadre (" Admin Livre d'or ", "", date ("d/m/Y "));
   $pCadreduHaut->affiche_CadreHaut (true);
   echo "<center>\n";
   $pMonLivredor->AfficheTexte ();
   echo "</center>\n";
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_Supp_Element_Liv_OR ($num_elem,$action)
{
   global $racine, $page_index;

   include ("Scripts/Livredor.php");

   $pMonLivredor = new Livredor ();
   
   /* On demande confirmation avant d'effacer définitivement l'entrée
    *  dans le livre d'Or
    */
   if ($action == "quest")
   {
      $pCadreduHaut = new Cadre ("Attention !!", "", date ("d/m/Y "));
      $pCadreduHaut->affiche_CadreHaut (true);
      echo "<center>\n
             <font size=4 color=red>Souhaitez-vous réellement effacer".
           " définitivement ce message ?</font><br>\n";
      
      $pMonLivredor->GetText ($num_elem);
      echo "<br><br>\n
           <center><a href=$racine/$page_index?page=AdmLivOR >\n
             <font size=2 color=green><b>Retour aux messages</b></font></a>\n
             <a href=$racine/$page_index?page=SuppElemLVOR&".
         "num_id=$num_elem&action=efface>\n
                 <font size=2 color=red><b>Effacer ce message</b></font>
             </a>\n
             <br><br></center>\n";
      $pCadreduHaut->affiche_CadreBas (true);
   }
   else if ($action == "efface")
   {
      $pCadreduHaut = new Cadre ("Suppression", "", date ("d/m/Y "));
      $pCadreduHaut->affiche_CadreHaut (true);
      echo "<center>\n";
      $pMonLivredor->SupprimeText ($num_elem);
      echo "<a href=$racine/$page_index?page=AdmLivOR >\n";
      echo "<font size=2 color=green><b>Retour aux messages</b></font></a>\n";
      echo "</center><br /><br />\n";
      $pCadreduHaut->affiche_CadreBas (true);
   }
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function print_AdminRecrutement ($RecruPage)
{
   echo "<br /><br /><br />\n";
   /* Si $RecruPage vaut null on affiche la liste des cadres que l'on peut
      modifier */
   $pCadreduHaut = new Cadre ("Recrutement", "", date ("d/m/Y "));
   $pCadreduHaut->affiche_CadreHaut (true);
   echo "<br>\n<u><b>Cliquez sur le cadre que vous voulez editer :</b></u>";
   AfficheListeTitre ("cadre_Recrutement");
   echo "<br>\n";
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 *
 ***************************************************************************/
function AfficheListeTitre ($nomTable)
{
   global $racine, $page_index, $sql_bdd;
   
   /* On se connecte sur la base ajem */
   $connexion = jb_sql_connect (false);
   
   $resultat = mysql_db_query ($sql_bdd, "select * from $nomTable",
                               $connexion);
   echo "<ul>\n";
   $i = 1;
   while ($ligne = mysql_fetch_array ($resultat)) {

      echo "<li>\n<a href=$racine/$page_index?page=M_Recrutement&nligneTable=".
         "$i>\n";
      echo "$ligne[titre]</a></li>\n";
      $i++;
   }
   echo "</ul>\n";
   mysql_free_result ($resultat);
}

/***************************************************************************
 *
 * Cette fonction log  dans le fichier log.txt dans le répertoire Textes
 * toutes les action qui sont faite par les Administrateurs du site.
 *
 ***************************************************************************/
function sys_log ($nomCadre, $date, $ident)
{
   /* On créé la chaine qui va etre rajoutée dans le journal */
   $ligne = $date." :  ".$ident." a modifié le cadre ".$nomCadre."<br>\n";

   $fp=fopen ("./log.txt","a+");
   fputs ($fp,$ligne);
   fclose ($fp);
}

/***************************************************************************
 *
 * Cette fonction permet  d'afficher les statistique du site.
 *
 ***************************************************************************/
function print_Statistique ()
{
   global $racine;

   $pCadreduHaut = new Cadre ("Statistiques de visites", "", date ("d/m/Y "));
   $pCadreduHaut->affiche_CadreHaut (true);
   
   echo"<table width=\"400\" border=\"0\" cellspacing=\"2\" cellpadding=\"4\"
           align=\"center\" class=\"normal\">
         <tr bgcolor=\"#CCCCCC\">
           <td colspan=\"4\" align=center> Statistiques du site de l'Harmonie
          </td>
          </tr> <tr>
            <td  bgcolor=\"#CCCCCC\" width=\"68\">
              <div align=\"center\"><b> jour </b></div>
            </td>
            <td  bgcolor=\"#CCCCCC\" width=\"68\">
              <div align=\"center\"><b> semaine </b></div>
            </td>
            <td bgcolor=\"#CCCCCC\" width=\"68\">
                <div align=\"center\"><b> mois </b></div>
            </td> 
          </tr>\n";
   
   $color = "#CCCCFF" ;
   echo"<tr bgcolor=$color>";
   
   echo"<td width=\"282\">";
   echo"<div align=\"center\"><a href=\"$racine/Scripts/AdminStats.php?table=$bar[0]".
      "&reqdate=".time ()."&reset=0&period=jour\">stats</a></div>";
   echo"</td>";
   echo"<td width=\"282\">";
   echo"<div align=\"center\"><a href=\"$racine/Scripts/AdminStats.php?table=$bar[0]".
      "&reqdate=".time ()."&reset=0&period=semaine\">stats</a></div>";
   echo"</td>";
   echo"<td width=\"282\">";
   echo"<div align=\"center\"><a href=\"$racine/Scripts/AdminStats.php?table=$bar[0]".
      "&reqdate=".time ()."&reset=0&period=mois\">stats</a></div>";
   echo"</td>";
   echo"</tr>";
   $sta = !$sta;
   
   echo"</table><br /><br /><br />";
   
   $pCadreduHaut->affiche_CadreBas (true);
}

/***************************************************************************
 *
 * Cette fonction affiche le journal des modifications
 *
 ***************************************************************************/
function print_Journal_Modification ()
{
   echo "<br /><br /><br />\n";
   // On creer un objet  Cadre de type fichier
   $pMonCadre = new CadreFichier ("log.txt",0);
   $pMonCadre->Affiche ();
}


?>