<?php
/*
Copyright (C) 2002 Loc Dayot
EPNadmin - Version 0.7
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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
http://epnadmin.pierrefitte93.fr/
*/
/*
Version 0.7 :
- Inclure des fichiers externes pour les usagers et pour les animateurs
- Tentative de faire des changes entre serveurs EPNadmin de contenus d'initiations.
*/
require_once("header.inc.php");
require_once("constantes.inc.php"); // dfinition des constantes
if (!defined("FCT_PEDAGOGIE"))
{
echo $fctnonactive;
exit;
}
//require_once("fonctions.inc.php"); // concernant des fonctions transversales inclassables
require_once("mysql.inc.php"); // concernant mysql
//require_once("sessions.inc.php"); // concernant les sessions et initiations
//require_once("usagers.inc.php"); // concernant la gestion des usagers
//require_once("reservations.inc.php"); // concernant les rservations des postes en accs individuel par des usagers
//require_once("tableaux.inc.php"); // Concernant l'affichage transpos d'un tableau
//require_once("siteweb.inc.php"); // concernant les pages perso des usagers et les sites web des structures
//require_once("dateheure.inc.php"); // concernant la manipulation des heures et des dates, formulaire, conversion...
//require_once("structures.inc.php"); // concernant les structures
require_once("initiations.inc.php"); // concernant les initiations et les thmes
//require_once("parcours.inc.php"); // concernant les parcours des usagers et leur positionnement
$ptitr=$sinitiations;
$titr = $stitreinitiations;
$datemaj="24 mai 2003";
define("COULEUR", COULEUR_PEDAGOGIE);
require("entete.inc.php");
switch ($operation)
{
case 11 : // confirmation d'ajout ou mise jour
case 21 :
{
cadre_debut($sinitmaj);
if (PEDAGOGIE_AUTRES<"w")
{
echo $pasledroit;
echo cadre_fin();
break;
}
$mes="";
if ($id_theme=="") $mes.=$spaschoisitheme;
if ($initiation=="") $mes.=$spasnominitiation;
if ($niveau=="") $mes.=$spasniveau;
if ($duree=="") $mes.=$spasduree;
if ($mes!="")
echo "<p>$mes</p>";
else
{
$sep=""; $i=0; $t="";
while (TRUE)
{
$vara="prerequisA".$i;
$varb="prerequisB".$i;
if ($$vara || $$varb)
{
if ($$vara>0 && $$varb>0)
$t.=$sep.$$vara."|".$$varb;
else
$t.=$sep.$$vara.$$varb;
$sep=",";
$i++;
}
else
break 1; // sortir de la boucle while
}
$prerequis=$t;
$sep=""; $i=0; $t="";
while ($u=$prolongements[$i])
{
$t.=$sep.$u;
$sep=",";
$i++;
}
$prolongements=$t;
if (!$id_initiation)
{
echo $senrnouvinitiation;
$req = "INSERT INTO initiations "
. "(id_theme, initiation, niveau, objectifs, moyen_evaluation, prerequis,
duree, nbmaxparticipants, contenu, preparation,
role_formateur, role_apprenants, prolongements, dans_parcours, public, auteurs_versions) "
. "VALUES "
. "(\"$id_theme\", \"$initiation\", \"$niveau\", \"$objectifs\", \"$moyen_evaluation\", \"$prerequis\",
\"$duree\", \"$nbmaxparticipants\", \"$contenu\", \"$preparation\",
\"$role_formateur\", \"$role_apprenants\", \"$prolongements\",
\"$dans_parcours\", \"$public\", \"$auteurs_versions\" )";
$res = executeRequete($req);
$req = "SELECT max(id) AS idm FROM initiations";
$res= executeRequete($req);
$initiation=fetch_object($res);
$id_initiation=$initiation->idm;
}
else
{ // C'est une mise jour de l'enregistrement.
echo $smiseajourenr;
$req = "UPDATE initiations SET id_theme=\"$id_theme\", initiation=\"$initiation\", niveau=\"$niveau\",
objectifs=\"$objectifs\", moyen_evaluation=\"$moyen_evaluation\", prerequis=\"$prerequis\",
duree=\"$duree\", nbmaxparticipants=\"$nbmaxparticipants\", contenu=\"$contenu\",
preparation=\"$preparation\", role_formateur=\"$role_formateur\", role_apprenants=\"$role_apprenants\",
prolongements=\"$prolongements\", public=\"$public\", dans_parcours=\"$dans_parcours\", auteurs_versions=\"$auteurs_versions\"";
$req .= " WHERE id = \"$id_initiation\"";
$res = executeRequete($req);
}
// Traitement de la mise disposition publique de certaines initiations.
if ($public=="oui")
{
echo "<p>$sinitpublic</p>\n";
//TODO : ajouter_initiation_public($id_initiation);
}
echo cadre_fin();
break; // tout c'est bien pass
}
// pas de break si jamais il y avait besoin d'une nouvelle saisie.
}
case 2 : // formulaire d'dition
{
// Saisie pour modification d'un enregistrement
if ($operation==2)
echo cadre_debut($sinitmaj);
if (PEDAGOGIE_AUTRES<"w")
{
echo $pasledroit;
echo cadre_fin();
break;
}
$res = recherche("initiations", "id", $id_initiation);
if ($initiation = fetch_array($res))
extract($initiation);
// pas de break, on enchane avec le formulaire d'dition
}
case 1 : // formulaire d'ajout
{
// Dbut du fomulaire de saisie d'enregistrement d'initiation
if ($operation==1)
echo cadre_debut($sinitmaj);
if (PEDAGOGIE_AUTRES<"w" && PEDAGOGIE_MOI<"w")
{
echo $pasledroit;
echo cadre_fin();
break;
}
echo "<form method=\"post\" action=\"\" name=\"edition\">\n";
if ($id_initiation)
echo "<input type=\"hidden\" name=\"id_initiation\" value=\"$id_initiation\">\n";
echo " <input type=\"hidden\" name=\"operation\" value=\"21\">
<table border=\"1\" align=\"center\">
<tr>
<td>$stheme :
<select name=\"id_theme\">\n";
if ($id_theme)
{
$req = "SELECT * FROM themes WHERE id=$id_theme";
$res = executeRequete($req);
while ($theme=fetch_object($res))
echo "<option value=\"$theme->id\" SELECTED>$theme->theme\n";
$req = "SELECT * FROM themes WHERE id<>$id_theme";
}
else
$req = "SELECT * FROM themes";
$res = executeRequete($req);
while ($theme=fetch_object($res))
echo "<option value=\"$theme->id\">$theme->theme\n";
echo " </select>
</td>
<td rowspan=\"2\">
<div align=\"center\">$sintitule :<br>
<textarea name=\"initiation\" cols=\"40\" rows=\"2\">$initiation</textarea>
</div>
</td>
</tr>
<tr>
<td>$sniveau :
<select name=\"niveau\" size=\"1\">
<option value=\"débutant(e)\"";
if ($niveau=="dbutant(e)") echo " SELECTED";
echo ">$sdebutant</option>
<option value=\"initié(e)\"";
if ($niveau=="initi(e)") echo " SELECTED";
echo ">$sinitie</option>
<option value=\"avancé(e)\"";
if ($niveau=="avanc(e)") echo " SELECTED";
echo ">$savance</option>
</select>
</td>
</tr>
<tr>
<td>
<div align=\"center\">$sobjectifs :<br>
<textarea name=\"objectifs\" rows=\"8\" cols=\"40\">$objectifs</textarea>
</div>
</td>
<td>
<p align=\"center\">Moyens d'évaluation :<br>
<textarea name=\"moyen_evaluation\" rows=\"8\" cols=\"40\">$moyen_evaluation</textarea>
</p>
</td>
</tr>";
// Traitement trs spcial des prrequis
// en incluant si possible le "OU" entre deux initiations.
echo " <tr>
<td colspan=2>
<div align=\"center\"><b>$sinitprerequis :</b><br>";
// Dans prrequis, nous avons une suite de nombre (des id_initiation) spars
// par des virgules. S'il entre deux nombres, il y a le signe |, c'est que c'est un OU
// entre les deux.
// Exemple : $prerequis="1,3,15|18,20";
if (!$prerequis | $prerequis=="")
$prerequis="0";
else
$pr1 = explode(",", $prerequis);
$npr=0; // numro de prrequis.
$nprfin=3; // Nombre de lignes vide pour ajouter des prrequis.
$req = "SELECT *, initiations.id as id_initiation FROM initiations
LEFT JOIN themes ON themes.id=id_theme
ORDER BY id_theme, niveau, initiation";
while ($nprfin>0)
{
$id_init_prA=$id_init_prB=-1;
if ((!($id_init_pr=$pr1[$npr])) || ($id_init_pr<=0))
$nprfin--;
else
list($id_init_prA, $id_init_prB) = explode("|", $id_init_pr);
$res = executeRequete($req);
if ($npr>0) echo "<br><b>$etaussi</b> ";
echo "<select name=\"prerequisA$npr\">
<option value=\"\">aucune</option>\n";
while ($init=fetch_object($res))
{
echo "<option value=\"$init->id_initiation\"";
if ($id_init_prA==$init->id_initiation)
echo " selected";
echo ">".substr($init->theme,0,10)." : "
.substr($init->initiation,0,30)." ("
.substr($init->niveau,0,5).")</option>\n";
}
echo "</select> $oualors ";
$res = executeRequete($req);
echo "<select name=\"prerequisB$npr\">
<option value=\"\">aucune</option>";
while ($init=fetch_object($res))
{
echo "<option value=\"$init->id_initiation\"";
if ($id_init_prB==$init->id_initiation)
echo " selected";
echo ">".substr($init->theme,0,10)." : "
.substr($init->initiation,0,30)." ("
.substr($init->niveau,0,5).")\n";
}
echo "</select>\n";
$npr++;
}
echo "</div>
</td></tr>
<tr><td>
<div align=\"center\">$sprolongements :<br>
<select name=\"prolongements[]\" size=\"5\" multiple>\n";
if (!$prolongements | $prolongements=="") $prolongements="0";
$req = "SELECT * FROM initiations
WHERE id IN ($prolongements) ORDER BY id_theme, initiation, niveau";
$res = executeRequete($req);
while ($init=fetch_object($res))
echo "<option value=\"$init->id\" SELECTED>$init->initiation ($init->niveau)\n";
$req = "SELECT * FROM initiations
WHERE id NOT IN ($prolongements) ORDER BY id_theme, initiation, niveau";
$res = executeRequete($req);
while ($init=fetch_object($res))
echo "<option value=\"$init->id\">$init->initiation ($init->niveau)\n";
if ($duree=="") $duree="00:00";
if ($nbmaxparticipants=="") $nbmaxparticipants="8";
echo " </select>
</div>
</td>
</tr>
<tr>
<td><table><tr><td>$sduree :</td>";
ChoixHeure($duree, "duree", $hmin="00:00", $hmax="12:00");
echo " </td></tr></table></td>
<td>$snbmaxpart :
<input type=\"text\" name=\"nbmaxparticipants\" size=\"5\" maxlength=\"2\" value=\"$nbmaxparticipants\">
</td>
</tr>
<tr>
<td>
<div align=\"center\">$sinitderoulement :<br>
<textarea name=\"contenu\" cols=\"40\" rows=\"8\">$contenu</textarea>
</div>
</td>
<td align=\"center\">$sinitpreparation :<br>
<textarea name=\"preparation\" cols=\"40\" rows=\"8\">$preparation</textarea>
</div>
</td>
</tr>
<tr>
<td>
<div align=\"center\">$sinitroleformateur :<br>
<textarea name=\"role_formateur\" cols=\"40\" rows=\"8\">$role_formateur</textarea>
</div>
</td>
<td align=\"center\">$siniroleapprenants :<br>
<textarea name=\"role_apprenants\" cols=\"40\" rows=\"8\">$role_apprenants</textarea>
</td>
</tr>
<tr>
<td align=\"center\">$sinitauteursversions :<br>(ajouter sans effacer les prcdentes infos)<br>
<textarea name=\"auteurs_versions\" cols=\"40\" rows=\"8\">$auteurs_versions</textarea>
</div>
</td>
<td align=\"center\">
$sinitdansparcours :<br>
<input type=\"radio\" name=\"dans_parcours\" value=\"non\"";
if ($dans_parcours!="oui") echo " checked";
echo "> $snon
<input type=\"radio\" name=\"dans_parcours\" value=\"oui\"";
if ($dans_parcours=="oui") echo " checked";
echo "> $soui
<br><br>
Le contenu d'initiation est public :<br>
<input type=\"radio\" name=\"public\" value=\"non\"";
if ($public!="oui") echo " checked";
echo "> $snon
<input type=\"radio\" name=\"public\" value=\"oui\"";
if ($public=="oui") echo " checked";
echo "> $soui
</td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\">
<input type=\"submit\" name=\"Envoyer\" value=\"$sconfirmer\">
</td>
</tr>
</table>
</form>\n";
// Fin du formulaire de saisie.
echo cadre_fin();
break;
}
case 3 : // formulaire de suppression
{
echo cadre_debut($sinitsuppr);
if (PEDAGOGIE_AUTRES<"w")
{
echo $pasledroit;
echo cadre_fin();
break;
}
echo $sattentionsupprinit;
$res = recherche("parcours", "id_initiation", $id_initiation);
$res2 = recherche("questions", "id_initiation", $id_initiation);
$res3 = recherche("sessions", "id_initiation", $id_initiation);
if (fetch_object($res) || fetch_object($res2) || fetch_object($res3))
echo $sattentioninitsert;
printf($sconfirmerquandmeme, "initiations.php?operation=31&id_initiation=$id_initiation");
echo cadre_fin();
break;
}
case 31 : // confirmation de suppression
{
echo cadre_debut($sinitsuppr);
if (PEDAGOGIE_AUTRES<"w")
{
echo $pasledroit;
echo cadre_fin();
break;
}
echo $sinitsuppr;
$req = "DELETE FROM initiations WHERE id=$id_initiation";
$res = executeRequete($req);
echo cadre_fin();
break;
}
case 5 : // Affichage de la liste des initiations
{
echo cadre_debut($sinitliste);
if (PEDAGOGIE>"~")
{
echo "<table>\n";
$req="SELECT * FROM themes ORDER BY id";
$res=executeRequete($req);
while ($theme = fetch_object($res))
{
if ($couleur=="")
$couleur=" bgcolor=\"".COULEUR_PEDAGOGIE."\"";
else
$couleur="";
echo "<tr><td width=200$couleur>\n";
afficheTheme($theme);
echo "</td>\n<td>\n<table width=\"100%\" border=1>\n";
$res2 = recherche("initiations", "id_theme", $theme->id, "niveau");
$aucun=true;
while ($initiation=fetch_object($res2))
{
echo "<tr>";
echo "<td width=80 nowrap>$initiation->niveau</td>\n";
echo "<td><b>$initiation->initiation</b></td>\n";
echo "<td width=21><a href=\"initiations.php?id_initiation=$initiation->id\">$info</a></td>\n";
if (PEDAGOGIE_AUTRES>="w")
echo "<td width=21><a href=\"initiations.php?operation=2&id_initiation=$initiation->id\">$modifier</a></td>\n";
if (PEDAGOGIE_AUTRES>="w")
echo "<td width=21><a href=\"initiations.php?operation=3&id_initiation=$initiation->id\">$supprimer</a></td>\n";
if ($initiation->dans_parcours=="oui")
echo "<td width=21><a href=\"questions.php?id_initiation=$initiation->id\">$sQuestions</a></td>\n";
$aucun=false;
echo "</tr>\n";
}
if ($aucun)
echo "<tr><td colspan=5>$spasdinit</td></tr>\n";
echo "</table></td></tr>\n";
}
echo "</table>\n";
}
else
echo $pasledroit;
echo cadre_fin();
break;
}
default : // affichage dtails
{
echo cadre_debut($sinitdetails);
if ($id_initiation && PEDAGOGIE>"~")
{
afficheInitiation($id_initiation);
echo "<table align=center border=1 bgcolor=\"".COULEUR_PEDAGOGIE."\"><tr>\n";
if (PEDAGOGIE_AUTRES>="w")
echo "<td width=21><a href=\"initiations.php?operation=2&id_initiation=$id_initiation\">$modifier</a></td>
<td width=21><a href=\"initiations.php?operation=3&id_initiation=$id_initiation\">$supprimer</a></td>\n";
echo "<td width=21><a href=\"questions.php?id_initiation=$id_initiation\">$sQuestions</a></td>\n";
if (PARCOURS_AUTRES>="r")
echo "<td width=150><a href=\"parcours.php?operation=9&id_initiation=$id_initiation\">$sparticipants</a></td>
<td width=150><a href=\"parcours.php?operation=8&id_initiation=$id_initiation\">$spotentiels</a></td>\n";
echo " </tr></table>\n";
if (SESSIONS_AUTRES>="r")
afficheBilansInitiation($id_initiation);
}
else
echo $pasledroit;
echo cadre_fin();
break;
}
} // switch
if (PEDAGOGIE>"~")
{
if (PEDAGOGIE_MOI>="w" || PEDAGOGIE_AUTRES>="w")
echo "<p><a href=\"initiations.php?operation=1\">$sajoutinit</a>.</p>\n";
if (PEDAGOGIE>"~")
echo "<p><a href=\"initiations.php?operation=5\">$svoirlisteinit</a>.</p>\n";
}
else
echo $pasledroit;
require("basdepage.inc.php");
echo "</body></html>\n";
require("footer.inc.php");
?>