Le fichier config.xml

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.

Structure

Le fichier config.xml a une structure simple dans laquelle seules quatre balises différentes peuvent intervenir.

La balise <confml>

Elle marque le début du contenu du document de configuration. Elle doit être fermée à la fin de celui-ci, bien entendu.

La balise <vargroup>

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>.

La balise <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).

La balise <varlist>

Elle permet de définir une liste de variables qui sont en interaction les unes avec les autres.

Contenu et sens

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>.

Le site (<vargroup name="site">)

Ce groupe permet de définir les options du site. Voici les principales variables à connaître :

<var name="protocol" value="http" />

Le protocole utilisé par le site. Cela peut servir pour forcer le protocole https.

<var name="domain" value="mondomaine.com" />

Le nom de domaine du site.

<var name="location" value="{site_protocol}://{site_domain}/" />

L'adresse complète du site.

<var name="name" value="Elitwork" />

Le nom du site.

<var name="contact" value="mail@mondomaine.com" />

L'adresse cible du formulaire de contact.

<var name="indexhref" value="accueil" />

Il s'agit de l'adresse du document qui est servi par défaut. Typiquement, la page d'accueil.

<varlist name="mimes">

Les différents types de fichier acceptés lors de l'upload (jpeg, gif, jpg, png).

<varlist name="types">

Les formats de sortie acceptés par XCMS (html,atom,rss,json,xml,xcmsml).

<varlist name="module">

Le nom des modules complémentaires (menu, news etc...).

<var name="memodule" value="admin" />

Le nom du module utilisé pour l'espace membre.

<var name="gzip" value="4000"/>

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).

<var name="screencss" value="css/screen.css" />

Chemin de la feuille de style générale du site.

<var name="printcss" value="css/print.css" />

Chemin de la feuille de style d'impression.

<var name="handcss" value="css/hand.css" />

Chemin de la feuille de style pour les appareils mobiles. Peut être omis.

<var name="javascript" value="javascript/script.js" />

Chemin vers le Javascript de la page. Peut-être omis.

<var name="favicon" value="images/favicon.png" />

Chemin de l'icône des favoris. Peut-être omis.

<varlist name="paths">

Liste des chemins dans lesquels aller chercher les fichiers.

<var name="ggverify" value="XXXXX" />

Il s'agit de la variable que Google fournit pour avoir accès aux outils Google Webmaster.

<var name="gmapapikey" value="API-KEY" />

Variable contenant la clé pour utiliser l'API Google Maps (si vous utilisez l'API Google Maps dans votre site.

Base de donnée (<vargroup name="database">)

Ce groupe permet de définir les paramètres de la base de donnée qui sera utilisée pour le site en question.

<var name="type" value="mysql" />

Type de base de donnée utilisée.

<var name="host" value="localhost" />

Nom de l'hôte de la base de donnée.

<var name="user" value="xxxxxxx" />

Nom d'utilisateur à utiliser.

<var name="password" value="xxxxxxx" />

Mot de passe.

<var name="database" value="xxxxxxx" />

Nom de la base.

Le document en cours (<vargroup name="document">)

Ce groupe permet de définir les paramètres par défaut des documents du site. Les plus importants sont :

<varlist name="rights">

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.

<varlist name="configuration">

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.

<varlist name="parameters">

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 :

  • href : Adresse du document.
  • type : Type de document (html, atom, rss, json, xcmsml...)
  • action : Défini une sous partie. Typiquement, list pour le listage des entrées, read pour la lecture d'une entrée, modify, add etc...
  • order : un ordre qui execute un fichier PHP. La plupart du temps, il s'agit du traitement d'un formulaire envoyé depuis une action. L'action et l'ordre portent souvent le même nom : add, delete, modify...
  • id : identifiant d'une entrée. Nécessaire pour l'affichage de celle-ci et aussi pour lier des actions et ordres à une entrée en particulier.
  • cache : 0 pas de cache, 1 cache intemporel, n>1 utiliser le fichier en cache si il date de moins de n secondes.
  • page : en cas de pagination, numéro de la page désirée
  • limit : en cas de pagination, nombre d'entrées par page.
  • orderby : champs sur lequel trier les entrées
  • dir : asc pour tri croisant et desc pour tri décroissant.

Le visiteur (<vargroup name="visitor">)

Renseignements par défaut du visiteur.

<var name="rights" value="0" />

Droits par défaut du visiteur.

<var name="isdevelopper" />

Le visiteur peut ou non voir les messages de déboguage (conseillé de ne pas mettre sur true sauf lors du développement).

<var name="timeout" value="3600" />

Durée maximum d'une session en secondes.

Relation avec XCMS

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.

Derniers sites créés

Steve Concept

Steve ConceptSteve Concept est une société qui distribue les sites Internet d'ElitWork. Steve est aussi l'un de nos designers. Suite

Actualité

Performance améliorée

Nous avons profité d'un changement de serveur web pour améliorer une fois encore la performance de nos hébergements. Suite

A propos

Nous avons créé l'agence Elitwork en 2006 au coeur du Nord-Pas-de-Calais dans le triangle Arras - Cambrai - Douai. Depuis, nous forgeons notre savoir-faire au jour le jour afin rester experts du web et des technologies d'Internet en général.
Spécialisés dans la créations de sites Internet et le développement d'application/progiciels web sur mesure, nous permettons à nos clients de réussir leur transition vers un système d'information connecté. En savoir plus

Actu de l'agence

Orange HTML5 Hackathon

Orange HTML5 HackathonNicolas Froidure, le développeur d'Elitwork a remporté avec son équipe le grand prix du jury du concours de hacking Orange HTML5 Hackathon. Découvrez cette folle journée ! Suite

Nous contacter

Elitwork SARL
10, rue Antoine DEQUEANT
62860 Oisy le Verger
Tél. : 03 21 59 62 24
E-mail