testplanning.php 3.74 KB
Newer Older
Bate's avatar
Bate committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
<?php

/**
 * @file
 * Tutoriel n°1 : stdentities et stdcontents
 *
 * Exemple des plannings
 *
 * @author Julien Etelain
 */

/*
 ************** Partie A : Les bases d'une page **************
 */

/*
 * première ligne effective de toute page du site : le chemin vers la racine
 */
$topdir = "../";

Bate's avatar
Bate committed
21 22 23 24 25
// Rapporter les E_NOTICE peut vous aider ? am?liorer vos scripts
// (variables non initialis?es, variables mal orthographi?es..)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
ini_set('display_errors', '1');

Bate's avatar
Bate committed
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
/*
 * "inclusion" de tous les fichiers requis,
 *
 * il y a forcément site.inc.php qui fourni la classe site ainsi que tous les
 * éléments communs
 */
require_once($topdir. "include/site.inc.php");
/*
 * Inclusion des stdentities dont on va avoir besoin : entities/planning.inc.php
 * Les stdentities permettent d'intérragir avec la base de données, ils fournissent
 * en général en plus les fonctions de traitement. (les fonctions "métiers")
 * En faisant le parallèle avec le modèle MVC, ici c'est M+C : Model, Control
 */
require_once($topdir."include/entities/planning2.inc.php");
/*
 * Inclusion des stdcontents : cts/weekplanning.inc.php
 * Les stdcontents permettent l'affichage, ils correspondant aux "widget" des
 * applications lourdes (un bouton, un datagrid...)
 * en reprennant le parallèle avec le modèle MVC, ici c'est le V : View
 */
require_once($topdir."include/cts/planning.inc.php");

/*
 * Une fois que l'on a inclus tout ce dont on a besoin, on crée une instance de
 * site. On récupère ainsi
 * - les liens à la base de données : $site->db et $site->dbrw
 * - l'utilisateur connecté $site->user
 * - la racine dans la quelle on va insérer les stdcontents pour qu'ils soient
 * affiché coté client (transformé en html et renvoyé au client)
 * - quelques fonction utilitaires (on verra un exemple)
 */
$site = new site();

/*
 * Cette page n'est accessible qu'aux utilisateurs connecté, on appelle
 * donc la fonction consacrée. Si l'utilisateur n'est pas connecté,
 * l'execution de la page s'arrête là. (un joli message sera affiché à l'utilisateur)
 * On précise la section, pour que l'onglet correspodant soit selectionné lors
 * de l'erreur
 */
$site->allow_only_logged_users("services");

/*
 * Cette page est par ailleurs uniquement accessible qu'aux membres du groupe
 * "root". On vérifie cela et dan sle cas contraire on utilise une fonction de
 * $site pour afficher un message d'erreur et arrêter le page ici.
 * On précise la section et la raison de l'erreur.
 * Voir la documentation de site::error_forbidden pour plus de détails.
 */
if ( !$site->user->is_in_group("root") )
  $site->error_forbidden("services","group");

$cts = new contents("Test");

$planning = new planning2($site->db, $site->dbrw);

Bate's avatar
Bate committed
82 83 84 85
$planning->load_by_id(2);
//$id_planning = $planning->add("Test",0,0,true,'2013-06-11 00:00:00','2013-06-12 00:00:00');
if(is_null($planning->id))
	echo "Erreur chargement planning";
Bate's avatar
Bate committed
86

Bate's avatar
Bate committed
87 88 89 90
$gaps = $planning->get_gaps();

while( list($gap_id) = $gaps->get_row())
{
Bate's avatar
Bate committed
91 92
	$start = 12*3600;
	$end = 13*3600;
Bate's avatar
Bate committed
93 94 95 96 97 98
	$date = strtotime('2013-06-15 00:00:00');
	$date = strtotime(date('o-\\WW',$date));
                        $start = strtotime($start)+$date;
                        $end = strtotime($end)+$date;
                        $start =date("Y-m-d H:i:s",$start);
                        $end =date("Y-m-d H:i:s",$end);
Bate's avatar
Bate committed
99
	echo date("Y-m-d H:i:s",$date)."\n";
Bate's avatar
Bate committed
100 101
	echo "$start\n";
	echo "$end\n";
Bate's avatar
Bate committed
102 103 104 105 106 107
	$users = $planning->get_users_for_gap($gap_id,strtotime('2013-06-15 00:00:00'));
	list( $id_utl, $nom_utl) = $users->get_row();
	echo "Utl $id_utl: $nom_utl\n";
	echo $planning->get_users_for_gap($gap_id,strtotime('2013-06-25 00:00:00'));
	list( $id_utl, $nom_utl) = $users->get_row();
	echo "Utl $id_utl: $nom_utl\n";
Bate's avatar
Bate committed
108
}
Bate's avatar
Bate committed
109

Bate's avatar
Bate committed
110 111
echo mysql_error ();

Bate's avatar
Bate committed
112

Bate's avatar
Bate committed
113 114

?>