Compare commits
10 Commits
5b858a027b
...
49cd7a657c
Author | SHA1 | Date | |
---|---|---|---|
![]() |
49cd7a657c | ||
![]() |
ae3295ae26 | ||
![]() |
698d21159c | ||
![]() |
622e2c0ab8 | ||
![]() |
0a34996378 | ||
![]() |
863d0d8158 | ||
![]() |
0851e56540 | ||
![]() |
38edbb5851 | ||
![]() |
140a44ee91 | ||
![]() |
921beb8e27 |
33
__cms__/TODO
33
__cms__/TODO
|
@ -7,3 +7,36 @@ Mettre le css dans une page (dossier) qui s'appelle "style.css", comme ça ça d
|
|||
c'est le index.php de cette page qui le génère).
|
||||
Si on ne peut lire la propriété __prop_type, afficher un "Access Denied" au lieu de dire qu'on n'a pas pu lire la propriété.
|
||||
Ajouter une petite horloge sur nouvel_evenement.jpg et un petit calendrier sur nouvelle_periode.jpg
|
||||
Pour les "Nouveau xx", mettre un numéro pour éviter que deux personnes créent la même page mais l'éditent différemment.
|
||||
|
||||
Pour la gestion d'erreurs :
|
||||
public static function foo() {
|
||||
enter("Création d'un fou :-p .");
|
||||
if (!Permission::vérifier_truc()) { return fail("Accès interdit"); }
|
||||
$x = nofail(Stockage::créer_foo()); // Si Stockage::créer_foo() fait un fail, nous aussi.
|
||||
$y = fatal_fail(truc_machin($x)); // Si truc_machin fait un fail, on affiche une erreur et on quite.
|
||||
leave();
|
||||
}
|
||||
|
||||
Unicode Normalization Form C (De quoi s'amuser \o/)
|
||||
|
||||
html5 : <header> <footer> <nav> <aside> <article> <section> <p> <mark?>
|
||||
http://dev.w3.org/html5/spec/Overview.html#kinds-of-content
|
||||
|
||||
= API =
|
||||
L'API fournie aux modules est trop verbeuse et n'a pas tout à fait les bonnes abstractions. Il faudrait refactoriser tout ça un de ces
|
||||
jours. Nottemment, il faut pouvoir indiquer les éléments de la page de manière plus déclarative. Leur partie éditable et leur partie
|
||||
affichage et la modification des propriétés associées et les valeurs par défaut doivent être gérées plus ou moins automatiquement. Ex :
|
||||
|
||||
// Crée un <textarea> ou un <p>, dont la source / destination est le champ "description", et dont la valeur par défaut lors de la création
|
||||
// de la page est "Description de la page." .
|
||||
champ("description", "Description de la page.", "texte-long");
|
||||
|
||||
// Crée un bouton Appliquer, qui soumet le formulaire en cours.
|
||||
// À étudier...
|
||||
action("Appliquer", "submit");
|
||||
|
||||
// Crée un champ titre avec les trucs spéciaux du titre (renomage de la page + redirect).
|
||||
// champ-special-titre est une fonction de rappel ?
|
||||
// À étudier.
|
||||
champ("titre", "Nouvelle page", "texte-court", "champ-special-titre");
|
||||
|
|
22
__cms__/TODO_MCHB
Normal file
22
__cms__/TODO_MCHB
Normal file
|
@ -0,0 +1,22 @@
|
|||
Ok (00:54:06) js: Ha oui, avant que je commit n'importe quoi, pour le site de MCHB, je laisse la structure de base sur github ? Ou je fais un fork privé que je garde que sur mon PC (pour que ça soit pas public).
|
||||
Ok (00:55:01) bbrun: je pense qu'il vaux mieux un truc privee
|
||||
~~ (23:12:54) js: Design noir et jaune (OMG je vais avoir du mal!)
|
||||
Ok (23:13:38) js: Toutes les pages : Titre du site en haut, barre de navigation latérale, contenu à droite
|
||||
Ok (23:14:40) js: Page d'accueil : Gros encadré rouge fluo qui clignote avec un son de sirène de porte-container avec marqué dedans Prochain évènement : <le prochain évènement>
|
||||
Ok (23:15:06) js: Page d'accueil : mini-article avec du blabla sur le club en-dessous du gros encadré rouge.
|
||||
Ok (23:16:14) js: Un forum simple (Forum > Sujet > Message), _pas_ de bouton "citer" sur les messages, bouton supprimer uniquement pour les admins.
|
||||
Ok (23:17:17) js: Galerie : Seuls les admins peuvent poster des images, 3 niveaux (Galerie > Période > Évènement > Photo)
|
||||
Ok (23:19:34) js: Section Nouveautés : tri par date d'ajout, seuls les admins peuvent poster. Pas de fioritures spéciales, juste des articles avec une date.
|
||||
Ok (23:20:45) js: Section "Nos équipes de super-handballeurs" : 3 niveaux (Équipes > équipe n°1 > joueur)
|
||||
Ok (23:24:07) js: Section Liens utiles : Une série de liens avec description de qqes lignes.
|
||||
Ok (23:25:16) js: Section Contact : Une série de personnes avec Nom, Prénom, mail (caché pour les spambots), fonction (grand chef, petit chef, etc.), éventuellement notes/description
|
||||
Ok (23:26:03) js: Les logins se font avec nom et prénom. (+ mot de passe)
|
||||
(23:27:31) js: Et il y a la section Résultats que j'y ai rien compris XD donc va falloir qu'ils me ré-expliquent (il me semble qu'eux aussi ils étaient paumés donc... je compte sur toi pour la traduction sport - geek).
|
||||
|
||||
(23:21:28) js: Après mon refactor (!), je pourrai ajouter la possibilité de faire des liens entre un joueurs, un utilisateur et une ou +ieurs photos.
|
||||
(23:22:07) js: Ainsi que des liens entre actualité et saison ou matche ou photo.
|
||||
(23:23:40) js: Pour l'instant je crois que je vais laisser les champs textes (articles) en texte simple sans liens images etc. et d'ici 1 semaine ou 2, j'aurais fini mon éditeur, donc on pourra avoir des articles "riches".
|
||||
(23:25:34) js: Contact : et après le refactor, photo et lien avec l'utilisateur.
|
||||
(23:34:14) js: ah oui, et après le refactor, vous aurez peut-être droit à un historique complet (archives quoi), ou sinon si j'y arrive pas juste la possibilité de faire des "snapshot" quand ils veulent (archives 2010, archives 2011, ...).
|
||||
(23:34:49) js: j'ai bien dit peut-être parce que je sais pas du tout comment implémenter ça de manière efficace... mais c'est pas ma priorité pour l'instant.
|
||||
|
|
@ -33,7 +33,7 @@ class CMS {
|
|||
$ret = Modules::action($chemin, $action, $paramètres);
|
||||
|
||||
if (!Page::is_page($ret)) {
|
||||
Erreur::fatale("Le module de " . $chemin->get() . " n'a pas renvoyé une page mais à la place : " . var_export($ret, true));
|
||||
Erreur::fatale("Le module de " . htmlspecialchars($chemin->get()) . " n'a pas renvoyé une page mais à la place : <pre><code>" . htmlspecialchars(var_export($ret, true)) . "</code></pre>", true);
|
||||
} else {
|
||||
$ret->envoyer();
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ class Page {
|
|||
}
|
||||
|
||||
public static function is_page($obj) {
|
||||
return get_class($obj) === __CLASS__;
|
||||
return is_object($obj) && get_class($obj) === __CLASS__;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
class AdminConnexion {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "connexion") {
|
||||
if (Authentification::connexion($paramètres["utilisateur"], $paramètres["mdp"])) {
|
||||
if (Authentification::connexion(strtolower($paramètres["utilisateurnom"] . "___" . $paramètres["utilisateurprenom"]), $paramètres["mdp"])) {
|
||||
return self::vue($chemin, "connexion réussie");
|
||||
} else {
|
||||
return self::vue($chemin, "connexion échouée");
|
||||
|
@ -54,7 +54,8 @@ class AdminConnexion {
|
|||
$ret = "<h2>" . $titre . "</h2>";
|
||||
$ret .= $message;
|
||||
$ret .= '<form method="post" action="' . $chemin->get_url() . '">';
|
||||
$ret .= '<p><label for="utilisateur">Nom : </label><input type="text" id="utilisateur" name="utilisateur" value="" /></p>';
|
||||
$ret .= '<p><label for="utilisateurnom">Nom : </label><input type="text" id="utilisateurnom" name="utilisateurnom" value="" /></p>';
|
||||
$ret .= '<p><label for="utilisateurprenom">Prénom : </label><input type="text" id="utilisateurprenom" name="utilisateurprenom" value="" /></p>';
|
||||
$ret .= '<p><label for="mdp">Mot de passe : </label><input type="password" id="mdp" name="mdp" value="" /></p>';
|
||||
$ret .= '<p>';
|
||||
$ret .= '<input type="hidden" name="action" value="connexion" />';
|
||||
|
@ -65,6 +66,6 @@ class AdminConnexion {
|
|||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("AdminConnexion", "admin-connexion", "vue", "utilisateur mdp");
|
||||
Modules::enregister_module("AdminConnexion", "admin-connexion", "vue", "utilisateurnom utilisateurprenom mdp");
|
||||
|
||||
?>
|
60
__cms__/code/modules/articles/articles-article.php
Normal file
60
__cms__/code/modules/articles/articles-article.php
Normal file
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
|
||||
class ArticlesArticle {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($chemin, '', "redirect");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
return new Page($chemin->parent(), '', "redirect");
|
||||
} else {
|
||||
if (isset($paramètres["contenu"])) {
|
||||
Stockage::set_prop($chemin, "contenu", $paramètres["contenu"]);
|
||||
}
|
||||
|
||||
// titre après les autres paramètres car il peut générer un redirect.
|
||||
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");
|
||||
}
|
||||
|
||||
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 article edition" enctype="multipart/form-data" 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, "contenu"), "contenu");
|
||||
$ret .= '<p><input type="submit" value="appliquer" /></p>';
|
||||
$ret .= '</form>';
|
||||
} else {
|
||||
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
|
||||
$ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "contenu"));
|
||||
}
|
||||
if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
|
||||
// TODO : afficher le bouton "Supprimer".
|
||||
}
|
||||
|
||||
return new Page($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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ArticlesArticle", "articles-article", "vue", "titre contenu");
|
||||
|
||||
?>
|
88
__cms__/code/modules/articles/articles-index.php
Normal file
88
__cms__/code/modules/articles/articles-index.php
Normal file
|
@ -0,0 +1,88 @@
|
|||
<?php
|
||||
|
||||
class ArticlesIndex {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($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");
|
||||
} 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="articles 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="articles index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
|
||||
}
|
||||
|
||||
$ret .= '<div class="articles liste-articles index">';
|
||||
$ret .= '<ul>';
|
||||
|
||||
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
|
||||
$ret .= '<li>';
|
||||
$ret .= '<div class="titre">';
|
||||
|
||||
$ret .= '<form class="articles nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
|
||||
$ret .= '<p>';
|
||||
$ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
|
||||
$ret .= '<input type="submit" value="Nouvel article"/>';
|
||||
$ret .= '</p>';
|
||||
$ret .= '</form>';
|
||||
|
||||
$ret .= '</div>';
|
||||
$ret .= '</li>';
|
||||
}
|
||||
|
||||
foreach (Stockage::liste_enfants($chemin) as $k) { // TODO : trier par numéro !
|
||||
$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 .= '<p class="contenu">';
|
||||
$ret .= $mini->contenu;
|
||||
$ret .= '</p>';
|
||||
$ret .= '</a>';
|
||||
$ret .= '</li>';
|
||||
}
|
||||
|
||||
$ret .= '</ul>';
|
||||
|
||||
return new Page($ret, Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ArticlesIndex", "articles-index", "vue", "titre description");
|
||||
|
||||
?>
|
4
__cms__/code/modules/articles/include.php
Normal file
4
__cms__/code/modules/articles/include.php
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
require_once(dirname(__FILE__) . "/articles-index.php");
|
||||
require_once(dirname(__FILE__) . "/articles-article.php");
|
||||
?>
|
56
__cms__/code/modules/contact/contact-contact.php
Normal file
56
__cms__/code/modules/contact/contact-contact.php
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
class ContactContact {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($chemin, '', "redirect");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
return new Page($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->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($ret, Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ContactContact", "contact-contact", "vue", "nom prenom description");
|
||||
|
||||
?>
|
82
__cms__/code/modules/contact/contact-index.php
Normal file
82
__cms__/code/modules/contact/contact-index.php
Normal file
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
|
||||
class ContactIndex {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($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", "");
|
||||
enregistrer_nouveaute($np);
|
||||
return new Page($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($ret, Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ContactIndex", "contact-index", "vue", "titre description");
|
||||
|
||||
?>
|
4
__cms__/code/modules/contact/include.php
Normal file
4
__cms__/code/modules/contact/include.php
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
require_once(dirname(__FILE__) . "/contact-index.php");
|
||||
require_once(dirname(__FILE__) . "/contact-contact.php");
|
||||
?>
|
86
__cms__/code/modules/equipes/equipes-equipe.php
Normal file
86
__cms__/code/modules/equipes/equipes-equipe.php
Normal file
|
@ -0,0 +1,86 @@
|
|||
<?php
|
||||
|
||||
class ÉquipesÉquipe {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($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_joueur = 1 + Stockage::get_prop($chemin, "dernier_numero");
|
||||
Stockage::set_prop($chemin, "dernier_numero", $numéro_joueur);
|
||||
$np = Stockage::nouvelle_page($chemin, "Joueur" . $numéro_joueur, "equipes-joueur");
|
||||
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", "");
|
||||
enregistrer_nouveaute($np);
|
||||
|
||||
return new Page($chemin, '', "redirect");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
return new Page($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");
|
||||
}
|
||||
|
||||
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="équipes équipe 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 class="équipes équipe titre affichage">' . Stockage::get_prop($chemin, "titre") . '</h2>';
|
||||
}
|
||||
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 l\'équipe"/>';
|
||||
$ret .= '</form>';
|
||||
}
|
||||
$ret .= '<ul class="équipes équipe">';
|
||||
|
||||
foreach (stockage::liste_enfants($chemin) as $k) {
|
||||
$ret .= '<li>' . Modules::vue($k)->contenu . '</li>';
|
||||
}
|
||||
|
||||
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
|
||||
$ret .= '<li>';
|
||||
$ret .= '<form class="équipes équipe 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 joueur"/>';
|
||||
$ret .= '</p>';
|
||||
$ret .= '</form>';
|
||||
$ret .= '</li>';
|
||||
}
|
||||
|
||||
$ret .= '</ul>';
|
||||
|
||||
return new Page($ret, Stockage::get_prop($chemin, "titre"));
|
||||
} else if ($vue == "miniature") {
|
||||
return new Page("Équipe.", Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ÉquipesÉquipe", "equipes-equipe", "vue", "titre");
|
||||
|
||||
?>
|
84
__cms__/code/modules/equipes/equipes-index.php
Normal file
84
__cms__/code/modules/equipes/equipes-index.php
Normal file
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
|
||||
class ÉquipesIndex {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($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");
|
||||
} 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="equipes 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="equipes index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
|
||||
}
|
||||
|
||||
$ret .= '<div class="equipes index liste-equipes">';
|
||||
$ret .= '<ul>';
|
||||
|
||||
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
|
||||
$ret .= '<li>';
|
||||
$ret .= '<div class="titre">';
|
||||
|
||||
$ret .= '<form class="equipes nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
|
||||
$ret .= '<p>';
|
||||
$ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
|
||||
$ret .= '<input type="submit" value="Nouvelle équipe"/>';
|
||||
$ret .= '</p>';
|
||||
$ret .= '</form>';
|
||||
|
||||
$ret .= '</div>';
|
||||
$ret .= '</li>';
|
||||
}
|
||||
|
||||
foreach (Stockage::liste_enfants($chemin) as $k) { // TODO : trier par numéro !
|
||||
$mini = Modules::vue($k, 'miniature');
|
||||
$ret .= '<li>';
|
||||
$ret .= '<a href="' . $k->get_url() . '">'; // TODO : escape l'url !
|
||||
$ret .= '<span class="titre">';
|
||||
$ret .= $mini->titre;
|
||||
$ret .= '</span>';
|
||||
$ret .= '</a>';
|
||||
$ret .= '</li>';
|
||||
}
|
||||
|
||||
$ret .= '</ul>';
|
||||
|
||||
return new Page($ret, Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ÉquipesIndex", "equipes-index", "vue", "titre description");
|
||||
|
||||
?>
|
58
__cms__/code/modules/equipes/equipes-joueur.php
Normal file
58
__cms__/code/modules/equipes/equipes-joueur.php
Normal file
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
|
||||
class ÉquipesJoueur {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($chemin, '', "redirect");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
return new Page($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->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="équipes joueur 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 joueur ' . htmlspecialchars(Stockage::get_prop($chemin, "prenom") . " " . Stockage::get_prop($chemin, "nom")) . '"/>';
|
||||
$ret .= '</form>';
|
||||
}
|
||||
|
||||
// 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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ÉquipesJoueur", "equipes-joueur", "vue", "nom prenom description");
|
||||
|
||||
?>
|
5
__cms__/code/modules/equipes/include.php
Normal file
5
__cms__/code/modules/equipes/include.php
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
require_once(dirname(__FILE__) . "/equipes-index.php");
|
||||
require_once(dirname(__FILE__) . "/equipes-equipe.php");
|
||||
require_once(dirname(__FILE__) . "/equipes-joueur.php");
|
||||
?>
|
|
@ -5,37 +5,81 @@ class ForumIndex {
|
|||
if ($action == "anuler") {
|
||||
return new Page($chemin, '', "redirect");
|
||||
} else if ($action == "nouvelle_page") {
|
||||
// TODO : faut-il demander à avoir directement le nom du nouveau sujet ?
|
||||
// TODO : quel est le propriétaire du nouveau sujet ?
|
||||
$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");
|
||||
} 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"])) {
|
||||
self::vue($chemin, $paramètres["vue"]);
|
||||
return self::vue($chemin, $paramètres["vue"]);
|
||||
} else {
|
||||
self::vue($chemin);
|
||||
return self::vue($chemin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function vue($chemin, $vue = "normal") {
|
||||
if ($vue == "normal") {
|
||||
$ret = '';
|
||||
$ret .= "<h2>Forum</h2>";
|
||||
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
|
||||
// afficher le lien "Nouveau sujet"
|
||||
$ret = '';
|
||||
|
||||
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
|
||||
$ret .= '<form class="forum 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="forum index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
|
||||
}
|
||||
$ret .= '<ul class="forum index">';
|
||||
foreach (stockage::liste_enfants($chemin) as $k) {
|
||||
$ret .= '<li><a href="' . chemin::vers_url($k) . '">' . modules::vue($k, 'miniature') . '</a></li>'; // TODO : escape l'url !
|
||||
}
|
||||
$ret .= '</ul>';
|
||||
return $ret;
|
||||
|
||||
$ret .= '<div class="forum sujets index">';
|
||||
$ret .= '<ul>';
|
||||
|
||||
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
|
||||
$ret .= '<li>';
|
||||
$ret .= '<div class="titre">';
|
||||
|
||||
$ret .= '<form class="forum 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 sujet de discussion"/>';
|
||||
$ret .= '</p>';
|
||||
$ret .= '</form>';
|
||||
|
||||
$ret .= '</div>';
|
||||
$ret .= '</li>';
|
||||
}
|
||||
|
||||
foreach (Stockage::liste_enfants($chemin) as $k) { // TODO : trier par numéro !
|
||||
$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 .= '</li>';
|
||||
}
|
||||
|
||||
$ret .= '</ul>';
|
||||
|
||||
return new Page($ret, Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ForumIndex", "forum-index", "vue");
|
||||
Modules::enregister_module("ForumIndex", "forum-index", "vue", "titre description");
|
||||
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -1,38 +1,41 @@
|
|||
<?php
|
||||
|
||||
function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($chemin, '', "redirect");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin);
|
||||
return new Page($chemin->parent(), '', "redirect");
|
||||
} else {
|
||||
if (isset($paramètres["message"])) {
|
||||
Stockage::set_prop($chemin, "message", $paramètres["message"]);
|
||||
}
|
||||
|
||||
// TODO ... Quelles sont les interactions entre l'utilisateur et le message, dans quel ordre, ...
|
||||
if (isset($paramètres["vue"])) {
|
||||
Modules::vue($chemin->parent(), $paramètres["vue"]);
|
||||
class ForumMessage {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($chemin, '', "redirect");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
return new Page($chemin->parent(), '', "redirect");
|
||||
} else {
|
||||
Modules::vue($chemin->parent());
|
||||
if (isset($paramètres["message"])) {
|
||||
Stockage::set_prop($chemin, "message", $paramètres["message"]);
|
||||
}
|
||||
|
||||
return new Page($chemin->parent(), '', "redirect");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function vue($chemin, $vue = "normal") {
|
||||
if ($vue == "normal") {
|
||||
$ret = '';
|
||||
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
|
||||
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "message"), "message");
|
||||
} else {
|
||||
$ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "message"));
|
||||
|
||||
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="forum message edition" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">';
|
||||
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "message"), "message");
|
||||
$ret .= '<p><input type="submit" value="appliquer" /></p>';
|
||||
$ret .= '</form>';
|
||||
} else {
|
||||
$ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "message"));
|
||||
}
|
||||
if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
|
||||
// peut-être afficher le bouton "Supprimer" ??? ou est-ce trop d'options ?
|
||||
}
|
||||
|
||||
// Peut-être afficher le bouton "citer" ? ou est-ce trop d'options ?
|
||||
|
||||
return new Page($ret, Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
|
||||
// peut-être afficher le bouton "Supprimer" ??? ou est-ce trop d'options ?
|
||||
}
|
||||
// Peut-être afficher le bouton "citer" ? ou est-ce trop d'options ?
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,37 +6,43 @@ class ForumSujet {
|
|||
return new Page($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_message = 1 + Stockage::get_prop($chemin, "dernier_numero");
|
||||
Stockage::set_prop($chemin, "dernier_numero", $numéro_message);
|
||||
$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");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin);
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
return new Page($chemin->parent(), '', "redirect");
|
||||
} else {
|
||||
if (isset($paramètres["titre"])) {
|
||||
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 : peut-être new Page($chemin, '', "redirect") ?
|
||||
// TODO : transmettre le paramètre "vue"
|
||||
return new Page($chemin, '', "redirect");
|
||||
}
|
||||
|
||||
if (isset($paramètres["vue"])) {
|
||||
self::vue($chemin, $paramètres["vue"]);
|
||||
return self::vue($chemin, $paramètres["vue"]);
|
||||
} else {
|
||||
self::vue($chemin);
|
||||
return self::vue($chemin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function vue($chemin, $vue = "normal") {
|
||||
if ($vue == "normal") {
|
||||
$ret = '';
|
||||
$ret = '';
|
||||
|
||||
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
|
||||
$ret .= '<form action="' . $chemin->get_url() . '">';
|
||||
$ret .= '<input type="text" name="titre" class="forum sujet titre edition" value="' . Stockage::get_prop($chemin, "titre") . '"/>';
|
||||
$ret .= '<input type="submit" value="renomer" />';
|
||||
$ret .= '<form class="forum sujet 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 class="forum sujet titre affichage">' . Stockage::get_prop($chemin, "titre") . '</h2>';
|
||||
|
@ -44,23 +50,31 @@ class ForumSujet {
|
|||
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"/>';
|
||||
$ret .= '<input type="submit" value="Supprimer le sujet"/>';
|
||||
$ret .= '</form>';
|
||||
}
|
||||
$ret .= '<ul class="forum sujet">';
|
||||
|
||||
foreach (stockage::liste_enfants($chemin) as $k) {
|
||||
$ret .= '<li>' . Modules::vue($k) . '</li>';
|
||||
$ret .= '<li>' . Modules::vue($k)->contenu . '</li>';
|
||||
}
|
||||
$ret .= '</ul>';
|
||||
|
||||
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
|
||||
$ret .= '<form action="' . $chemin->get_url() . '">';
|
||||
$ret .= '<li>';
|
||||
$ret .= '<form class="forum sujet nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
|
||||
$ret .= '<p>';
|
||||
$ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
|
||||
$ret .= '<input type="submit" value="Nouvelle page"/>';
|
||||
$ret .= '<input type="submit" value="Nouveau message"/>';
|
||||
$ret .= '</p>';
|
||||
$ret .= '</form>';
|
||||
$ret .= '</li>';
|
||||
}
|
||||
return $ret;
|
||||
|
||||
$ret .= '</ul>';
|
||||
|
||||
return new Page($ret, Stockage::get_prop($chemin, "titre"));
|
||||
} else if ($vue == "miniature") {
|
||||
return Stockage::get_prop($chemin, "titre");
|
||||
return new Page("Sujet.", Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ class GalerieÉvènement {
|
|||
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");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
|
@ -46,7 +47,7 @@ class GalerieÉvènement {
|
|||
$ret .= '<p><input type="submit" value="appliquer" /></p>';
|
||||
$ret .= '</form>';
|
||||
} else {
|
||||
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
|
||||
$ret .= '<h2 class="galerie evenement titre affichage">' . Stockage::get_prop($chemin, "titre") . '</h2>';
|
||||
$ret .= '<p class="galerie evenement description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ class GalerieIndex {
|
|||
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");
|
||||
} else {
|
||||
if (isset($paramètres["description"])) {
|
||||
|
|
|
@ -9,6 +9,7 @@ class GaleriePériode {
|
|||
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");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
|
|
|
@ -6,5 +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");
|
||||
|
||||
?>
|
4
__cms__/code/modules/liens/include.php
Normal file
4
__cms__/code/modules/liens/include.php
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
require_once(dirname(__FILE__) . "/liens-index.php");
|
||||
require_once(dirname(__FILE__) . "/liens-lien.php");
|
||||
?>
|
83
__cms__/code/modules/liens/liens-index.php
Normal file
83
__cms__/code/modules/liens/liens-index.php
Normal file
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
|
||||
class LiensIndex {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($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_lien = 1 + Stockage::get_prop($chemin, "dernier_numero");
|
||||
Stockage::set_prop($chemin, "dernier_numero", $numéro_lien);
|
||||
$np = Stockage::nouvelle_page($chemin, "Lien" . $numéro_lien, "liens-lien");
|
||||
Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
|
||||
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");
|
||||
} 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="liens 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="liens index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
|
||||
}
|
||||
|
||||
$ret .= '<div class="liens liste-liens index">';
|
||||
$ret .= '<ul>';
|
||||
|
||||
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
|
||||
$ret .= '<li>';
|
||||
$ret .= '<div class="titre">';
|
||||
|
||||
$ret .= '<form class="liens 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 lien"/>';
|
||||
$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($ret, Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("LiensIndex", "liens-index", "vue", "titre description");
|
||||
|
||||
?>
|
54
__cms__/code/modules/liens/liens-lien.php
Normal file
54
__cms__/code/modules/liens/liens-lien.php
Normal file
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
class LiensLien {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "anuler") {
|
||||
return new Page($chemin, '', "redirect");
|
||||
} else if ($action == "supprimer") {
|
||||
Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif
|
||||
return new Page($chemin->parent(), '', "redirect");
|
||||
} else {
|
||||
if (isset($paramètres["texte"])) {
|
||||
Stockage::set_prop($chemin, "texte", $paramètres["texte"]);
|
||||
}
|
||||
if (isset($paramètres["cible"])) {
|
||||
Stockage::set_prop($chemin, "cible", $paramètres["cible"]);
|
||||
}
|
||||
if (isset($paramètres["description"])) {
|
||||
Stockage::set_prop($chemin, "cible", $paramètres["cible"]);
|
||||
}
|
||||
|
||||
return new Page($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="liens lien edition" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">';
|
||||
$ret .= '<input type="text" name="texte" value="' . Stockage::get_prop($chemin, "texte") . '" />';
|
||||
$ret .= '<input type="text" name="cible" value="' . Stockage::get_prop($chemin, "cible") . '" />';
|
||||
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
|
||||
$ret .= '<p><input type="submit" value="appliquer" /></p>';
|
||||
$ret .= '</form>';
|
||||
} else {
|
||||
$ret .= '<a href="' . htmlspecialchars(Stockage::get_prop($chemin, "cible")) . '">' . Stockage::get_prop($chemin, "texte") . '</a>';
|
||||
$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 lien ' . htmlspecialchars(Stockage::get_prop($chemin, "cible")) . '"/>';
|
||||
$ret .= '</form>';
|
||||
}
|
||||
|
||||
return new Page($ret, Stockage::get_prop($chemin, "titre"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("LiensLien", "liens-lien", "vue", "texte cible description");
|
||||
|
||||
?>
|
3
__cms__/code/modules/nouveautes/include.php
Normal file
3
__cms__/code/modules/nouveautes/include.php
Normal file
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
require_once(dirname(__FILE__) . "/nouveautes-index.php");
|
||||
?>
|
84
__cms__/code/modules/nouveautes/nouveautes-index.php
Normal file
84
__cms__/code/modules/nouveautes/nouveautes-index.php
Normal file
|
@ -0,0 +1,84 @@
|
|||
<?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");
|
||||
|
||||
?>
|
|
@ -6,6 +6,14 @@ class SiteIndex {
|
|||
Stockage::set_prop($chemin, "nom_site", $paramètres["nom_site"]);
|
||||
}
|
||||
|
||||
if (isset($paramètres["prochain_evenement"])) {
|
||||
Stockage::set_prop($chemin, "prochain_evenement", $paramètres["prochain_evenement"]);
|
||||
}
|
||||
|
||||
if (isset($paramètres["description"])) {
|
||||
Stockage::set_prop($chemin, "description", $paramètres["description"]);
|
||||
}
|
||||
|
||||
if (isset($paramètres["vue"])) {
|
||||
return self::vue($chemin, $paramètres["vue"]);
|
||||
} else {
|
||||
|
@ -16,8 +24,37 @@ class SiteIndex {
|
|||
public static function vue($chemin, $vue = "normal") {
|
||||
if ($vue == "normal") {
|
||||
$ret = '';
|
||||
$ret .= "<h2>" . Stockage::get_prop($chemin, "nom_site") . "</h2>";
|
||||
$ret .= "<p>Bienvenue sur le site d'exemple.</p>";
|
||||
|
||||
$ret .= '<div class="prochain-evenement">';
|
||||
$ret .= '<h2>Prochain évènement</h2>';
|
||||
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
|
||||
$ret .= '<form method="post" action="' . $chemin->get_url() . '">';
|
||||
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "prochain_evenement"), "prochain_evenement");
|
||||
$ret .= '<p><input type="submit" value="appliquer" /></p>';
|
||||
$ret .= '</form>';
|
||||
} else {
|
||||
$ret .= Stockage::get_prop($chemin, "prochain_evenement");
|
||||
}
|
||||
$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() . '">';
|
||||
$ret .= '<h2><input type="text" name="nom_site" value="' . Stockage::get_prop($chemin, "nom_site") . '" /></h2>';
|
||||
$ret .= '<p><input type="submit" value="appliquer" /></p>';
|
||||
$ret .= '</form>';
|
||||
} else {
|
||||
$ret .= "<h2>" . Stockage::get_prop($chemin, "nom_site") . "</h2>";
|
||||
}
|
||||
if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
|
||||
$ret .= '<form method="post" action="' . $chemin->get_url() . '">';
|
||||
$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, "description");
|
||||
}
|
||||
$ret .= '</div>';
|
||||
return new Page($ret, Stockage::get_prop($chemin, "nom_site"));
|
||||
} else if ($vue == "css") {
|
||||
return new Page(get_css(), "text/css", "raw");
|
||||
|
@ -26,6 +63,6 @@ class SiteIndex {
|
|||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("SiteIndex", "site-index", "vue", "titre");
|
||||
Modules::enregister_module("SiteIndex", "site-index", "vue", "nom_site prochain_evenement description");
|
||||
|
||||
?>
|
|
@ -5,7 +5,7 @@ class Erreur {
|
|||
public $message = "erreur";
|
||||
public $string = "";
|
||||
|
||||
public static function fatale($message) {
|
||||
public static function fatale($message, $html = false) {
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
|
||||
|
@ -20,7 +20,7 @@ class Erreur {
|
|||
. htmlspecialchars(rawurlencode("Code de l'erreur : " . $message)) . '">'
|
||||
. htmlspecialchars(Config::get('courriel_admin'))
|
||||
. '</a>. Indiquez l\'erreur ci-dessous dans votre courriel.</p>
|
||||
<p><strong>' . htmlspecialchars($message) . '</strong></p>
|
||||
<p><strong>' . ($html ? $message : htmlspecialchars($message)) . '</strong></p>
|
||||
</body>
|
||||
</html>';
|
||||
//echo "\n"; debug_print_backtrace();
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
<?php
|
||||
|
||||
// #ba7500
|
||||
// #c0a700
|
||||
|
||||
function get_css() {
|
||||
return "h1 a {
|
||||
color: #7f7f33;
|
||||
|
|
|
@ -22,7 +22,9 @@ class Squelette {
|
|||
$ret .= ' <meta http-equiv="Content-Language" content="fr" />' . $nl;
|
||||
$ret .= ' <meta name="keywords" lang="fr" content="motcle1,mocle2" />' . $nl;
|
||||
$ret .= ' <meta name="description" content="Description de ma page web." />' . $nl;
|
||||
$ret .= ' <link href="' . $chemin_css . '" rel="stylesheet" type="text/css" />' . $nl;
|
||||
/*$ret .= ' <link href="' . $chemin_css . '" rel="stylesheet" type="text/css" />' . $nl;*/
|
||||
$ret .= ' <link href="' . $racine->get_url("test.less") . '" rel="stylesheet/less" type="text/css" />' . $nl;
|
||||
$ret .= ' <script src="' . $racine->get_url("less/less.js") . '" type="text/javascript"></script>' . $nl;
|
||||
$ret .= ' </head>' . $nl;
|
||||
$ret .= ' <body>' . $nl;
|
||||
$ret .= ' <h1><a href="' . $racine->get_url() . '">' . Stockage::get_prop($racine, "nom_site") . '</a></h1>' . $nl;
|
||||
|
@ -39,6 +41,11 @@ class Squelette {
|
|||
$ret .= ' <ul>' . $nl;
|
||||
$ret .= ' <li><a href="' . $racine->get_url() . '">Accueil</a></li>' . $nl;
|
||||
$ret .= ' <li><a href="' . $racine->enfant("galerie")->get_url() . '">Galerie</a></li>' . $nl;
|
||||
$ret .= ' <li><a href="' . $racine->enfant("nouveautes")->get_url() . '">Nouveautés</a></li>' . $nl;
|
||||
$ret .= ' <li><a href="' . $racine->enfant("equipes")->get_url() . '">Équipes</a></li>' . $nl;
|
||||
$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;
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -24,4 +24,8 @@ function affichage_texte_enrichi($données) {
|
|||
return "<p>" . $données . "</p>"; // escape html chars & co.
|
||||
}
|
||||
|
||||
function miniature_texte_enrichi($données) {
|
||||
return substr($données, 0, 50) . "..."; // escape html chars & co.
|
||||
}
|
||||
|
||||
?>
|
1
__cms__/donnees/__prop__description
Normal file
1
__cms__/donnees/__prop__description
Normal file
|
@ -0,0 +1 @@
|
|||
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.
|
|
@ -1 +1 @@
|
|||
Site d'exemple
|
||||
Montpellier Chamberte Handball
|
1
__cms__/donnees/__prop__prochain_evenement
Normal file
1
__cms__/donnees/__prop__prochain_evenement
Normal file
|
@ -0,0 +1 @@
|
|||
Match au stade de france !
|
1
__cms__/donnees/contact/Contact1/__prop__date_modif
Normal file
1
__cms__/donnees/contact/Contact1/__prop__date_modif
Normal file
|
@ -0,0 +1 @@
|
|||
1284424642
|
3
__cms__/donnees/contact/Contact1/__prop__description
Normal file
3
__cms__/donnees/contact/Contact1/__prop__description
Normal file
|
@ -0,0 +1,3 @@
|
|||
Responsable du vestiaire masculin.
|
||||
|
||||
06 66 00 06 66
|
1
__cms__/donnees/contact/Contact1/__prop__nom
Normal file
1
__cms__/donnees/contact/Contact1/__prop__nom
Normal file
|
@ -0,0 +1 @@
|
|||
Lamorue
|
1
__cms__/donnees/contact/Contact1/__prop__prenom
Normal file
1
__cms__/donnees/contact/Contact1/__prop__prenom
Normal file
|
@ -0,0 +1 @@
|
|||
Cunégonde
|
1
__cms__/donnees/contact/Contact1/__prop__proprietaire
Normal file
1
__cms__/donnees/contact/Contact1/__prop__proprietaire
Normal file
|
@ -0,0 +1 @@
|
|||
grand___chef
|
1
__cms__/donnees/contact/Contact1/__prop__type
Normal file
1
__cms__/donnees/contact/Contact1/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
contact-contact
|
1
__cms__/donnees/contact/__prop__dernier_numero
Normal file
1
__cms__/donnees/contact/__prop__dernier_numero
Normal file
|
@ -0,0 +1 @@
|
|||
1
|
1
__cms__/donnees/contact/__prop__description
Normal file
1
__cms__/donnees/contact/__prop__description
Normal file
|
@ -0,0 +1 @@
|
|||
Personnes à contacter :
|
1
__cms__/donnees/contact/__prop__titre
Normal file
1
__cms__/donnees/contact/__prop__titre
Normal file
|
@ -0,0 +1 @@
|
|||
Contact
|
1
__cms__/donnees/contact/__prop__type
Normal file
1
__cms__/donnees/contact/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
contact-index
|
1
__cms__/donnees/equipes/__prop__description
Normal file
1
__cms__/donnees/equipes/__prop__description
Normal file
|
@ -0,0 +1 @@
|
|||
Et nous présentons fièrement devant vos yeux ébahis nos équipes de super-handballeurs !!!
|
1
__cms__/donnees/equipes/__prop__titre
Normal file
1
__cms__/donnees/equipes/__prop__titre
Normal file
|
@ -0,0 +1 @@
|
|||
Équipes
|
1
__cms__/donnees/equipes/__prop__type
Normal file
1
__cms__/donnees/equipes/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
equipes-index
|
|
@ -0,0 +1 @@
|
|||
1284419751
|
|
@ -0,0 +1 @@
|
|||
Un vaillant gardien de but. Que la force soit avec lui !
|
1
__cms__/donnees/equipes/Équipe n°1/Joueur3/__prop__nom
Normal file
1
__cms__/donnees/equipes/Équipe n°1/Joueur3/__prop__nom
Normal file
|
@ -0,0 +1 @@
|
|||
Skywalker
|
|
@ -0,0 +1 @@
|
|||
Luc
|
|
@ -0,0 +1 @@
|
|||
admin
|
1
__cms__/donnees/equipes/Équipe n°1/Joueur3/__prop__type
Normal file
1
__cms__/donnees/equipes/Équipe n°1/Joueur3/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
equipes-joueur
|
1
__cms__/donnees/equipes/Équipe n°1/__prop__date_modif
Normal file
1
__cms__/donnees/equipes/Équipe n°1/__prop__date_modif
Normal file
|
@ -0,0 +1 @@
|
|||
1284418704
|
|
@ -0,0 +1 @@
|
|||
3
|
1
__cms__/donnees/equipes/Équipe n°1/__prop__proprietaire
Normal file
1
__cms__/donnees/equipes/Équipe n°1/__prop__proprietaire
Normal file
|
@ -0,0 +1 @@
|
|||
admin
|
1
__cms__/donnees/equipes/Équipe n°1/__prop__titre
Normal file
1
__cms__/donnees/equipes/Équipe n°1/__prop__titre
Normal file
|
@ -0,0 +1 @@
|
|||
Équipe n°1
|
1
__cms__/donnees/equipes/Équipe n°1/__prop__type
Normal file
1
__cms__/donnees/equipes/Équipe n°1/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
equipes-equipe
|
1
__cms__/donnees/forum/Nouveau sujet/__prop__date_modif
Normal file
1
__cms__/donnees/forum/Nouveau sujet/__prop__date_modif
Normal file
|
@ -0,0 +1 @@
|
|||
1282948057
|
|
@ -0,0 +1 @@
|
|||
0
|
1
__cms__/donnees/forum/Nouveau sujet/__prop__proprietaire
Normal file
1
__cms__/donnees/forum/Nouveau sujet/__prop__proprietaire
Normal file
|
@ -0,0 +1 @@
|
|||
admin
|
1
__cms__/donnees/forum/Nouveau sujet/__prop__titre
Normal file
1
__cms__/donnees/forum/Nouveau sujet/__prop__titre
Normal file
|
@ -0,0 +1 @@
|
|||
Nouveau sujet
|
1
__cms__/donnees/forum/Nouveau sujet/__prop__type
Normal file
1
__cms__/donnees/forum/Nouveau sujet/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
forum-sujet
|
|
@ -0,0 +1 @@
|
|||
Un ptit message !
|
|
@ -0,0 +1 @@
|
|||
admin
|
|
@ -0,0 +1 @@
|
|||
forum-message
|
|
@ -0,0 +1 @@
|
|||
1
|
|
@ -0,0 +1 @@
|
|||
admin
|
|
@ -0,0 +1 @@
|
|||
Un sujet de discussion
|
|
@ -0,0 +1 @@
|
|||
forum-sujet
|
|
@ -0,0 +1 @@
|
|||
Bla bla bla...
|
|
@ -0,0 +1 @@
|
|||
admin
|
|
@ -0,0 +1 @@
|
|||
forum-message
|
|
@ -0,0 +1 @@
|
|||
Plop
|
|
@ -0,0 +1 @@
|
|||
admin
|
|
@ -0,0 +1 @@
|
|||
forum-message
|
|
@ -0,0 +1 @@
|
|||
Truc
|
|
@ -0,0 +1 @@
|
|||
admin
|
|
@ -0,0 +1 @@
|
|||
forum-message
|
|
@ -0,0 +1 @@
|
|||
3
|
|
@ -0,0 +1 @@
|
|||
admin
|
1
__cms__/donnees/forum/Une autre discussion/__prop__titre
Normal file
1
__cms__/donnees/forum/Une autre discussion/__prop__titre
Normal file
|
@ -0,0 +1 @@
|
|||
Une autre discussion
|
1
__cms__/donnees/forum/Une autre discussion/__prop__type
Normal file
1
__cms__/donnees/forum/Une autre discussion/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
forum-sujet
|
1
__cms__/donnees/forum/__prop__description
Normal file
1
__cms__/donnees/forum/__prop__description
Normal file
|
@ -0,0 +1 @@
|
|||
Description du forum.
|
1
__cms__/donnees/forum/__prop__titre
Normal file
1
__cms__/donnees/forum/__prop__titre
Normal file
|
@ -0,0 +1 @@
|
|||
Forum
|
1
__cms__/donnees/forum/__prop__type
Normal file
1
__cms__/donnees/forum/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
forum-index
|
1
__cms__/donnees/galerie/periode 2/__prop__description
Normal file
1
__cms__/donnees/galerie/periode 2/__prop__description
Normal file
|
@ -0,0 +1 @@
|
|||
Un peu de le texte.
|
|
@ -0,0 +1 @@
|
|||
Un super évènement !
|
|
@ -1 +1 @@
|
|||
evenement truc
|
||||
evenement truc
|
1
__cms__/donnees/liens/Lien1/__prop__cible
Normal file
1
__cms__/donnees/liens/Lien1/__prop__cible
Normal file
|
@ -0,0 +1 @@
|
|||
http://www.example.com/joli/lien/
|
1
__cms__/donnees/liens/Lien1/__prop__date_modif
Normal file
1
__cms__/donnees/liens/Lien1/__prop__date_modif
Normal file
|
@ -0,0 +1 @@
|
|||
1284424600
|
1
__cms__/donnees/liens/Lien1/__prop__description
Normal file
1
__cms__/donnees/liens/Lien1/__prop__description
Normal file
|
@ -0,0 +1 @@
|
|||
Un lien d'exemple très utile.
|
1
__cms__/donnees/liens/Lien1/__prop__proprietaire
Normal file
1
__cms__/donnees/liens/Lien1/__prop__proprietaire
Normal file
|
@ -0,0 +1 @@
|
|||
grand___chef
|
1
__cms__/donnees/liens/Lien1/__prop__texte
Normal file
1
__cms__/donnees/liens/Lien1/__prop__texte
Normal file
|
@ -0,0 +1 @@
|
|||
Un très joli lien
|
1
__cms__/donnees/liens/Lien1/__prop__type
Normal file
1
__cms__/donnees/liens/Lien1/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
liens-lien
|
1
__cms__/donnees/liens/__prop__dernier_numero
Normal file
1
__cms__/donnees/liens/__prop__dernier_numero
Normal file
|
@ -0,0 +1 @@
|
|||
1
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user