Compare commits

...

9 Commits
main ... mchb

Author SHA1 Message Date
Georges Dupéron
cf21b871ec Horaires dans la section équipes. 2010-09-24 19:44:44 +02:00
Georges Dupéron
cc95daa8d2 Section horaires. 2010-09-22 23:37:18 +02:00
Georges Dupéron
29a850c97f Logo MCHB. 2010-09-22 23:20:44 +02:00
Georges Dupéron
bcf9c91b1d Bandeau de navigation (breadcrumbs). 2010-09-22 23:05:47 +02:00
Georges Dupéron
b2ed8db6d5 Rappatriement des changements effectués lors de la démo (et en préparation sur un autre pc). 2010-09-15 22:40:01 +02:00
Georges Dupéron
42767c181c Backslash qui traîne... 2010-09-14 21:33:27 +02:00
Georges Dupéron
ba33e6524b Gros nettoyage / débogage / etc. 2010-09-14 19:14:11 +02:00
Georges Dupéron
0db01aaf23 Suppression des fichiers qui traînenet dans "Nouveautés". 2010-09-14 18:48:04 +02:00
Georges Dupéron
d6cec82c3f Descriptions des photos. Ne pas changer l'image si le champ FILE est vide. 2010-09-14 18:47:08 +02:00
161 changed files with 715 additions and 249 deletions

View File

