Encore des notes.

This commit is contained in:
Georges Dupéron 2010-09-27 00:10:43 +02:00
parent 5c4ed5ebd9
commit 73282aa93a
4 changed files with 110 additions and 6 deletions

View File

@ -1,3 +1,23 @@
@titre : url
@description :
Enfants : galerie-photo
Actions : créer_enfant, supprimer, vue
Vue normale :
(titre @titre)
(action supprimer "Supprimer cet événement")
(texte-riche @description)
+ liste des enfants :
<li>[miniature][titre]</li>
si permission créer page :
<li>(action nouvelle_page)</li>
Vue miniature :
Sélectionner le 1er enfant, lui demander sa vue "miniature", en renvoyer la partie image.
Donnée statique : icône "nouvelle image".
<?php
class GalerieÉvènement {
@ -112,4 +132,4 @@ class GalerieÉvènement {
Modules::enregister_module("GalerieÉvènement", "galerie-evenement", "vue", "titre description");
?>
?>

View File

@ -17,7 +17,7 @@
<%titre @titre %>
<%texte @description %>
<%texte-riche @description %>
<%list ./periodes %>
<li>
<a href="<?php echo $periode->url(); ?>">
@ -33,7 +33,7 @@
(document @titre
(titre @titre)
(texte @description)
(texte-riche @description)
(list ./periodes
(lambda (p)
(let ((rendu (rendu p)))
@ -45,7 +45,7 @@
(document @titre
(titre @titre)
(texte @description)
(texte-riche @description)
(<ul>
(foreach/rendu ((p ./periodes))
(<li>
@ -78,8 +78,53 @@ Dans la base de données, chaque "page" a :
Langage de requêtes :
- Récupérer un attribut
- Récupérer une page enfant d'une certaine catégorie (?)
- Trier selon un certain critère sur les éléments renvoyés.
- Trier selon une propriété des éléments renvoyés (plus tard, on pourra trier en fonction d'autres critères).
- Limiter le nombre de résultats (LIMIT et OFFSET).
- Ne renvoie que les éléments que l'utilisateur a la permission de voir.
Un module peut déclarer des ressources statiques (par ex. un fragment de less/css).
Les ressources doivent pouvoir être accédées via une certaine url.
Notes en vrac :
===============
On doit pouvoir insérer des éléments supplémentaires dans une liste (entre autres le bouton "nouvelle page").
Donc la "macro" (liste) ne fonctionnera pas. À moins que insérer soit la seule chose à ajouter. Ou si on fait
un mécanisme qui permet d'ajouter d'autre choses à la liste (prepend / append, ou paramètres supplémentaires).
Il faut une macro (action), qui génère en html un bouton.
Dans les actions de chaque module, il y a :
- vue (toujours)
- set_prop (toujours?)
- supprimer (souvent? toujours?)
- créer_enfant (souvent)
Problème des class css.
Pour les aperçus dans la galerie : prendre le 1er enfant (ou l'enfant marqué 'aperçu').
Pour les titres :
"@titre url" signifie :
Lorsqu'on modifie le titre, on modifie aussi l'emplacement de la page de pseudo-réécriture d'url.
De plus, lorsqu'on demande l'adresse de cette page, elle est calculée en fonction du titre.
Il faut trouver comment générer automatiquement une url / titre / je-ne-sais-quoi dans le cas
le titre n'est pas renseigné (par ex. pour les 250 photos de la galerie, pour que les utilisateurs
n'aient pas à indiquer le titre à chaque fois.
Totues les pages ont une date de création et de modification automatiquement.
TODO : pouvoir accéder l'attribut @image directement depuis l'extérieur.
Abstractions :
- Valeur avec binding
- Action (créer page, supprimer)
- Getter et setter optionnels sur les valeurs.
Ex: getter de titre : Renvoie "Photo [date]" si le titre est indéfini, sinon le titre.
- Vue vs ressource (chaque ressource a une vue, une page "photo" est une ressource (celle par défaut), l'image elle-même est une autre ressource).
Valeurs par défaut pour les @attributs, définies dans le module lui-même.
Pour la galerie : 3 vues : normal, miniature (image + caption), mini-miniature (juste l'image).
Pour les photos : 4 ressources : la page (ressource par défaut), l'image en grand, l'image en 800x600 (par ex.), l'image mini (64x64).
La page affiche la photo 800x600, et si on clique dessus, c'est la version en grand qui est affichée.

View File

@ -1,3 +1,23 @@
@titre : url
@description :
Enfants : galerie-evenement
Actions : créer_enfant, supprimer, vue
Vue normale :
(titre @titre)
(texte-riche @description)
(action supprimer "Supprimer cette période.") # ssi permission supprimer
+ liste des enfants :
<li>[miniature][titre]</li>
si permission créer page :
<li>(action nouvelle_page)</li>
Vue miniature :
Sélectionner le 1er enfant, lui demander sa vue "miniature", en renvoyer la partie image.
Donnée statique : icône "nouvel évènement".
<?php
class GaleriePériode {

View File

@ -1,3 +1,22 @@
@titre : url
@description :
# external signifie : ne pas stocker dans la bdd.
@image : external
# private signifie : ne peut pas être modifié directement par l'utilisateur / la requête / les autres modules.
@miniature : private,external
set_image : fonction php qui crée la miniature.
Vue normale :
(@titre titre)
(action supprimer "Supprimer cet évènement")
(@texte-riche description)
(@image image)
Vue miniature :
(@titre titre)
(@image miniature)
<?php
class GaleriePhoto {
@ -109,4 +128,4 @@ class GaleriePhoto {
Modules::enregister_module("GaleriePhoto", "galerie-photo", "vue", "description", "fichier_image");
?>
?>