BlueGEEK Journal

Accueil > Programmes > Projets PHP pour Sites WEB > Agendas > Cyber Agenda ++ > Cyber-Agenda++ (Projet) > Fusionner 2 agendas

AGENDA

Fusionner 2 agendas

PHP

mercredi 22 février 2006, par bluegyn_spip

<?PHP

/*** JC Hild BlueGYN 2006 sur PHP

* Editeur pspad

* Débuggeur EasyPHP

* Manuel www.fr.php.net

* Version 1 du 21 02 2006

***/

echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">';

echo '<html><head>';

echo '<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">';

echo '<title>Cyber Agenda 2006 ***{:- Bluegyn [FUSION]</title>';



require('admin/agenda.inc.php');      // Parametres generaux

require('admin/mesagendas.inc.php');  // Liste des agendas



define ("_INIT_",0);

define ("_ACTION_",1);

//define ("_DEBUG_",TRUE); // Flag de debogage

define ("_DEBUG_",FALSE); // Flag de debogage

$_SELF=$_SERVER["PHP_SELF"];



// -------------------------------------------------------

//   DECLARATION/AFFECTATION DES VARIABLES GLOBALES

// -------------------------------------------------------

$mode=isset($_POST['mode'])?$_POST['mode']:_INIT_;

$super_agenda = array();



// ========================================================

// CONSTRUCTION DE LA PAGE HTML

// ========================================================

echo '<body>';

// -------------------------------------------------------

// Bouton Retour

// -------------------------------------------------------

echo '

 <table width="100%"><tr><td width=30%>

 <form action="agenda.php"><input type="submit" value="Retour Agenda"></form></td>

 <TD wdth=30%>

 <h2>Fusionner un Super Agenda</H2></TD><td>'.date("j-m-Y").'</td></tr></table>';

 

echo '<hr>';

switch($mode)

{

case _INIT_ :

echo '

 <blockquote>

 <h3><u>Quels agendas voulez vous associer ?</u></h3>

 <form method="POST" action='.$_SELF.'>';

 

$i=0;

foreach ($mesagendas as $key => $agenda)

{

 if($agenda["titre"]!="Super Agenda") // En attendant mieux

 {

   echo '<input

     type  = "CHECKBOX"

     name  = lignes_checked['.$i.']

     value = '.$i.'>'.

     $agenda["titre"].'<BR>';

   $i++;

 };

}; /*foreach*/

echo '</blockquote>';

echo '<HR><CENTER>';

echo '<input type="hidden" name="mode" value="1">'; // passe la valeur _ACTION_

echo '<input type="reset" value="Annuler le choix">';

echo '<input type="submit" value="Fusionner les Agendas">';

echo '</form></CENTER';



break;



case _ACTION_ :



// -------------------------------------------------------

// DEFINITION DE VARIABLES

// -------------------------------------------------------

$lignes_checked = @$_POST['lignes_checked']; // Pointe les agendas cochés

$i=0;

$texte="";

$max=count($lignes_checked);

// -------------------------------------------------------

// PAGE D ERREUR PAS DE SELECTION

// -------------------------------------------------------

if ($max==0)

{

 echo "ERREUR: Vous devez selectionner au moins un agenda!!!";

 echo '<form action='.$_SELF.'><input type="submit" value="retour"></form>';

 break;

};



// -------------------------------------------------------

// AFFICHAGE DES RESULTATS

// -------------------------------------------------------

echo "Vous avez sélectionné ".$max." agenda(s) :<br>";

echo '<ul>';

foreach($lignes_checked as $checked)

{

 echo '<li> Agenda numéro '.$checked.' = '.$mesagendas[$checked]["nom"];

};

echo '</ul>';

echo '<hr>';

// -------------------------------------------------------

// AFFICHAGE DES AGENDAS

// -------------------------------------------------------

reset($lignes_checked);

foreach($lignes_checked as $checked)

{

 $TAB=file('data/'.$mesagendas[$checked]["nom"]);

 foreach($TAB as $ligne)

 {

   if(_DEBUG_)echo $ligne.'<br>';

   $super_agenda[]=$ligne;

 }

 if(_DEBUG_)echo'<hr>';

};

sort ($super_agenda);

$_F = fopen('data/super_agenda_data.php',"w+"); // Ouvre le super agenda en écriture

echo "<H3>Le Super Agenda contient maintenant ".count($super_agenda)." lignes</H3>";

if(_DEBUG_)echo '<OL>'; // Liste numérotéé

foreach ($super_agenda as $ligne)

{

 if(_DEBUG_)echo'<li>'.$ligne;

 if (trim($ligne)!="\n") // élimine les lignes vides

   fputs($_F,$ligne);

};

if(_DEBUG_)echo'</ol>';

fclose($_F);

echo'<hr>';



// Retour auto vers agenda

if(!_DEBUG_) print('<meta http-equiv="refresh" content="0;URL=agenda.php">');



break;



}; /*switch*/



echo '</body>';

echo '</html>';

?>

- Pour afficher du Code HTML dans une page en temps que Message et non en temps que CODE actif,

- il faut l’encadrer dans un Balisage CODE

  • <CODE>
    • Mon Code Ici ..
  • </CODE>

Messages

  • Je suis trop nul, je n’arrive pas à faire tourner le truc. Je cree un fichier avec tout ce code, je le place dans le repertoire de notre agenda en ligne et là une telle multitude de messages d’erreur que j’abandonne. Pourtant il semble bien qu’il suffise de placer super-agenda.php dans le repertoire racine non ?

    Fd

    • Pourtant il semble bien qu’il suffise de placer super-agenda.php dans le repertoire racine non ?

      Oui tout à fait,

      On va essayer de faire court puisque j’ai modifié la présentation des Tableaux dans le fichiers

      MESAGENDAS.INC

      L’ancienne notation des tableaux

      $mesagendas = array ("super_agenda_data.php","Super Agenda" ) ;

      Obligeait pour trouver le NOM à l’appeler par son INDEX

      - $mesagenda[0] ;

      Et pour trouver le TITRE

      - $mesagenda[1] ;

      Or PHP permet dans ses tableaux de NOMMER LES CHAMPS de cette façon, en les appelant par ses CLEFS

      $mesagendas = array (

      "nom" => "super_agenda_data.php",

      "titre" => "Super Agenda"

      ) ;

      Ce qui rend leur interpellation beaucoup plus conviviale

      Le nom de l’agenda s’appelle maintenant par

      - $mesagenda["nom"] ;

      Et pour trouver le TITRE

      - $mesagenda["titre"] ;

      Il faut donc remplacer partout ou tu as

      $agenda[0] ou [1] par son équivalent convivial (on parle de clé à la place de l’index)

      $agenda["nom"] ou ["titre"]

      Voir en ligne : Tous les sources sont à jour et ça fonctionne sous IE et sous Firefox