@ -49,6 +49,18 @@ class Chemin {
public function get($slash_debut = true) {
return ($slash_debut ? '/' : '') . join($this->segments, '/');
}
public function hiérarchie() {
$c = new self($this->segments);
$r = new self("/");
$ret = array();
while (! $c->est_racine()) {
array_unshift($ret, $c);
$c = $c->parent();
}
array_unshift($ret, $c);
return $ret;
}
public function get_url($fin = "") {
// Config::get("url_base") DOIT se terminer par '/', tel que spécifié
@ -87,6 +99,10 @@ class Chemin {
return end($this->segments);
}
public function est_racine() {
return (count($this->segments) == 0);
}
public static function nettoyer_chemin($chemin, $est_un_motif = false) {
// SÉCURITÉ : $chemin nettoyé

View File

@ -11,8 +11,6 @@ if (get_magic_quotes_runtime()) set_magic_quotes_runtime(false);
class CMS {
public static function page($chemin_str) {
// TODO : appeller Modules::action($chemin, $action, $paramètres);
$chemin = new Chemin($chemin_str);
$module = Modules::get_module($chemin);

View File

@ -8,8 +8,10 @@ class Page {
public $sendprop_prop = "";
public $redirect_destination = "";
public $type = "page";
public $chemin = null;
public function __construct($a, $b, $type = "page") {
public function __construct($chemin, $a, $b, $type = "page") {
$this->chemin = $chemin;
if ($type == "page") {
$this->set_page($a, $b);
} else if ($type == "sendfile") {

View File

@ -3,7 +3,7 @@
class AdminApparence {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else {
if (isset($paramètres["Couleur_A"])) {
Stockage::set_prop($chemin, "Couleur_A", $paramètres["Couleur_A"]);
@ -32,6 +32,7 @@ class AdminApparence {
// on affiche la version modifiable plutôt que la "vue".
$ret = '';
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<p><strong>Attention :</strong> Les couleurs du site ne peuvent pas encore être modifiées...</p>';
$ret .= '<form method="post" action="' . $chemin->get_url() . '">';
$ret .= '<ul>';
$ret .= '<li><label for="Couleur_A">Couleur A : </label><input type="text" id="Couleur_A" name="Couleur_A" value="#000" /></li>';
@ -50,7 +51,7 @@ class AdminApparence {
$ret .= '<li>Couleur D : #fff</li>';
$ret .= '</ul>';
}
return new Page($ret, "Apparence");
return new Page($chemin, $ret, "Apparence");
} else if ($vue == "css") {
// TODO : où mettre ce gen_css... ?
return Site::gen_css(array(

View File

@ -27,25 +27,25 @@ class AdminConnexion {
// formulaire de connexion, formulaire + "mauvais mdp")
if ($vue == "normal") {
$ret = self::formulaire_connexion($chemin);
return new Page($ret, "Connexion");
return new Page($chemin, $ret, "Connexion");
} else if ($vue == "connexion réussie") {
$ret = "<h2>Connexion réussie</h2>";
$ret .= "<p>Pour vous déconnecter, utilisez le lien «déconnexion» en haut à droite.</p>";
$ret .= "<p><a href=\"" . Config::get("url_base") . "\">Retour à la page d'accueil</a>.</p>";
return new Page($ret, "Connexion réussie");
return new Page($chemin, $ret, "Connexion réussie");
}else if ($vue == "connexion échouée") {
$msg = "<p><strong>Mauvais mot de passe et/ou nom d'utilisateur. Ré-essayez ou retournez à la ";
$msg .= "<a href=\"" . Config::get("url_base") . "\">page d'accueil</a>";
$msg .= ".</strong></p>";
$ret = self::formulaire_connexion($chemin, "Connexion échouée", $msg);
return new Page($ret, "Connexion échouée");
return new Page($chemin, $ret, "Connexion échouée");
}else if ($vue == "déconnexion") {
$ret = "<h2>Déconnexion réussie</h2>";
$ret .= "<p>Vous êtes déconnecté. Vous pouvez à présent retourner à la ";
$ret .= "<a href=\"" . Config::get("url_base") . "\">page d'accueil</a>";
$ret .= ".</p>";
return new Page($ret, "Déconnexion réussie");
return new Page($chemin, $ret, "Déconnexion réussie");
}
}

View File

@ -24,9 +24,9 @@ class AdminIndex {
}
}
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "nom_site"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "nom_site"));
}
return new Page('',''); // TODO : devrait renvoyer une page d'erreur !
return new Page($chemin, '',''); // TODO : devrait renvoyer une page d'erreur !
}
}

View File

@ -4,7 +4,7 @@ class AdminPermissions {
public static function action($chemin, $action, $paramètres) {
$singleton = new Chemin("/admin/permissions/");
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else {
if (isset($paramètres["regles"])) {
Stockage::set_prop($singleton, "regles", $paramètres["regles"]);
@ -21,15 +21,16 @@ class AdminPermissions {
public static function vue($chemin, $vue = "normal") {
$singleton = new Chemin("/admin/permissions/");
if ($vue == "normal") {
$ret = "";
$ret .= "<h2>Règles de sécurité</h2>";
$ret .= "<p>La première règle correspondant à une action de l'utilisateur est appliquée. TODO Bla-bla blabla sur le fonctionnement.</p>";
$ret = '';
$ret .= '<h2>Règles de sécurité</h2>';
$ret .= '<p><strong>Attention ! Ne modifiez pas ces paramètres si vous ne comprennez pas <em>complètement</em> à quoi ça sert !!!</strong></p>';
$ret .= '<p>La première règle correspondant à une action de l\'utilisateur est appliquée. TODO Bla-bla blabla sur le fonctionnement.</p>';
if (Permissions::vérifier_permission($singleton, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<textarea class="admin permissions regles" cols="200" rows="20">' . Stockage::get_prop($singleton, "regles") . "</textarea>"; // TODO : html escape chars etc.
} else {
$ret .= "<pre><code>" . Stockage::get_prop($singleton, "regles") . "</code></pre>"; // TODO : html escape chars etc.
}
return new Page($ret, "Permissions");
return new Page($chemin, $ret, "Permissions");
}
}
}

View File

@ -4,7 +4,7 @@ class AdminUtilisateurs {
public static function action($chemin, $action, $paramètres) {
$singleton = new Chemin("/admin/utilisateurs/");
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
// TODO ...
// Solution A (propre) :
@ -63,7 +63,8 @@ class AdminUtilisateurs {
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
// afficher le lien "Nouvel utilisateur"
}
$ret .= '<table class="utilisateurs index"><thead><th>Nom</th><th>Prénom</th><th>Groupe</th><th>Mot de passe</th><th>Peut se connecter</th><th colspan="2"></th></thead><tbody>';
$ret .= '<p><strong>Attention :</strong> On ne peut pas encore ajouter des utilisateurs au site...</p>';
$ret .= '<table class="admin utilisateurs liste"><thead><th>Nom</th><th>Prénom</th><th>Groupe</th><th colspan="2">Mot de passe</th><th>Peut se connecter</th><th colspan="2"></th></thead><tbody>';
$listegroupes = ""; // Construire la liste des groupes sous forme de menu drop-down.
foreach (Authentification::liste_utilisateurs() as $u) {
$ret .= '<tr>'
@ -71,7 +72,8 @@ class AdminUtilisateurs {
. '<td>' . $u . '</td>' // TODO : Nom
. '<td>' . $u . '</td>' // TODO : Prénom
. '<td>' . Authentification::get_groupe($u) . '</td>'
. '<td>' . Authentification::get_mot_de_passe($u) . '<input type="submit" value="Générer un nouveau mot de passe"/></td>'
. '<td>' . Authentification::get_mot_de_passe($u) . '</td>'
. '<td>' . '<input type="submit" value="Générer un nouveau mot de passe"/>' . '</td>'
. '<td>' . (Authentification::get_peut_se_connecter($u) ? "oui" : "non") . '</td>'
. '<td><input type="submit" value="appliquer"/></td>'
. '<td><input type="submit" value="supprimer"/></td>' // TODO
@ -82,7 +84,7 @@ class AdminUtilisateurs {
// $chemin->enfant("$utilisateur") ?action=gen_mdp .
}
$ret .= '</tbody></table>';
return new Page($ret, "Utilisateurs");
return new Page($chemin, $ret, "Utilisateurs");
}
}
}

View File

@ -3,10 +3,10 @@
class ArticlesArticle {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["contenu"])) {
Stockage::set_prop($chemin, "contenu", $paramètres["contenu"]);
@ -18,7 +18,7 @@ class ArticlesArticle {
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : transmettre le paramètre "vue"
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
}
if (isset($paramètres["vue"])) {
@ -47,10 +47,10 @@ class ArticlesArticle {
// TODO : afficher le bouton "Supprimer".
}
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} elseif ($vue == "miniature") {
$ret = miniature_texte_enrichi(Stockage::get_prop($chemin, "contenu"));
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,14 +3,13 @@
class ArticlesIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
$np = Stockage::nouvelle_page($chemin, "Nouvel article", "articles-article");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "titre", "Nouvel article");
Stockage::set_prop($np, "contenu", "Bla bla bla.");
enregistrer_nouveaute($np);
return new Page($np, '', "redirect");
return new Page($chemin, $np, '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
@ -78,7 +77,7 @@ class ArticlesIndex {
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,10 +3,10 @@
class ContactContact {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["nom"])) {
Stockage::set_prop($chemin, "nom", $paramètres["nom"]);
@ -18,7 +18,7 @@ class ContactContact {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
}
}
@ -46,7 +46,7 @@ class ContactContact {
$ret .= '</form>';
}
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,7 +3,7 @@
class ContactIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
// SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
// CONCURENCE : Faire un lock quelque part...
@ -14,8 +14,7 @@ class ContactIndex {
Stockage::set_prop($np, "nom", "Dupondt");
Stockage::set_prop($np, "prenom", "Jean");
Stockage::set_prop($np, "description", "");
enregistrer_nouveaute($np);
return new Page($np, '', "redirect");
return new Page($chemin, $np, '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
@ -72,7 +71,7 @@ class ContactIndex {
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,7 +3,7 @@
class ÉquipesÉquipe {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
// SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
// CONCURENCE : Faire un lock quelque part...
@ -14,19 +14,18 @@ class ÉquipesÉquipe {
Stockage::set_prop($np, "nom", "Dupondt");
Stockage::set_prop($np, "prenom", "Jean");
Stockage::set_prop($np, "description", "");
enregistrer_nouveaute($np);
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) {
Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : transmettre le paramètre "vue"
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
}
if (isset($paramètres["vue"])) {
@ -74,9 +73,9 @@ class ÉquipesÉquipe {
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "miniature") {
return new Page("Équipe.", Stockage::get_prop($chemin, "titre"));
return new Page($chemin, "Équipe.", Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,14 +3,13 @@
class ÉquipesIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
$np = Stockage::nouvelle_page($chemin, "Nouvelle équipe", "equipes-equipe");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "titre", "Nouvelle équipe");
Stockage::set_prop($np, "dernier_numero", 0);
enregistrer_nouveaute($np);
return new Page($np, '', "redirect");
return new Page($chemin, $np, '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
@ -32,6 +31,9 @@ class ÉquipesIndex {
if ($vue == "normal") {
$ret = '';
$ret .= '<h2>Horaires</h2>';
$ret .= Modules::vue(new Chemin("/horaires"), 'miniature')->contenu;
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<form class="equipes infos" method="post" action="' . $chemin->get_url() . '">';
$ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
@ -74,7 +76,7 @@ class ÉquipesIndex {
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,10 +3,10 @@
class ÉquipesJoueur {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["nom"])) {
Stockage::set_prop($chemin, "nom", $paramètres["nom"]);
@ -18,7 +18,7 @@ class ÉquipesJoueur {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
}
}
@ -48,7 +48,7 @@ class ÉquipesJoueur {
// Peut-être afficher le bouton "citer" ? ou est-ce trop d'options ?
return new Page($ret, Stockage::get_prop($chemin, "prenom") . " " . Stockage::get_prop($chemin, "nom"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "prenom") . " " . Stockage::get_prop($chemin, "nom"));
}
}
}

View File

@ -3,14 +3,13 @@
class ForumIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
$np = Stockage::nouvelle_page($chemin, "Nouveau sujet", "forum-sujet");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "titre", "Nouveau sujet");
Stockage::set_prop($np, "dernier_numero", 0);
enregistrer_nouveaute($np);
return new Page($np, '', "redirect");
return new Page($chemin, $np, '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
@ -75,7 +74,7 @@ class ForumIndex {
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,16 +3,16 @@
class ForumMessage {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["message"])) {
Stockage::set_prop($chemin, "message", $paramètres["message"]);
}
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
}
}
@ -34,7 +34,7 @@ class ForumMessage {
// Peut-être afficher le bouton "citer" ? ou est-ce trop d'options ?
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,7 +3,7 @@
class ForumSujet {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
// SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
// CONCURENCE : Faire un lock quelque part...
@ -12,19 +12,18 @@ class ForumSujet {
$np = Stockage::nouvelle_page($chemin, "" . $numéro_message, "forum-message");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "message", "");
enregistrer_nouveaute($np);
return new Page($chemin, "#message" . $numéro_message, "redirect");
return new Page($chemin, $chemin, "#message" . $numéro_message, "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) {
Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : transmettre le paramètre "vue"
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
}
if (isset($paramètres["vue"])) {
@ -72,9 +71,9 @@ class ForumSujet {
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "miniature") {
return new Page("Sujet.", Stockage::get_prop($chemin, "titre"));
return new Page($chemin, "Sujet.", Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,17 +3,16 @@
class GalerieÉvènement {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
$np = Stockage::nouvelle_page($chemin, "Nouvelle photo", "galerie-photo");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "titre", "Nouvelle photo");
Stockage::set_prop($np, "description", "");
enregistrer_nouveaute($np);
return new Page($np, '', "redirect");
return new Page($chemin, $np, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
@ -25,7 +24,7 @@ class GalerieÉvènement {
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : transmettre le paramètre "vue"
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
}
if (isset($paramètres["vue"])) {
@ -95,17 +94,17 @@ class GalerieÉvènement {
$ret .= '<input type="submit" value="Supprimer l\'évènement"/>';
$ret .= '</form>';
}
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "miniature") {
$ret = "Aucune<br/>photo";
$enfants = Stockage::liste_enfants($chemin);
if (isset($enfants[0])) $ret = Modules::vue($enfants[0], 'miniature')->contenu;
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "image_nouvelle_photo") {
// Houlàlà ça sent le hack pas beau !
return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_photo.jpg"), null, "sendfile");
return new Page($chemin, Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_photo.jpg"), null, "sendfile");
}
}
}

View File

@ -3,14 +3,13 @@
class GalerieIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
$np = Stockage::nouvelle_page($chemin, "Nouvelle période", "galerie-periode");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "titre", "Nouvelle période");
Stockage::set_prop($np, "description", "");
enregistrer_nouveaute($np);
return new Page($np, '', "redirect");
return new Page($chemin, $np, '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
@ -81,10 +80,10 @@ class GalerieIndex {
$ret .= '<div class="clearboth"></div>';
$ret .= '</div>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "image_nouvelle_periode") {
// Houlàlà ça sent le hack pas beau !
return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_image.jpg"), null, "sendfile");
return new Page($chemin, Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_image.jpg"), null, "sendfile");
}
}
}

View File

@ -3,17 +3,16 @@
class GaleriePériode {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
$np = Stockage::nouvelle_page($chemin, "Nouvel évènement", "galerie-evenement");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "titre", "Nouvel évènement");
Stockage::set_prop($np, "description", "");
enregistrer_nouveaute($np);
return new Page($np, '', "redirect");
return new Page($chemin, $np, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
@ -26,7 +25,7 @@ class GaleriePériode {
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : transmettre le paramètre "vue"
// TODO : ne marche pas.
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
}
if (isset($paramètres["vue"])) {
@ -96,17 +95,17 @@ class GaleriePériode {
$ret .= '<input type="submit" value="Supprimer la période"/>';
$ret .= '</form>';
}
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "miniature") {
$ret = "Aucune<br/>photo";
$enfants = Stockage::liste_enfants($chemin);
if (isset($enfants[0])) $ret = Modules::vue($enfants[0], 'miniature')->contenu;
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "image_nouvel_evenement") {
// Houlàlà ça sent le hack pas beau !
return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvel_evenement.jpg"), null, "sendfile");
return new Page($chemin, Path::combine(Config::get("chemin_base"), "/code/site/nouvel_evenement.jpg"), null, "sendfile");
}
}
}

View File

@ -3,12 +3,12 @@
class GaleriePhoto {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["fichier_image"])) {
if (isset($paramètres["fichier_image"]) && ($paramètres["fichier_image"]["tmp_name"] != "")) {
$fichier_image = $paramètres["fichier_image"]["tmp_name"];
$fichier_image_mini = self::creer_miniature($fichier_image, 64, 64);
Stockage::set_prop_fichier($chemin, "image_mini", $fichier_image_mini);
@ -25,7 +25,7 @@ class GaleriePhoto {
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : transmettre le paramètre "vue"
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
}
if (isset($paramètres["vue"])) {
@ -53,19 +53,19 @@ class GaleriePhoto {
} else {
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
$ret .= '<img alt="' . Stockage::get_prop($chemin, "titre") . '" src="' . $chemin->get_url("?vue=image") . '"/>';
$ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "message"));
$ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "description"));
}
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "miniature" || $vue == "mini") {
$ret = '<img alt="' . Stockage::get_prop($chemin, "titre") . '" src="' . $chemin->get_url("?vue=image_mini") . '"/>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "image") {
return new Page($chemin, "image", "sendprop");
return new Page($chemin, $chemin, "image", "sendprop");
} else if ($vue == "image_mini") {
return new Page($chemin, "image_mini", "sendprop");
return new Page($chemin, $chemin, "image_mini", "sendprop");
}
return new Page('',''); // TODO : devrait renvoyer une page d'erreur !
return new Page($chemin, '',''); // TODO : devrait renvoyer une page d'erreur !
}
public static function creer_miniature($chemin_fs, $largeur_max, $hauteur_max) {

View File

@ -0,0 +1,66 @@
<?php
class HorairesCreneau {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["equipe"])) {
Stockage::set_prop($chemin, "equipe", $paramètres["equipe"]);
}
if (isset($paramètres["jour"])) {
Stockage::set_prop($chemin, "jour", $paramètres["jour"]);
}
if (isset($paramètres["debut"])) {
Stockage::set_prop($chemin, "debut", $paramètres["debut"]);
}
if (isset($paramètres["fin"])) {
Stockage::set_prop($chemin, "fin", $paramètres["fin"]);
}
return new Page($chemin, $chemin->parent(), '', "redirect");
}
}
public static function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
$ret = '';
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<form class="creneau edition" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">';
$ret .= '<input type="text" name="equipe" value="' . Stockage::get_prop($chemin, "equipe") . '" />';
$ret .= " le ";
$ret .= '<input type="text" name="jour" value="' . Stockage::get_prop($chemin, "jour") . '" />';
$ret .= " de ";
$ret .= '<input type="text" name="debut" value="' . Stockage::get_prop($chemin, "debut") . '" />';
$ret .= " à ";
$ret .= '<input type="text" name="fin" value="' . Stockage::get_prop($chemin, "fin") . '" />';
$ret .= '<p><input type="submit" value="appliquer" /></p>';
$ret .= '</form>';
} else {
$ret .= Stockage::get_prop($chemin, "equipe");
$ret .= " le ";
$ret .= Stockage::get_prop($chemin, "jour");
$ret .= " de ";
$ret .= Stockage::get_prop($chemin, "debut");
$ret .= " à ";
$ret .= Stockage::get_prop($chemin, "fin");
}
if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
$ret .= '<form action="' . $chemin->get_url() . '">';
$ret .= '<input type="hidden" name="action" value="supprimer"/>';
$ret .= '<input type="submit" value="Supprimer le créneau"/>';
$ret .= '</form>';
}
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}
Modules::enregister_module("HorairesCreneau", "horaires-creneau", "vue", "equipe jour debut fin");
?>

View File

@ -0,0 +1,56 @@
<?php
class ContactContact {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["nom"])) {
Stockage::set_prop($chemin, "nom", $paramètres["nom"]);
}
if (isset($paramètres["prenom"])) {
Stockage::set_prop($chemin, "prenom", $paramètres["prenom"]);
}
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
return new Page($chemin, $chemin->parent(), '', "redirect");
}
}
public static function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
$ret = '';
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<form class="contacts contact edition" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">';
$ret .= '<input type="text" name="prenom" value="' . Stockage::get_prop($chemin, "prenom") . '" />';
$ret .= '<input type="text" name="nom" value="' . Stockage::get_prop($chemin, "nom") . '" />';
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
$ret .= '<p><input type="submit" value="appliquer" /></p>';
$ret .= '</form>';
} else {
$ret .= Stockage::get_prop($chemin, "prenom");
$ret .= " ";
$ret .= Stockage::get_prop($chemin, "nom");
$ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "description"));
}
if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
$ret .= '<form action="' . $chemin->get_url() . '">';
$ret .= '<input type="hidden" name="action" value="supprimer"/>';
$ret .= '<input type="submit" value="Supprimer le contact ' . htmlspecialchars(Stockage::get_prop($chemin, "prenom") . " " . Stockage::get_prop($chemin, "nom")) . '"/>';
$ret .= '</form>';
}
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}
Modules::enregister_module("ContactContact", "contact-contact", "vue", "nom prenom description");
?>

View File

@ -0,0 +1,95 @@
<?php
class HorairesIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
// SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
// CONCURENCE : Faire un lock quelque part...
$numéro_creneau = 1 + Stockage::get_prop($chemin, "dernier_numero");
Stockage::set_prop($chemin, "dernier_numero", $numéro_creneau);
$np = Stockage::nouvelle_page($chemin, "Créneau" . $numéro_creneau, "horaires-creneau");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "equipe", "Nom de l'équipe");
Stockage::set_prop($np, "jour", "Lundi");
Stockage::set_prop($np, "debut", "17h00");
Stockage::set_prop($np, "fin", "18h00");
return new Page($chemin, $np, '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
if (isset($paramètres["titre"])) {
Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
}
if (isset($paramètres["vue"])) {
return self::vue($chemin, $paramètres["vue"]);
} else {
return self::vue($chemin);
}
}
}
public static function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
$ret = '';
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<form class="horaires infos" method="post" action="' . $chemin->get_url() . '">';
$ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
$ret .= '<p><input type="submit" value="appliquer" /></p>';
$ret .= '</form>';
} else {
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
$ret .= '<p class="horaires index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
}
$ret .= '<div class="horaires liste-creneaux index">';
$ret .= '<ul>';
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
$ret .= '<li>';
$ret .= '<div class="titre">';
$ret .= '<form class="horaires nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
$ret .= '<p>';
$ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
$ret .= '<input type="submit" value="Nouveau créneau"/>';
$ret .= '</p>';
$ret .= '</form>';
$ret .= '</div>';
$ret .= '</li>';
}
foreach (stockage::liste_enfants($chemin) as $k) {
$ret .= '<li>' . Modules::vue($k)->contenu . '</li>';
}
$ret .= '</ul>';
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
} else if ($vue == "miniature") {
$ret = '';
$ret .= '<div class="horaires liste-creneaux miniature">';
$ret .= '<ul>';
foreach (stockage::liste_enfants($chemin) as $k) {
$ret .= '<li>' . Modules::vue($k)->contenu . '</li>';
}
$ret .= '</ul>';
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}
Modules::enregister_module("HorairesIndex", "horaires-index", "vue", "titre description");
?>

View File

@ -0,0 +1,81 @@
<?php
class ContactIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
// SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
// CONCURENCE : Faire un lock quelque part...
$numéro_contact = 1 + Stockage::get_prop($chemin, "dernier_numero");
Stockage::set_prop($chemin, "dernier_numero", $numéro_contact);
$np = Stockage::nouvelle_page($chemin, "Contact" . $numéro_contact, "contact-contact");
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
Stockage::set_prop($np, "nom", "Dupondt");
Stockage::set_prop($np, "prenom", "Jean");
Stockage::set_prop($np, "description", "");
return new Page($chemin, $np, '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
if (isset($paramètres["titre"])) {
Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
}
if (isset($paramètres["vue"])) {
return self::vue($chemin, $paramètres["vue"]);
} else {
return self::vue($chemin);
}
}
}
public static function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
$ret = '';
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<form class="contact infos" method="post" action="' . $chemin->get_url() . '">';
$ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
$ret .= '<p><input type="submit" value="appliquer" /></p>';
$ret .= '</form>';
} else {
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
$ret .= '<p class="contact index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
}
$ret .= '<div class="contact liste-contacts index">';
$ret .= '<ul>';
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
$ret .= '<li>';
$ret .= '<div class="titre">';
$ret .= '<form class="contact nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
$ret .= '<p>';
$ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
$ret .= '<input type="submit" value="Nouveau contact"/>';
$ret .= '</p>';
$ret .= '</form>';
$ret .= '</div>';
$ret .= '</li>';
}
foreach (stockage::liste_enfants($chemin) as $k) {
$ret .= '<li>' . Modules::vue($k)->contenu . '</li>';
}
$ret .= '</ul>';
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}
Modules::enregister_module("ContactIndex", "contact-index", "vue", "titre description");
?>

