Nouveautés (marche _très_ mal).

This commit is contained in:
Georges Dupéron 2010-08-28 00:30:58 +02:00
parent 38edbb5851
commit 0851e56540
27 changed files with 192 additions and 1 deletions

View File

@ -9,6 +9,7 @@ class ArticlesIndex {
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"])) {

View File

@ -9,6 +9,7 @@ class ForumIndex {
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"])) {

View File

@ -6,11 +6,13 @@ 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") {

View File

@ -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

View File

@ -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"])) {

View File

@ -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

View File

@ -7,5 +7,6 @@ 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__) . "/articles/include.php");
require_once(dirname(__FILE__) . "/nouveautes/include.php");
?>

View File

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

View 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");
?>

View File

@ -0,0 +1,62 @@
<?php
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>';
var_dump(Stockage::liste_enfants(new Chemin("/forum")));
foreach (Stockage::liste_enfants($chemin) as $k) {
$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"));
}
}
}
Modules::enregister_module("NouveautesIndex", "nouveautes-index", "vue", "titre");
?>

View File

@ -41,6 +41,7 @@ class Squelette {
$ret .= ' <li><a href="' . $racine->enfant("galerie")->get_url() . '">Galerie</a></li>' . $nl;
$ret .= ' <li><a href="' . $racine->enfant("forum")->get_url() . '">Forum</a></li>' . $nl;
$ret .= ' <li><a href="' . $racine->enfant("articles")->get_url() . '">Articles</a></li>' . $nl;
$ret .= ' <li><a href="' . $racine->enfant("nouveautes")->get_url() . '">Nouveautés</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;
}

View File

@ -0,0 +1 @@
1282948057

View File

@ -0,0 +1 @@
0

View File

@ -0,0 +1 @@
admin

View File

@ -0,0 +1 @@
Nouveau sujet

View File

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

View File

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

View File

@ -0,0 +1 @@
nouveaute-element-liste

View File

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

View File

@ -0,0 +1 @@
nouveaute-element-liste

View File

@ -0,0 +1 @@
3

View File

@ -0,0 +1 @@
Nouveautés

View File

@ -0,0 +1 @@
nouveautes-index

7
nouveautes/2/index.php Normal file
View File

@ -0,0 +1,7 @@
<?php
require_once(dirname(__FILE__) . "/./../../__cms__/cms.php");
CMS::page("/nouveautes/2");
?>

7
nouveautes/3/index.php Normal file
View File

@ -0,0 +1,7 @@
<?php
require_once(dirname(__FILE__) . "/./../../__cms__/cms.php");
CMS::page("/nouveautes/3");
?>

7
nouveautes/index.php Normal file
View File

@ -0,0 +1,7 @@
<?php
require_once(dirname(__FILE) . "/./../__cms__/cms.php");
CMS::page("/nouveautes");
?>

View File

@ -1,6 +1,6 @@
#!/bin/sh
fichiers="index.php galerie forum articles admin __cms__/donnees"
fichiers="index.php galerie forum articles nouveautes admin __cms__/donnees"
chgrp -R www-data $fichiers
chmod -R 664 $fichiers