Le bloc Etat
Un état retrouve les fiches contenues dans une partie du site, les filtre, les trie, et les affiche sous forme d'une table, c'est à dire une ligne par fiche ou par groupe de fiches.
Un état peut donc être vu comme l'équivalent d'une requête dans une base de données classique.
Cependant, l'état peut ajouter en tête de chaque ligne un lien vers la page ou se trouve la fiche, donc il peut tout aussi bien être vu, en référence à l'article 'Stocker et organiser, c'est quoi ?', comme une file d'attente, et donc une alternative à la boite d'entrée du mail.
Un état fonctionne en deux phases de traitement :
•
|
la collecte qui retrouve les fiches concernées
|
Des calculs peuvent être effectués lors de chacune de ces deux phases. Cependant, lors de la phase collecte, l'ensemble des champs de la fiche peuvent être utilisés dans les calculs, alors que durant la phase affichage, seuls les valeurs des champs de l'état peuvent être utilisés.
Les bases
Les trois étapes pour définir un état simple sont :
Commencer par utiliser le bouton 'Spécification collecte' dans le menu de gauche pour définir où dans le site et quels types d'états sont à collecter.
Ensuite, utiliser le bouton 'Champs' pour définir les champs à collecter dans chaque fiche.
Enfin, utiliser le bouton 'Affichage' pour spécifier dans quel ordre afficher les lignes, donc les fiches.
Etats paramétriques
Un état peut contenir (au niveau du point affiché en mode 'éditer' juste au dessus du tableau) des blocs champ de saisie, dont les valeurs seront utilisées par la formule de filtrage dans la partie affichage, par exemple pour ne lister que les fiches répondant à telle ou telle condition paramétrique. Il est souvent judicieux d'utiliser dans ce cas des champs de type 'par utilisateur' pour éviter que les réglages d'un utilisateur ne viennent perturber la vue du formulaire d'un autre utilisateur.
Calculer un total
Si un champ de l'état est de type formule calculée à l'affichage, alors le mot clé 'previous' permet d'accéder à sa valeur sur la ligne précédente. La valeur au niveau de la première ligne est vide ou non définie.
Si donc on veut afficher le cumul du champ 'v', on peut définir un champ calculé à l'affichage, dont la formule serait:
(shunt previous=undefined 0 previous) + v
qui peut s'exprimer en langage ordinaire par: ajouter la valeur de la ligne précédente (forcée à zéro si elle n'était pas définie) à celle du champ 'v'.
Pour les programmeurs, 'shunt cond v1 v2' est l'équivalent de la séquence 'cond ? v1 : v2' en langage C.
Paramétrer l'export CSV
Enfin, le bloc Etat dispose au niveau de son menu contextuel d'un bouton 'Export CSV'.
Le format de cet export peut être paramétré, soit globalement au niveau de la page de définition du site Storga, soit spécifiquement, via le champ 'Options pour le format d'export CSV'.
Plusieurs paramètres peuvent être utilisés, que l'on séparera par un simple espace.
Les paramètres possibles sont les suivants :
separator ";"
|
Spécifie le séparateur de champs à utiliser au niveau de l'export CSV. Le séparateur par défaut est la virgule.
|
quote "[dq]"
|
Spécifie la séquence de caractères à utiliser éventuellement au début et à la fin de chaque champ. La valeur par défaut est [dq] qui correspond au cacractère 'double quote'.
|
never_quote
|
Ne jamais ajouter la séquence au début et à la fin de chaque champ.
|
always_quote
|
Toujours ajouter la séquence au début et à la fin de chaque champ.
|
eol "[lf]"
|
Spécifie la séquence de retour à la ligne à utiliser. La séquence par défaut est [cr][lf] qui correspond au cractère 'carriage return' suivi du caractère 'line feed'
|
decimal ","
|
Indique le séparateur décimal à utiliser. La valeur par défaut est le point anglo saxon.
|
date "dd/mm/yyyy"
|
Indique le format de date à utiliser. La valeur par défault est la norme internationale yyyy-mm-dd
|
multiline "[cr][lf]"
|
Indique la séquence de caractères à utiliser pour séparer les lignes lorsqu'un champ contient plusieurs lignes, par exemple dans le cas d'une adresse. La valeur par défault est un simple espace.
|
charset "nom"
|
Spécifie le nom du jeux de caractères à utiliser. La valeur par défault est utf-8 Voici quelques autres valeurs utilisables : cp1252 cp437 cp850 iso8859-1 iso8859-15 iso8859-2 iso8859-3 windows1252 windows1256
|
ascii
|
Equivalent à charset "ascii"
|
bom
|
Indique d'ajouter en début de fichier la séquence spéciale de caractères qui spécifie que l'encodage utilisé pour le fichier est UTF-8
|
exclude "liste_de_caractères"
|
Les caractères indiqués seront supprimés au niveau de l'export CSV, ou remplacés par la chaine indiquée dans l'option 'replace_with'.
|
replace_with "caractère_de_remplacement"
|
|
La règle précise pour l'ajout éventuel d'une séquence de caractères au début et à la fin de chaque champ est la suivante :
Si 'never_quote' est indiqué, on ajoute rien,
sinon, si 'always_quote' est indiqué, on ajoute la séquence,
sinon, on ajoute la séquence uniquement si le champ contient des caractères spéciaux tel que le caractère utilisé comme séparateur de champ ou les caractères de retour à la ligne.
Lorsque la séquence est ajoutée au début et à la fin du champ, chaque occurence de cette séquence dans la valeur du champ sera doublée. Ainsi, par défaut, un champ dont la valeur est :
abc"def
sera codé sous la forme :
"abc""def"