<?php
/*
Copyright (C) 2002 Loc Dayot - Mairie Pierrefitte (93)
EPNadmin - Version 0.6 - 3 mai 2003
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/
*/
//require_once("header.inc.php");
require_once("constantes.inc.php"); // dfinition des constantes
//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
// -
// Manipulation de dates, heures... -
// //
// Conversions d'heures, dates et textes //
// //
// Formate une heure
function datetoHeure($heure)
{
if (substr($heure,0,1)=="-" || substr($heure,0,1)=="+")
{
$signe=substr($heure,0,1);
$heure=substr($heure,1);
}
// Pour pouvoir afficher des heures plus de 24, on n'utilise pas les fonctions classiques
$h="";
while (substr($heure,0,1)!=":" && strlen($heure)>0)
{
$h.=substr($heure,0,1);
$heure=substr($heure,1);
}
$heure=substr($heure,1);
$m="";
while (substr($heure,0,1)!=":" && strlen($heure)>0 && strlen($m)<2)
{
$m.=substr($heure,0,1);
$heure=substr($heure,1);
}
return $signe.$h."h".$m;
}
// Formate une heure pour un formulaire
function datetoHeurecourt($heure)
{
if (substr($heure,0,1)=="-" || substr($heure,0,1)=="+")
{
$signe=substr($heure,0,1);
$heure=substr($heure,1);
}
return $signe.date("H:i", strtotime($heure));
}
// Formate une date
function datetodate($date)
{
return jourSemaine(date("w", strtotime($date)))." ".date("d", strtotime($date))." ".nomMois(date("m", strtotime($date)))." ".date("Y", strtotime($date));
}
// Formate une date pour un formulaire
function datetodatecourt($date)
{
return date("d/m/Y", strtotime($date));
}
// Calcul de l'addition de deux heures
function additionHeure($heure1, $heure2)
{
return minute2heure(heure2minute($heure1)+heure2minute($heure2));
}
// Calcul de la diffrence entre deux heures
function differenceHeure($heure1, $heure2)
{
return minute2heure(heure2minute($heure1)-heure2minute($heure2));
}
// Ajout de VV
//fonction de conversion de tempspour la gestion des credits integralement a la minute
function h2min($heures)
{
return heure2minute($heures);
/* LD : Ne conserve pas le signe et ne dpasse pas 99 heures.
// Donc on garde l'ancienne fonction.
if(strlen($heures)>5)
$heures=substr($heures,0,4);
$pos=strrpos($heures,":");
if (!$pos === false)
{
$heuresH=substr($heures,0,strrpos($heures,":"))*60;
$heuresM=substr($heures,strrpos($heures,":")+1,strlen($heures));
}
else
{
$heuresH=$credit_acces_individuel*60;
$heuresM=0;
}
return ($heuresH+$heuresM);
*/
}
function min2h($minutes)
{
return minute2heure($minutes);
/* LD : Ne conserve pas le signe et ne dpasse pas 99 heures.
// Donc on garde l'ancienne fonction.
$heuresH=floor($minutes/60);
$heuresM=(($minutes/60) - floor($minutes/60))*60;
if(strlen($heuresM)>1)
return ($heuresH . ":" . $heuresM);
else
return ($heuresH . ":0" . $heuresM);
*/
}
// Fin ajout VV
// Convertir une heure formate en minutes (conservation du signe)
function heure2minute($heure)
{
if (substr($heure,0,1)=="-" || substr($heure,0,1)=="+")
{
$signe=substr($heure,0,1);
$heure=substr($heure,1);
}
$minutes = 60 * $heure;
$minutes += substr($heure, strpos($heure, ":")+1); // ,2
return $signe.$minutes;
}
// Convertir des minutes en une heure formate (conservation du signe)
function minute2heure($minutes)
{
$minutes=0+$minutes;
if ($minutes<0)
{
$signe="-";
$minutes=-$minutes;
}
$heure = floor($minutes/60);
$min = $minutes - $heure*60;
if ($heure<10) $heure="0".$heure;
if ($min<10) $min="0".$min;
return $signe.$heure.":".$min.":00";
}
function jourSemaine($dayweek)
{
global $slistejours;
return $slistejours[($dayweek+0)]; // le +0, c'est pour transformer en nombre
}
function nomMois($mois)
{
global $slistemois;
return $slistemois[($mois+0)]; // le +0, c'est pour transformer en nombre
}
// Partie de formulaire proposant des heures
function ChoixHeure($heure, $nomchamp="heurev", $hmin=MINHORAIRE, $hmax=MAXHORAIRE)
{
global $unitehoraire; // nombre de minutes qui est l'unit de temps de rservation des postes individuels
$prem=TRUE;
echo "<td>
<select name=\"$nomchamp\">";
for ($heu=$hmin ;
$heu<=$hmax && ($heu!="00:00" || $prem);
$heu=date("H:i", strtotime("+".$unitehoraire." minutes", strtotime($heu))))
{
echo "<option value=\"$heu\"";
if ($heu==$heure) echo " selected";
echo ">".datetoheure($heu)."</option>\n";
$prem=FALSE;
}
echo "</select>";
echo "</td>\n";
}
// Partie de formulaire proposant de choir un jour
function Choixjour($datev, $enable="")
{
if ($enable=="disabled")
echo "<input type=\"hidden\" name=\"datev\" value=\"$datev\">";
echo "<td><select name=\"datev\" $enable>\n";
for ($nd=10 ; $nd>0; $nd--)
{
$ndate=date("Y-m-d", strtotime("-".$nd." days", strtotime($datev)));
echo "<option value=\"$ndate\"";
if ($datev==$ndate) echo " selected";
echo ">".jourSemaine(date("w",strtotime($ndate))).
" ".date("d",strtotime($ndate)).
" ".nomMois(date("m",strtotime($ndate))).
" ".date("Y",strtotime($ndate)).
"</option>\n";
}
for ($nd=0 ; $nd<=60; $nd++)
{
$ndate=date("Y-m-d", strtotime("+".$nd." days", strtotime($datev)));
echo "<option value=\"$ndate\"";
if ($datev==$ndate) echo " selected";
echo ">".jourSemaine(date("w",strtotime($ndate))).
" ".date("d",strtotime($ndate)).
" ".nomMois(date("m",strtotime($ndate))).
" ".date("Y",strtotime($ndate)).
"</option>\n";
}
echo "</select>
</td>\n";
}
// Partie de formulaire proposant des dates (en clair)
// utilis dans stats.php (ente autres)
function Choixdate($date, $champ="", $passe=FALSE)
{
if ($date>"0000-00-00")
{
$day = date("d",strtotime($date));
$year = date("Y",strtotime($date));
$month = date("m",strtotime($date));
}
else
{
$day=$year=$mount="a";
}
echo "<table border=0><tr><td><select name=\"".$champ."jour\"><option></option>";
for ($n=1; $n<=31; $n++)
{
echo "<option value=\"$n\"";
if ($day==$n) echo " selected";
echo ">$n\n";
}
echo "</select></td><td><select name=\"".$champ."mois\"><option></option>";
for ($n=1; $n<=12; $n++)
{
echo "<option value=\"$n\"";
if ($month==$n) echo " selected";
echo ">".nomMois($n)."\n";
}
echo "</select></td><td><select name=\"".$champ."annee\"><option></option>";
if ($passe)
{
$d=date("Y")-120;
$f=date("Y")-1;
}
else
{
$d=date("Y")-10;
$f=date("Y")+10;
}
for ($n=$d; $n<=$f; $n++)
{
echo "<option value=\"$n\"";
if ($year==$n) echo " selected";
echo ">$n\n";
}
echo "</select></td></tr></table>\n";
}
?>