Ce fichier a une importance capitale car il contient toutes les informations nécessaires au bon fonctionnement des sites XCMS.
Il est rédigé en ConfML, un type de document basé sur XML ce qui nous permet de les manipuler facilement. La DTD est visionnable ici.
Le fichier config.xml a une structure simple dans laquelle seules quatre balises différentes peuvent intervenir.
Elle marque le début du contenu du document de configuration. Elle doit être fermée à la fin de celui-ci, bien entendu.
Il s'agit d'un ensemble de variables. C'est le seul sous élément autorisé pour la balise <confml>. Celui-ci permet de classer les variables de configuration par grands ensembles pour plus de clarté. Le nom de ces grands ensembles est déterminé par l'attribut name.
Cet élément ne peut avoir pour enfant que <varlist> et <var>.
Elle défini une variable par son nom (grâce à l'attribut name) et sa valeur (grâce à l'attribut value qui peut être omis en cas de valeur nulle).
Elle permet de définir une liste de variables qui sont en interaction les unes avec les autres.
En ce qui concerne XCMS, le fichier config.xml est en fait utilisé pour définir un certain nombre de variables qui seront utilisées par le script. Ces variables permettent d'influer sur son comportement.
Pour les expliquer, nous allons utiliser l'arborescence créée par les balises <vargroup>.
Ce groupe permet de définir les options du site. Voici les principales variables à connaître :
Le protocole utilisé par le site. Cela peut servir pour forcer le protocole https.
Le nom de domaine du site.
L'adresse complète du site.
Le nom du site.
L'adresse cible du formulaire de contact.
Il s'agit de l'adresse du document qui est servi par défaut. Typiquement, la page d'accueil.
Les différents types de fichier acceptés lors de l'upload (jpeg, gif, jpg, png).
Les formats de sortie acceptés par XCMS (html,atom,rss,json,xml,xcmsml).
Le nom des modules complémentaires (menu, news etc...).
Le nom du module utilisé pour l'espace membre.
Si value vaut 0, la compression gzip est activée pour toute taille de fichier. Si value n'est pas renseigné ou est nul, la compression gzip est désactivée. Si n>0, alors n est le nombre d'octets minimum du fichier pour activer la compresion gzip. Par défaut elle est à 4000. Cela permet que les petits fichiers transitent directement et que les plus importants soient compressés. A régler selon que vous ayez besoin de plus de ressources au niveau du processeur (pas de compression) ou de la bande passante (compression systématique).
Chemin de la feuille de style générale du site.
Chemin de la feuille de style d'impression.
Chemin de la feuille de style pour les appareils mobiles. Peut être omis.
Chemin vers le Javascript de la page. Peut-être omis.
Chemin de l'icône des favoris. Peut-être omis.
Liste des chemins dans lesquels aller chercher les fichiers.
Il s'agit de la variable que Google fournit pour avoir accès aux outils Google Webmaster.
Variable contenant la clé pour utiliser l'API Google Maps (si vous utilisez l'API Google Maps dans votre site.
Ce groupe permet de définir les paramètres de la base de donnée qui sera utilisée pour le site en question.
Type de base de donnée utilisée.
Nom de l'hôte de la base de donnée.
Nom d'utilisateur à utiliser.
Mot de passe.
Nom de la base.
Ce groupe permet de définir les paramètres par défaut des documents du site. Les plus importants sont :
Les droits nécessaires par défaut pour effectuer des actions sur le document. Ne pas les renseigner provoque l'impossibilité pour quiconque de les exécuter sauf avis contraire dans les droits spécifiques au document.
Ce sont les variables de configuration du document. Elles permettent de fixer plusieurs paramètres comme la taille des images uploadées et de leur miniatures.
Les paramètres par défaut du site. Ces paramètres définissent des valeurs par défaut qui peuvent être modifiées grâce aux méthodes GET et POST. Voici les paramètres usuels :
Renseignements par défaut du visiteur.
Droits par défaut du visiteur.
Le visiteur peut ou non voir les messages de déboguage (conseillé de ne pas mettre sur true sauf lors du développement).
Durée maximum d'une session en secondes.
Le fichier config.xml est chargé par XCMS en début de script. Il récupère les valeur et les stocke dans un tableau.
Ce même tableau est accessible à partir du moteur de template. Pour afficher une variable du fichier config.xml, utilisez {vargroup_var} ou {vargroup_varlist.var}.
Les caractères spéciaux du moteur de template sont filtrés lors de la récupération de données saisies par les utilisateurs. Prennez garde à faire de même dans vos modules sous peine de leur permettre d'imprimer des variables du fichier config.xml. D'une manière générale, utilisez l'objet $currentRequest et ses méthodes de récupération de contenu. Le mot de passe de la base de donnée est effacé après utlisation, il n'y a pas de risque d'impression ultérieure.