commit a789019f8485ed2c017bd3b7e43ae6de002d5afa
parent 14e6f9af3e7133a3693be2452da3c4f1a7ada5d1
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Wed, 4 Aug 2010 09:29:56 +0200
Amélioration du squelette et de la page d'accueil.
Diffstat:
17 files changed, 57 insertions(+), 31 deletions(-)
diff --git a/__cms__/code/chemin/chemin.php b/__cms__/code/chemin/chemin.php
@@ -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 ...
diff --git a/__cms__/code/cms/util.php b/__cms__/code/cms/util.php
@@ -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;
diff --git a/__cms__/code/modules/admin/connexion.php b/__cms__/code/modules/admin/connexion.php
@@ -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\" />...";
}
}
diff --git a/__cms__/code/modules/admin/permissions.php b/__cms__/code/modules/admin/permissions.php
@@ -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.
diff --git a/__cms__/code/modules/admin/utilisateurs.php b/__cms__/code/modules/admin/utilisateurs.php
@@ -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"
}
diff --git a/__cms__/code/modules/forum/forum-index.php b/__cms__/code/modules/forum/forum-index.php
@@ -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"
}
diff --git a/__cms__/code/modules/forum/forum-sujet.php b/__cms__/code/modules/forum/forum-sujet.php
@@ -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() . '">';
diff --git a/__cms__/code/modules/galerie/galerie-evenement.php b/__cms__/code/modules/galerie/galerie-evenement.php
@@ -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())) {
diff --git a/__cms__/code/modules/galerie/galerie-index.php b/__cms__/code/modules/galerie/galerie-index.php
@@ -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())) {
diff --git a/__cms__/code/modules/galerie/galerie-periode.php b/__cms__/code/modules/galerie/galerie-periode.php
@@ -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())) {
diff --git a/__cms__/code/modules/galerie/galerie-photo.php b/__cms__/code/modules/galerie/galerie-photo.php
@@ -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"));
}
diff --git a/__cms__/code/modules/modules.php b/__cms__/code/modules/modules.php
@@ -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];
diff --git a/__cms__/code/modules/site/site-index.php b/__cms__/code/modules/site/site-index.php
@@ -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");
diff --git a/__cms__/code/securite/erreur.php b/__cms__/code/securite/erreur.php
@@ -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;
}
}
diff --git a/__cms__/code/site/css.php b/__cms__/code/site/css.php
@@ -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;
}
diff --git a/__cms__/code/site/squelette.php b/__cms__/code/site/squelette.php
@@ -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>';
}
}
-?>
-\ No newline at end of file
+?>
diff --git a/__cms__/donnees/__prop__titre b/__cms__/donnees/__prop__nom_site