View File

@ -0,0 +1,4 @@
<?php
require_once(dirname(__FILE__) . "/horaires-index.php");
require_once(dirname(__FILE__) . "/horaires-creneau.php");
?>

View File

@ -0,0 +1,4 @@
<?php
require_once(dirname(__FILE__) . "/contact-index.php");
require_once(dirname(__FILE__) . "/contact-contact.php");
?>

View File

@ -6,10 +6,10 @@ require_once(dirname(__FILE__) . "/site/include.php");
require_once(dirname(__FILE__) . "/admin/include.php");
require_once(dirname(__FILE__) . "/forum/include.php");
require_once(dirname(__FILE__) . "/galerie/include.php");
require_once(dirname(__FILE__) . "/nouveautes/include.php");
require_once(dirname(__FILE__) . "/articles/include.php");
require_once(dirname(__FILE__) . "/equipes/include.php");
require_once(dirname(__FILE__) . "/liens/include.php");
require_once(dirname(__FILE__) . "/contact/include.php");
require_once(dirname(__FILE__) . "/horaires/include.php");
?>
?>

View File

@ -3,7 +3,7 @@
class LiensIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "nouvelle_page") {
// SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
// CONCURENCE : Faire un lock quelque part...
@ -14,8 +14,7 @@ class LiensIndex {
Stockage::set_prop($np, "texte", "Un lien");
Stockage::set_prop($np, "cible", "http://www.example.com/page/");
Stockage::set_prop($np, "description", "Un lien d'exemple très utile.");
enregistrer_nouveaute($np);
return new Page($np, '', "redirect");
return new Page($chemin, $np, '', "redirect");
} else {
if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
@ -73,7 +72,7 @@ class LiensIndex {
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -3,10 +3,10 @@
class LiensLien {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
return new Page($chemin, $chemin, '', "redirect");
} else if ($action == "supprimer") {
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
} else {
if (isset($paramètres["texte"])) {
Stockage::set_prop($chemin, "texte", $paramètres["texte"]);
@ -18,7 +18,7 @@ class LiensLien {
Stockage::set_prop($chemin, "cible", $paramètres["cible"]);
}
return new Page($chemin->parent(), '', "redirect");
return new Page($chemin, $chemin->parent(), '', "redirect");
}
}
@ -44,7 +44,7 @@ class LiensLien {
$ret .= '</form>';
}
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -1,3 +0,0 @@
<?php
require_once(dirname(__FILE__) . "/nouveautes-index.php");
?>

View File

@ -1,84 +0,0 @@
<?php
// TODO : accents pour nouveauté.
class NouveautesIndex {
public static function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return new Page($chemin, '', "redirect");
} else {
if (isset($paramètres["titre"])) {
Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
}
if (isset($paramètres["vue"])) {
return self::vue($chemin, $paramètres["vue"]);
} else {
return self::vue($chemin);
}
}
}
public static function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
$ret = '';
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<form class="articles infos" method="post" action="' . $chemin->get_url() . '">';
$ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
$ret .= '<p><input type="submit" value="appliquer" /></p>';
$ret .= '</form>';
} else {
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
}
$ret .= '<div class="nouveautes list index">';
$ret .= '<ul>';
/*foreach (Stockage::liste_enfants(new Chemin("/forum")) as $k) {
$date = Stockage::get_prop($k, "date_modif");
if (Erreur::is_erreur($date)) $date = "0";
$date = (int)$date;
var_dump($date);
}*/
// TODO : faire dans l'ordre décroissant les 5 dernières nouveautés.
foreach (Stockage::liste_enfants($chemin) as $n) {
$k = new Chemin(Stockage::get_prop($n, "chemin"));
$mini = Modules::vue($k, 'miniature');
$ret .= '<li>';
// TODO : mettre une ancre "#message<numéro>"
$ret .= '<a href="' . $k->get_url() . '">'; // TODO : escape l'url !
$ret .= '<span class="titre">';
$ret .= $mini->titre;
$ret .= '</span>';
$ret .= '</a>';
$ret .= '<p class="contenu">';
$ret .= $mini->contenu;
$ret .= '</p>';
$ret .= '</li>';
}
$ret .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
}
}
}
// TODO : maintenir la liste à jour lors des renomages, suppressions, ...
function enregistrer_nouveaute($chemin) {
$singleton = new Chemin("/nouveautes");
Stockage::set_prop($chemin, "date_modif", "".time());
// SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
// CONCURENCE : Faire un lock quelque part...
$numéro_nouveauté = 1 + Stockage::get_prop($singleton, "dernier_numero");
Stockage::set_prop($singleton, "dernier_numero", $numéro_nouveauté);
$nouv = Stockage::nouvelle_page($singleton, "" . $numéro_nouveauté, "nouveaute-element-liste");
Stockage::set_prop($nouv, "chemin", $chemin->get());
}
Modules::enregister_module("NouveautesIndex", "nouveautes-index", "vue", "titre");
?>

