Amélioration du squelette et de la page d'accueil.

This commit is contained in:
Georges Dupéron 2010-08-04 09:29:56 +02:00
parent 14e6f9af3e
commit a789019f84
17 changed files with 57 additions and 30 deletions

View File

@ -36,7 +36,7 @@ class Chemin {
if ($motif[$i] == CHEMIN_JOKER_SEGMENT) {
continue;
}
if ($motif[$i] == $this->segments[$i]) {
if ($i < count($this->segments) && $motif[$i] == $this->segments[$i]) {
continue;
}
return false;
@ -103,7 +103,7 @@ class Chemin {
$chemin = preg_replace("/^\\/*/", '', $chemin);
$chemin = preg_replace("/\\/*$/", '', $chemin);
$segments = explode('/', $chemin);
$segments = qw($chemin, '/');
if ($est_un_motif) {
$segments = array_map(array("self", "nettoyer_segment_motif"), $segments);
} else {
@ -115,12 +115,13 @@ class Chemin {
public static function nettoyer_segment($segment, $est_un_motif = false) {
// SÉCURITÉ : $segment nettoyé :
// * /!\ Peut être vide /!\
// * /!\ Ne peut pas être vide /!\
// * Ne doit pas contenir '\0' (octet NULL).
// * Ne doit pas contenir '/' non plus, remplacer par '-'.
// * Ne doit pas contenir '*' non plus, remplacer par '-'.
// * Ne contient pas "__prop__", remplacer par "___prop___".
if ($segment == "") $segment = "_vide_";
$segment = preg_replace("/\\0/", '', $segment); // TODO : vérifier si c'est bien ça ! (supprime _toutes_ les occurences ???)
$segment = preg_replace("/\\//", '-', $segment); // TODO : vérifier si c'est bien ça ! (supprime _toutes_ les occurences ???)
if (!$est_un_motif) $segment = preg_replace("/\\*/", '-', $segment); // TODO : vérifier ...

View File

@ -1,9 +1,9 @@
<?php
function qw($arg) {
function qw($arg, $sep = " ") {
if (is_array($arg)) return $arg;
$ret = array();
foreach(explode(" ", $arg) as $v) {
foreach(explode($sep, $arg) as $v) {
if ($v !== "") array_push($ret, $v);
}
return $ret;

View File

@ -28,7 +28,7 @@ class AdminConnexion {
if ($vue == "normal") {
return formulaire_connexion();
} else if ($vue == "connexion réussie") {
$ret = "<h1>Connexion réussie</h1>";
$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 $ret;
@ -38,7 +38,7 @@ class AdminConnexion {
$msg .= ".</strong></p>";
return formulaire_connexion($msg);
}else if ($vue == "déconnexion") {
$ret = "<h1>Déconnexion réussie</h1>";
$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>";
@ -48,7 +48,7 @@ class AdminConnexion {
public static function formulaire_connexion($message = "") {
// TODO
return "<h1>Connexion</h1>" . $message . "<input type=\"text\" name=\"nom\" value=\"Nom\" />...";
return "<h2>Connexion</h2>" . $message . "<input type=\"text\" name=\"nom\" value=\"Nom\" />...";
}
}

View File

@ -22,7 +22,7 @@ class AdminPermissions {
$singleton = new Chemin("/admin/permissions/");
if ($vue == "normal") {
$ret = "";
$ret .= "<h1>Règles de sécurité</h1>";
$ret .= "<h2>Règles de sécurité</h2>";
$ret .= "<p>La première règle correspondant à une action de l'utilisateur est appliquée. Bla-bla blabla sur le fonctionnement.</p>";
if (Permissions::vérifier_permission($singleton, "set_prop", Authentification::get_utilisateur())) {
$ret .= "<textarea ...>" . Stockage::get_prop($singleton, "regles") . "</textarea>"; // TODO : html escape chars etc.

View File

@ -59,7 +59,7 @@ class AdminUtilisateurs {
$singleton = new Chemin("/admin/utilisateurs/");
if ($vue == "normal") {
$ret = '';
$ret .= "<h1>Utilisateurs</h1>";
$ret .= "<h2>Utilisateurs</h2>";
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
// afficher le lien "Nouvel utilisateur"
}

View File

@ -22,7 +22,7 @@ class ForumIndex {
public static function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
$ret = '';
$ret .= "<h1>Forum</h1>";
$ret .= "<h2>Forum</h2>";
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
// afficher le lien "Nouveau sujet"
}

View File

@ -39,7 +39,7 @@ class ForumSujet {
$ret .= '<input type="submit" value="renomer" />';
$ret .= '</form>';
} else {
$ret .= '<h1 class="forum sujet titre affichage">' . Stockage::get_prop($chemin, "titre") . '</h1>';
$ret .= '<h2 class="forum sujet titre affichage">' . Stockage::get_prop($chemin, "titre") . '</h2>';
}
if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
$ret .= '<form action="' . $chemin->get_url() . '">';

View File

@ -36,7 +36,7 @@ class GalerieÉvènement {
$ret .= '<input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" />';
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "message");
} else {
$ret .= '<h1>' . Stockage::get_prop($chemin, "titre") . '</h1>';
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
$ret .= '<p class="galerie evenement description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
}
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {

View File

@ -36,7 +36,7 @@ class GalerieIndex {
$ret .= '<input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" />';
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "message");
} else {
$ret .= '<h1>' . Stockage::get_prop($chemin, "titre") . '</h1>';
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
$ret .= '<p class="galerie index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
}
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {

View File

@ -36,7 +36,7 @@ class GaleriePériode {
$ret .= '<input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" />';
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "message");
} else {
$ret .= '<h1>' . Stockage::get_prop($chemin, "titre") . '</h1>';
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
$ret .= '<p class="galerie periode description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
}
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {

View File

@ -41,7 +41,7 @@ class GaleriePhoto {
$ret .= '<input type="filename" .../>';
$ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "message");
} else {
$ret .= '<h1>' . Stockage::get_prop($chemin, "titre") . '</h1>';
$ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
$ret .= '<img src="' . $chemin->get_url("?vue=image") . '"/>';
$ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "message"));
}

View File

@ -16,7 +16,7 @@ class Modules {
public static function get_module($chemin) {
$type = Stockage::get_prop($chemin, "type");
if ($type === false || !isset(self::$liste_modules[$type])) {
Erreur::fatale("Type inconnu (" . $type . ") pour la page " . $chemin->get() . ".");
Erreur::fatale("Type inconnu (" . var_export($type, true) . ") pour la page " . $chemin->get() . ".");
// return false;
}
return self::$liste_modules[$type];

View File

@ -16,10 +16,8 @@ class SiteIndex {
public static function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
$ret = '';
$ret .= "<h1>" . Stockage::get_prop($chemin, "nom_site") . "</h1>";
$ret .= "<ul>";
$ret .= "<li><a href=\"" . $chemin->enfant("galerie")->get_url() . "\">Galerie</a>";
$ret .= "</ul>";
$ret .= "<h2>" . Stockage::get_prop($chemin, "nom_site") . "</h2>";
$ret .= "<p>Bienvenue sur le site d'exemple.</p>";
return new Page($ret, Stockage::get_prop($chemin, "nom_site"));
} else if ($vue == "css") {
return new Page(get_css(), "text/css", "raw");

View File

@ -9,7 +9,7 @@ class Erreur {
<title>Erreur</title>
</head>
<body>
<h1>Erreur</h1>
<h2>Erreur</h2>
<p>Désolé, une erreur est survenue. Contactez le créateur du site SVP :
<a href="mailto:' . htmlspecialchars(Config::get('courriel_admin'))
. '?subject=Erreur%20dans%20le%20programme%202010-moteur-site-simple&body='
@ -19,7 +19,7 @@ class Erreur {
<p><strong>' . htmlspecialchars($message) . '</strong></p>
</body>
</html>';
//echo "\n"; debug_print_backtrace();
exit;
}
}

View File

@ -1,12 +1,27 @@
<?php
function get_css() {
return ".galerie img {
return ".site.connexion {
position: absolute;
top: 0;
right: 0;
padding: 0.1em 0.2em;
}
.site.navigation {
float: left;
padding-right: 1em;
margin-right: 1em;
border-top: thick solid gray;
border-right: thick solid gray;
}
.galerie img {
border: thin solid black;
padding: 0.1em;
}
.galerie {
.galerie li {
list-style-type: none;
}

View File

@ -10,8 +10,8 @@ class Squelette {
public static function en_tete($page) {
// TODO : chemin css relatif.
$chemin_css = new Chemin('/');
$chemin_css = $chemin_css->get_url('?vue=css');
$racine = new Chemin('/');
$chemin_css = $racine->get_url('?vue=css');
return
'<!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">
@ -21,16 +21,29 @@ class Squelette {
<meta http-equiv="Content-Language" content="fr" />
<link href="' . $chemin_css . '" rel="stylesheet" type="text/css" />
</head>
<body>';
<body>
<h1>' . Stockage::get_prop($racine, "nom_site") . '</h1>
<div class="site connexion">
<a href="' . $racine->enfant("admin")->enfant("connexion")->get_url() . '">connexion</a>
</div>
<div class="site navigation">
<ul>
<li><a href="' . $racine->enfant("galerie")->get_url() . '">Galerie</a></li>
</ul>
</div>
<div class="site contenu">
';
// <meta name="keywords" lang="fr" content="motcle1,mocle2" />
// <meta name="description" content="Description de ma page web." />
}
public static function pied() {
return
' </body>
'
</div>
</body>
</html>';
}
}
?>
?>