Restructuration (après griffonage sur papier).

- Organisation des types de pages en modules,
- Chaque module contient un fichier "module.php", qui #include les autres,
- Conception (partielle) de la partie "admin".
- Stockage plus ou moins prévu pour pouvoir stocker dans une base de
  données si nécessaire.
- Conception (partielle) du mécanisme d'authentification et de permissions.
This commit is contained in:
Georges Dupéron 2010-07-23 16:09:45 +02:00
parent 6baacdd20a
commit ee69af2128
18 changed files with 207 additions and 0 deletions

1
__cms__/.htaccess Normal file
View File

@ -0,0 +1 @@
deny from all

14
__cms__/chemin/chemin.php Normal file
View File

@ -0,0 +1,14 @@
<?php
function correspond(motif, chemin) {
// motif : liste de segments, pouvant être un chaîne ou un jocker
// correspondant à "n'importe quelle chaîne pour ce segment". Le
// dernier segment peut être le joker "n'importe quelle suite de
// segments (le motif doit donc correspondre à un préfixe du chemin
// dans ce cas-là).
// chemin : liste de segments.
// les segments de chemin et motif sont déjà nettoyés.
}
?>

View File

View File

View File

View File

View File

View File

View File

@ -0,0 +1,49 @@
<?php
function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return redirect($chemin);
} else if ($action == "nouvelle_page") {
// Créer la nouvelle page avec les valeurs par défaut.
// return Redirect vers cette nouvelle page.
} else if ($action == "supprimer") {
// Supprimer cette page.
// return Redirect vers la page parente.
} else {
if (is_set($paramètres["fichier_image"])) {
// stocker le fichier reçu dans prop_image
// redimensionner l'image avec gd, stocker la miniature dans
// prop_image_mini
}
if (is_set($paramètres["titre"])) {
// renomer la page
}
if (is_set($paramètres["description"])) {
// set_prop($chemin, "description", $paramètres["description"]);
}
/* if (is_set($paramètres[""])) {
}*/
if (is_set($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
}
}
}
function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
// Si l'utilisateur a l'autorisation de modifier les propriétés,
// on affiche la version modifiable plutôt que la "vue".
return "Vue normale de la page.";
} else if ($vue == "miniature") {
return "Vue miniature.";
} else if ($vue == "image") {
// stockage::sendfile_prop("image");
} else if ($vue == "image_mini") {
// stockage::sendfile_prop("image_mini");
}
}
?>

View File

@ -0,0 +1,6 @@
<?php
require_once(dirname(__FILE__) . "/galerie-index.php");
require_once(dirname(__FILE__) . "/galerie-periode.php");
require_once(dirname(__FILE__) . "/galerie-evenement.php");
require_once(dirname(__FILE__) . "/galerie-photo.php");
?>

View File

@ -0,0 +1,41 @@
<?php
function connexion($utilisateur, $mdp) {
// vérifie si $utilisateur a pour mot de passe $mdp.
// Si oui, on place une variable de session, et on renvoie true.
// (Note : session_start doit avoir été exécuté avant.)
// La variable de session contient $utilisateur (vérifier si c'est sécurisé...)
// Si non, on renvoie false.
}
function déconnexion() {
// Efface la variable de session positionnée par connexion().
}
function get_utilisateur() {
// Renvoie $utilisateur s'il est connecté, false sinon.
}
function nouvel_utilisateur($utilisateur) {
// Crée un nouvel utilisateur nommé $utilisateur.
// Lui affecte un mot de passe aléatoire.
// Positionne son groupe à "anonyme".
}
function set_groupe($utilisateur, $groupe) {
// Positionne le groupe de $utilisateur à $groupe.
}
function get_groupe($utilisateur, $groupe) {
// Positionne le groupe de $utilisateur à $groupe.
}
function supprimer_utilisateur($utilisateur) {
// Supprime l'utilisateur créé par nouvel_utilisateur
}
function get_mot_de_passe($utilisateur) {
// Renvoie le mot de passe de $utilisateur
}
?>

View File

@ -0,0 +1,6 @@
<?php
// Fonctions permettant de "nettoyer" les données provenant de
// l'utilisateur.
?>

View File

@ -0,0 +1,24 @@
<?php
function vérifier_permission($chemin, $action, $utilisateur) {
// Vérifie si $utilisateur a la permission d'effectuer $action sur $chemin.
// Parcourt la liste les règles de sécurité (get_regles()), et
// sélectionne la première pour laquelle $chemin correspond au motif
// de la règle, $action correspond au motif de la règle, et
// $utilisateur a comme groupe le groupe de la règle (get_groupe()).
// Si le champ "autorisation" de la règle est true, on renvoie true,
// sinon on renvoie false
}
function set_regles($regles) {
// $regles est un tableau de quadruplets
// (chemin, action, groupe, autorisation).
// Enregistre $regles pour qu'il puisse être lu par get_regles.
}
function get_regles() {
// Renvoie les regles.
}
?>

View File

@ -0,0 +1,34 @@
<?php
// Chaque fonction appelle vérifier_permission($chemin, $action, $utilisateur).
// Chaque fonction ajoute un chemin de base (pour le stockage) avant
// $chemin, puis appelle une fonction de systeme-fichiers.php
function créer_enfant($chemin, $nom) {
}
function set_prop($chemin, $prop, $valeur) {
}
function get_prop($chemin, $prop) {
}
function supprimer($chemin, $récursif) {
}
function liste_enfants($chemin) {
}
/*function parent($chemin) {
}*/
/*function stocker_fichier($chemin_fs_orig, $chemin, $prop) {
}*/
function renomer($chemin, $nouveau_nom) {
// Vérifie si l'ancien nom et le nouveau nom sont différents.
// Renome le dossier.
}
?>

View File

@ -0,0 +1,32 @@
<?php
function créer_dossier($chemin) {
// mkdir($chemin)
}
/*function créer_fichier($chemin) {
// touch($chemin)
}*/
function supprimer($chemin, $récursif) {
// Si non récursif, supprime ssi c'est un fichier.
// Sinon, si c'est un fichier ou un lien, supprime,
// si c'est un dossier, appelle récursivement puis rmdir.
}
function lire($chemin) {
// file_get_contents()
}
function ecrire($chemin, $données) {
// file_put_contents();
}
function liste_enfants($chemin) {
// Renvoie la liste des sous-fichiers et sous-dossiers.
}
function déplacer($chemin_de, $cemin_vers) {
}
?>