diff --git a/events.sql b/events.sql
new file mode 100755
index 0000000..e6c9503
--- /dev/null
+++ b/events.sql
@@ -0,0 +1,69 @@
+-- phpMyAdmin SQL Dump
+-- version 4.2.7.1
+-- http://www.phpmyadmin.net
+--
+-- Client : localhost
+-- Généré le : Mar 11 Novembre 2014 à 22:27
+-- Version du serveur : 5.6.20
+-- Version de PHP : 5.5.15
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+SET time_zone = "+00:00";
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+
+--
+-- Base de données : `crep`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Structure de la table `events`
+--
+
+CREATE TABLE IF NOT EXISTS `events` (
+`id` smallint(5) unsigned NOT NULL,
+ `creationTime` int(10) unsigned NOT NULL,
+ `nom` text CHARACTER SET utf8 NOT NULL,
+ `description` mediumtext CHARACTER SET utf8 NOT NULL,
+ `annule` tinyint(1) NOT NULL DEFAULT '0',
+ `valide` int(10) unsigned NOT NULL DEFAULT '0',
+ `duree` mediumint(8) unsigned NOT NULL DEFAULT '3600',
+ `supprime` tinyint(1) NOT NULL DEFAULT '0'
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
+
+--
+-- Contenu de la table `events`
+--
+
+INSERT INTO `events` (`id`, `creationTime`, `nom`, `description`, `annule`, `valide`, `duree`, `supprime`) VALUES
+(1, 1415737327, 'Événement de test n°1', 'Description de l''événement de test n°1.', 0, 0, 7200, 0),
+(2, 1415738888, 'Événement de test n°2', 'Description de l''événement de test n°2.\r\nNouvelle ligne et caractères $ρ∑⊂|⋀∪×.', 1, 0, 12345, 0);
+
+--
+-- Index pour les tables exportées
+--
+
+--
+-- Index pour la table `events`
+--
+ALTER TABLE `events`
+ ADD PRIMARY KEY (`id`), ADD KEY `id` (`id`);
+
+--
+-- AUTO_INCREMENT pour les tables exportées
+--
+
+--
+-- AUTO_INCREMENT pour la table `events`
+--
+ALTER TABLE `events`
+MODIFY `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
diff --git a/import.php b/import.php
new file mode 100644
index 0000000..d7ff0d0
--- /dev/null
+++ b/import.php
@@ -0,0 +1,47 @@
+' . $templine . '\': ' . mysql_error() . '
');
+
+ // Reset temp variable to empty
+ $templine = '';
+ }
+ }
+ echo "Tables imported successfully";
+}
+?>
\ No newline at end of file
diff --git a/orga.php b/orga.php
index edef10c..a658fd8 100644
--- a/orga.php
+++ b/orga.php
@@ -28,8 +28,6 @@ if ($e_connecte) {
$droits = array('voir');
}
-$lastID = 0; // TODO Est-ce que cela mérite-t-il d'exister ?
-
class Evenement
{
// TODO Mettre tout en privé et utiliser __get et __set
@@ -46,19 +44,62 @@ class Evenement
public $dates = array();
public $datesVotes = array();
- function __construct($id = 0) {
- global $lastID;
- if ($id == 0) { // Nouvel évènement
- $lastID += 1;
- $this->id = $lastID;
+ private static $bddOK = false;
+ private static $bdd = null;
+ public static $tout = array();
+
+ private static function connecterBDD() {
+ if (!Evenement::$bddOK) {
+ require_once("creds.php");
+ try {
+ Evenement::$bdd = mysql_connect(__MYSQL_HOSTNAME__, __MYSQL_USERNAME__, __MYSQL_PASSWORD__);
+ mysql_query("SET NAMES 'utf8'");
+ } catch(Exception $e) {
+ echo 'Nop connect';
+ return; // TODO Message d'erreur digne de ce nom
+ }
+ if (mysql_select_db('crep', Evenement::$bdd)) {
+ Evenement::$bddOK = true;
+ } else {
+ echo 'Nop db';
+ }
+ }
+ }
+
+ public static function chargerTout() {
+ Evenement::$tout = array();
+ Evenement::connecterBDD();
+ $requete = 'SELECT id FROM events';
+ // TODO SQL Protéger
+ $resultat = mysql_query($requete);
+ while ($row = mysql_fetch_assoc($resultat)) {
+ Evenement::$tout[] = new Evenement($row['id']);
+ }
+ }
+
+ function __construct($id = null) {
+ Evenement::connecterBDD();
+
+ if ($id == null) { // Nouvel évènement
$this->creationTime = time();
+ // TODO SQL Récupérer id (AUTOINCREMENT)
} else { // Évènement existant : on charge
- // TODO SQL Select
- $this->id = $lastID + 1; // TODO DEBUG SQL Récupération id
- if ($this->id > $lastID) {
- $lastID = $this->id;
+ $requete = 'SELECT id, creationTime, nom, description, annule, valide, duree, supprime FROM events WHERE id='.$id;
+ // TODO SQL Protéger
+ $resultat = mysql_query($requete);
+ if ($resultat && $row = mysql_fetch_assoc($resultat)) {
+ $this->id = $row['id'];
+ $this->creationTime = $row['creationTime'];
+ $this->nom = $row['nom'];
+ $this->description = $row['description'];
+ $this->annule = $row['annule'];
+ $this->valide = $row['valide'];
+ $this->duree = $row['duree'];
+ $this->supprime = $row['supprime'];
+
+ } else {
+ echo 'Nop resultat';
}
- // TODO SQL Récupération du reste des propriétés
}
}
@@ -191,62 +232,12 @@ class Evenement
}
-# a_ : Récupérer depuis la base de donnée (ou pas)
-function a_evenements() {
- # DEBUG
- $test1 = new Evenement;
- $test1->duree = 12345;
- $test1->nom = 'Évènement de test n°1';
- $test1->description = 'Description de l\'évènement de test n°1';
- $test1->valide = time();
-
- $test2 = new Evenement;
- $test2->nom = 'Évènement de test n°2';
- $test2->description = 'Description de l\'évènement de test n°2';
- $test2->duree = 36000;
- $test2->valide = time();
- $test2->annule = true;
-
- $test3 = new Evenement;
- $test3->nom = 'Évènement de test n°3';
- $test3->description = 'Description de l\'évènement de test n°3';
- $test3->dates[] = 1415482197;
- $test3->datesVotes[] = 42;
- $test3->dates[] = time();
- $test3->datesVotes[] = 5;
- $test3->dates[] = time()+365*24*3600;
- $test3->datesVotes[] = 1;
-
- $test4 = new Evenement;
- $test4->nom = 'Évènement de test n°4';
- $test4->description = 'Description de l\'évènement de test n°4';
- $test4->dates[] = time();
- $test4->datesVotes[] = 5;
- $test4->dates[] = time()+365*24*3600;
- $test4->datesVotes[] = 1;
- $test4->dates[] = time();
- $test4->annule = true;
-
- $test5 = new Evenement;
- $test5->nom = 'Évènement de test n°5';
- $test5->description = 'Description de l\'évènement de test n°5';
- $test5->dates[] = time();
- $test5->datesVotes[] = 0;
- $test5->supprime = true;
-
- $test6 = new Evenement;
- $test6->nom = 'Évènement de test n°6';
- $test6->description = 'Description de l\'évènement de test n°6';
- $test6->valide = 1415452197;
-
- return array($test1, $test2, $test3, $test4, $test5, $test6);
-}
+Evenement::chargerTout();
-$evenements = a_evenements();
+# a_ : Récupérer depuis la base de donnée (ou pas)
-function a_evenement($id) {
- global $evenements;
- foreach ($evenements as $evenement) {
+function a_evenement($id) { // TODO Méthode statique à Evenement
+ foreach (Evenement::$tout as $evenement) {
if ($evenement->id == $id) {
return $evenement;
}
@@ -324,7 +315,7 @@ $evenementsPlanifies = array();
$evenementsAPlanifier = array();
$evenementsPasses = array();
-foreach ($evenements as $evenement) {
+foreach (Evenement::$tout as $evenement) {
if (!$evenement->supprime) {
if ($evenement->valide) {
if ($evenement->passe()) {
@@ -345,9 +336,10 @@ if (!$e_connecte) {