View File

@ -37,6 +37,10 @@ class SiteIndex {
}
$ret .= '</div>';
$ret .= '<div class="logo-site">';
$ret .= '<img src="' . $chemin->get_url("logo.png") . '">';
$ret .= '</div>';
$ret .= '<div class="description-site">';
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
$ret .= '<form class="nom_site infos" method="post" action="' . $chemin->get_url() . '">';
@ -55,11 +59,11 @@ class SiteIndex {
$ret .= Stockage::get_prop($chemin, "description");
}
$ret .= '</div>';
return new Page($ret, Stockage::get_prop($chemin, "nom_site"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "nom_site"));
} else if ($vue == "css") {
return new Page(get_css(), "text/css", "raw");
return new Page($chemin, get_css(), "text/css", "raw");
}
return new Page('',''); // TODO : devrait renvoyer une page d'erreur !
return new Page($chemin, '',''); // TODO : devrait renvoyer une page d'erreur !
}
}

View File

@ -46,12 +46,27 @@ class Squelette {
$ret .= ' <li><a href="' . $racine->enfant("forum")->get_url() . '">Forum</a></li>' . $nl;
$ret .= ' <li><a href="' . $racine->enfant("liens")->get_url() . '">Liens utiles</a></li>' . $nl;
$ret .= ' <li><a href="' . $racine->enfant("contact")->get_url() . '">Contact</a></li>' . $nl;
$ret .= ' <li><a href="' . $racine->enfant("horaires")->get_url() . '">Horaires</a></li>' . $nl;
if (Permissions::vérifier_permission($racine->enfant("admin"), "set_prop", Authentification::get_utilisateur())) {
$ret .= '<li><a href="' . $racine->enfant("admin")->get_url() . '">Administration</a></li>' . $nl;
}
$ret .= ' </ul>' . $nl;
$ret .= ' </div>' . $nl;
$ret .= ' <div class="site contenu">' . $nl;
if (! $page->chemin->est_racine() && ! $page->chemin->parent()->est_racine()) {
$ret .= ' <p class="">' . $nl;
$premier = true;
foreach ($page->chemin->hiérarchie() as $i) {
if (!$i->est_racine()) {
if (!$premier) {
$ret .= ' &gt; ';
}
$ret .= ' <a href="' . $i->get_url() . '">' . $i->dernier() . '</a>' . $nl;
$premier = false;
}
}
$ret .= ' </p>' . $nl;
}
return $ret;
}

