SourceForge.net Logo
11 Juin, 2006
© GPL
FractalWikiFR - ProWikiCentre
Système Configuration

ProWiki utilise un système de FichiersConfiguration pour configurer les wikis en tant que système global et un système de PagesConfiguration pour configurer ou reconfigurer les parties des wikis (dans la partie la plus basse vers les pages uniques). Les parties atomiques du processus de configuration sont des assignations de variable comme "SiteName=ProWikiCentre" qui sont appelées des Options.

La lecture de l'information de configuration arrive sur n'importe quelle requête (par exemple une requête de page comme "PageAccueil" ou une requête de Commande comme "CeWiki:action=index"), le plus souvent pour (1) contrôler si l'utilisateur a le droit d'exécuter cette requête spécifique et (2) chercher des options spécifiques de restitution de page.

Les Options sont traitées successivement, fichier par fichier, page par page et successivement dans le texte des fichiers et des pages. Si un nom de variable réapparaît dans cette séquence globale d'options, cette valeur (le contenu variable) est écrasée (voir les notes à propos de la reconfiguration en bas de page).

Il est facile de comprendre avec un exemple. Imaginons qu'un utilisateur requête une page "Admin/Template/Exemple" alors la séquence totale pour construire l'information de configuration est :

  1. server.cfg -- le FichierConfigServeur contient des données spécifiques au serveur (par ex. le répertoire pour les sous-systèmes logiciels externes, le chemin pour accéder au sendmail, ...)
  2. global.cfg -- Le FichierGlobalConfig contien des informations générales pour tous les wikis (en général sur le serveur, mais ce pourrait être même à travers plusieurs serveurs, par exemple pour bloquer certaines gammes d'adresses IP de spammers)
  3. cluster.cfg -- le FichierClusterConfig peut contenir des données partagées par un groupe de wikis (par exemple le WikiFaisceau contenant la liste des wikis membres)
  4. wiki.cfg -- le FichierWikiConfig contient les données centrales du wiki, tout spécialement ce qui ne change jamais (par exemple le NomCookie utilisé pour identifier les utilisateurs)
  5. Context -- la TopContextPage contient la configuration wiki de tous les jours (par exemple le NomSite affiché dans le TitreNavigateur)
  6. Admin/Context -- ceci configure la page Branche Admin, cela restreint son accès en édition et toutes ses sous-pages aux Admins.
  7. Admin/Template/Context -- cette ContextPage configure la Branche Template pour montrer un texte pur sur toutes les sous-pages et archives de n'importe quelle modification
  8. Admin/Template/Exemple/Context -- cette page soit n'existe pas ou ne contient pas d'Options, parce qu'aucune configuration spéciale n'est exigée
Notez que tous les FichiersConfiguration doivent exister (à l'exception du cluster.cfgconfigurable), alors que toutes les ContextPages sont optionnelles.

Reconfiguration

Il est très commun que les options soient définies à quelque point dans la séquence de configuration et redéfinie plus tard dans la séquence. Ceci est appelé parfois la Reconfiguration. Par exemple, vous définirez un TemplateFile (fichier gabarit) pour la totalité du wiki tout en modifiant l'aspect de certaines sections de votre wiki plus tard, en redéfinissant le TemplateFile.

Note : Cet écrasement silencieux peut aussi mener à des confusions, quand vous voulez changer une Option et que vous la changiez véritablement et que rien ne se passe ! Probablement, l'option est redéfinie plus tard dans la séquence de configuration, ainsi la valeur est écrasée avant son utilisation (peut-être même 10 lignes plus bas sur la même page). Dans le doute utilisez CdmlDisplay pour afficher la valeur effective de la variable ou TextSearch pour regarder à quels endroits les options existent.

Efficacité

La distribution de l'information de configuration parmi les ContextPages rend ProWiki plus efficace, parce que l'information de configuration est souvent seulement lue pour des requêtes vers des pages qui les utilisent véritablement.

Héritage

Ceci crée vraiment un système d'héritage :

  1. chaque page hérite des options de son parent
  2. chaque page peut définir ou redéfinir les options en ayant une SousPageContext
  3. chaque page à nouveau passe ses options vers ses SousPages de façon récursive.

LangueFrançaise PageTranslation ProWiki:ConfigurationSystem DossierConfiguration DossierAdministration DossierProgrammation