www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

nouveautes-index.php (2774B)


      1 <?php
      2 
      3 // TODO : accents pour nouveauté.
      4 class NouveautesIndex {
      5 	public static function action($chemin, $action, $paramètres) {
      6 		if ($action == "anuler") {
      7 			return new Page($chemin, '', "redirect");
      8 		} else {
      9 			if (isset($paramètres["titre"])) {
     10 				Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
     11 			}
     12 			
     13 			if (isset($paramètres["vue"])) {
     14 				return self::vue($chemin, $paramètres["vue"]);
     15 			} else {
     16 				return self::vue($chemin);
     17 			}
     18 		}
     19 	}
     20 	
     21 	public static function vue($chemin, $vue = "normal") {
     22 		if ($vue == "normal") {
     23 			$ret = '';
     24 			
     25 			if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
     26 				$ret .= '<form class="articles infos" method="post" action="' . $chemin->get_url() . '">';
     27 				$ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
     28 				$ret .= '<p><input type="submit" value="appliquer" /></p>';
     29 				$ret .= '</form>';
     30 			} else {
     31 				$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
     32 			}
     33 			
     34 			$ret .= '<div class="nouveautes list index">';
     35 			$ret .= '<ul>';
     36 
     37 			/*foreach (Stockage::liste_enfants(new Chemin("/forum")) as $k) {
     38 				$date = Stockage::get_prop($k, "date_modif");
     39 				if (Erreur::is_erreur($date)) $date = "0";
     40 				$date = (int)$date;
     41 				
     42 				var_dump($date);
     43 				}*/
     44 
     45 			// TODO : faire dans l'ordre décroissant les 5 dernières nouveautés.
     46 			foreach (Stockage::liste_enfants($chemin) as $n) {
     47 				$k = new Chemin(Stockage::get_prop($n, "chemin"));
     48 				$mini = Modules::vue($k, 'miniature');
     49 				$ret .= '<li>';
     50 				// TODO : mettre une ancre "#message<numéro>"
     51 				$ret .= '<a href="' . $k->get_url() . '">'; // TODO : escape l'url !
     52 				$ret .= '<span class="titre">';
     53 				$ret .= $mini->titre;
     54 				$ret .= '</span>';
     55 				$ret .= '</a>';
     56 				$ret .= '<p class="contenu">';
     57 				$ret .= $mini->contenu;
     58 				$ret .= '</p>';
     59 				$ret .= '</li>';
     60 			}
     61 			
     62 			$ret .= '</ul>';
     63 			
     64 			return new Page($ret, Stockage::get_prop($chemin, "titre"));
     65 		}
     66 	}
     67 }
     68 
     69 // TODO : maintenir la liste à jour lors des renomages, suppressions, ...
     70 function enregistrer_nouveaute($chemin) {
     71 	$singleton = new Chemin("/nouveautes");
     72 	Stockage::set_prop($chemin, "date_modif", "".time());
     73 	// SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
     74 	// CONCURENCE : Faire un lock quelque part...
     75 	$numéro_nouveauté = 1 + Stockage::get_prop($singleton, "dernier_numero");
     76 	Stockage::set_prop($singleton, "dernier_numero", $numéro_nouveauté);
     77 	
     78 	$nouv = Stockage::nouvelle_page($singleton, "" . $numéro_nouveauté, "nouveaute-element-liste");
     79 	Stockage::set_prop($nouv, "chemin", $chemin->get());
     80 }
     81 
     82 Modules::enregister_module("NouveautesIndex", "nouveautes-index", "vue", "titre");
     83 
     84 ?>