Amélioration du squelette et de la page d'accueil.
This commit is contained in:
parent
14e6f9af3e
commit
a789019f84
|
@ -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 ...
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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\" />...";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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() . '">';
|
||||
|
|
|
@ -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())) {
|
||||
|
|
|
@ -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())) {
|
||||
|
|
|
@ -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())) {
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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>';
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue
Block a user