View File

@ -90,7 +90,7 @@ class Stockage {
public static function prop_diff($chemin, $prop, $valeur) {
// Renvoie true si la valeur actuelle de $prop est différente de $valeur.
return self::get_prop($chemin, $prop) != $valeur;
return (self::get_prop($chemin, $prop) != $valeur);
}
// TODO : la suppression non récursive d'une page implique de supprimer

View File

@ -14,9 +14,8 @@ class Système_fichiers {
// touch($chemin_fs)
}*/
public static function supprimer($chemin_fs, $récursif) {
var_dump($chemin_fs);
if (is_link($chemin_fs) || is_file($chemin_fs)) {
public static function supprimer($chemin_fs, $récursif = true) { // TODO ne devrait pas avoir de valeur par défaut, mais certaines fonctions l'appellent sans 2e paramètre.
if (is_link($chemin_fs) || is_file($chemin_fs)) {
unlink($chemin_fs);
} else if ($récursif && is_dir($chemin_fs)) {
$d = dir($chemin_fs);

View File

@ -1 +1,2 @@
Du bla bla sur le handball, l\'association, etc. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
Du bla bla sur le handball, l'association, etc. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
Un changement.

View File

@ -1 +1 @@
Match au stade de france !
Match au stade de france ! Le 36 du mois.

View File

@ -0,0 +1 @@
Anonyme

View File

@ -1,3 +1,3 @@
Responsable du vestiaire masculin.
06 66 00 06 66
06 69 69 69 69

View File

@ -0,0 +1 @@
Bla bla

View File

@ -0,0 +1 @@
Dupondt

View File

@ -0,0 +1 @@
Jean

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
equipes-joueur

View File

@ -0,0 +1 @@
Chanteur

View File

@ -0,0 +1 @@
McCartney

View File

@ -0,0 +1 @@
Paul

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
equipes-joueur

View File

@ -0,0 +1 @@
Muche

View File

@ -0,0 +1 @@
Truc

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
equipes-joueur

View File

@ -0,0 +1 @@
3

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
Chamberte 3

View File

@ -0,0 +1 @@
equipes-equipe

View File

@ -0,0 +1 @@
dribleur hors pair

View File

@ -0,0 +1 @@
Dupondt

View File

@ -0,0 +1 @@
Jean

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
equipes-joueur

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
Moins de 16 ans

View File

@ -0,0 +1 @@
equipes-equipe

View File

@ -0,0 +1 @@
Super mais bla bla bla.

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
forum-message

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
Le site web est genial...

View File

@ -1 +0,0 @@
Nouveau sujet

View File

@ -0,0 +1 @@
Ce sujet est une polémique !

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
forum-message

View File

@ -0,0 +1 @@
Mais non !

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
forum-message

View File

@ -0,0 +1 @@
Mais si !

View File

@ -0,0 +1 @@
grand___chef

View File

@ -0,0 +1 @@
forum-message

View File

@ -0,0 +1 @@
3

View File

@ -0,0 +1 @@
Polémique

View File

@ -0,0 +1 @@
forum-sujet

View File

@ -1 +1 @@
Description du forum.
Description du forum. Pas de grossieretes...

View File

@ -0,0 +1 @@
Période d'hiver 2010.

View File

@ -1 +1 @@
periode 1
periode 1

View File

@ -0,0 +1 @@
Un évènement important pour le club !

View File

@ -1 +1 @@
evenement a
evenement a

View File

@ -0,0 +1 @@
Une image... énigmatique.

View File

@ -0,0 +1 @@
Bla bla bla

View File

@ -0,0 +1 @@
Y'a un truc sur cette photo.

Some files were not shown because too many files have changed in this diff Show More