support Archives support Les archives, au cas où... Les dernières nouvelles de demain

Qu'est-ce que YACS 7.6 ?

Ce sont de jolies url, des nuages de mots clés (étiquettes ou tag cloud), des cartes Google, le Digg-like YACS, etc.

En tant que modestes traducteurs de cette liste de fonctionnalités, [user=Lasares] et [user=Fernand] saluent l’équipe technique de YACS, petite en nombre mais efficace, qui a permis que le Web 2.0 existe si rapidement en tant que YACS.

Au début de l’année 2007 il avait, en effet, été envisagé, puis promis, de proposer une avancée significative dans l’univers du Web 2.0.
Sur ce point il a suffit de trois mois environ pour que l'équipe soit à même de lui donner forme dans YACS. cela constitue un pas de géant dont nous allons tenter de décrire les détails:

Pour résumer: YACS construit désormais automatiquement un nuage de mots clés, comme c’est le cas dans le célèbre site del.icio.us. Il implémente les non moins célèbres cartes Google. Et, à la demande, il place les pages selon leur ordre de classement, à la manière d'un Digg (le fameux site Digg.com). D’autre part, l’intégration de Wikipedia, ainsi que d’aggrégateurs RSS connus a été rendue systématique et grandement améliorée.
YACS étend aussi sa capacité de collaboration à tout récepteur de messages mail, permettant ainsi d’optimiser le relationnel au sein d’une communauté. L’URL rewriting - ou réécriture des URL, permet à YACS de mieux s’adapter aux standards SEO et de parfaire le référencement d’un site...


451 fichiers ont été modifiés ou ajoutés depuis la version précédente.

La nouvelle version est disponible maintenant au téléchargement . Si vous utilisez déjà un serveur YACS, il est fortement recommandé de mettre à jour le serveur.

Voici une liste des fonctionnalités nouvelles ou améliorées que vous retrouverez dans cette version:

- Une toute nouvelle fonction normalize_url() a été ajoutée pour renforcer la réécriture d'url des liens construits par YACS. Selon le réglage du paramètre global with_friendly_urls, les liens générés seront optimisés, ou non, tant pour les internautes que pour les engins de recherche. Les appels à la fonction normalize_url() ont été implémentés dans la plupart des modules, tel que actions/actions.php, etc.


- Un fichier révisé .htaccess a été fourni pour permettre la mise en oeuvre de la réécriture d'url. Les commandes utiles sont commentées, par mesure de précaution, et doivent être activées manuellement.
Il suffit pour cela de modifier le fichier avec n'importe quel éditeur de texte afin de les décommenter (de retirer les symboles de indiquant un commentaire) et ainsi activer la réécriture au niveau d'Apache. Enregistrez ensuite le fichier, puis assurez-vous que le serveur fonctionne correctement. Si vous constatez des erreurs 500 (Internal Server Error), restaurez la version précédente du fichier et renoncez à la réécriture d'url. Autrement, activez la réécriture d'url de YACS, en utilisant le panneau du système de configuration.


- Les liens construits par YACS ne référencent plus dorénavant à index.php. Par exemple, files/ est désormais généré plutôt que files/index.php. Ceci réduit le nombre de références pour une même page et simplifie le lien du même coup.


- Pour référencer les articles et sections, les pseudos sont désormais utilisés presque toujours de manière à assurer une meilleure dynamique au profit des moteurs de recherche sur les liens générés par YACS.


- La bibliothèque de rendu standard de skins/page.php est même en mesure de générer des liens réécrits pour les pages spéciales (à propos de ce site et règles de confidentialité) lorsque la réécriture est activée.


- Avec l'introduction de la réécriture d'url dans YACS, nous avons dû créer une nouvelle variable, $context['script_url'] pour le renvoi à l'intérieur des formulaires, en remplacement de $context['self_script'].


- De plus, la réécriture d'url a eu un impact important sur shared/global.php, puisque de nombreuses variables globales ne sont plus assignées de la même façon.


- Les méta attributs base href=... présents dans les gabarits (templates) ont été complètement supprimés. Ceci, pour se conformer encore mieux aux meilleures pratiques en matière de référencement. En conséquence, l'usage de $context['self_script'] est abandonné.


- YACS est maintenant capable de générer un tag cloud, un nuage de mots clés (ou étiquettes ) utilisées dans les articles. Cette fonction est disponible en tant que page distincte ( dans categories/cloud.php), ou dans le nouveau code YACS, [ cloud ] pour insérer le nuage exactement où vous le désirez. La création du nuage est assurée par categories/layout_categories_as_cloud.php.


- YACS permet maintenant de saisir une clé API Google dans le panneau de configuration des services web, services/configure.php.


- Lorsqu'une clé API est disponible, YACS l'utilise automatiquement pour créer des images composites avec Google Maps. Tout emplacement ajouté à une page ou à un profil d'utilisateur est transformé en une jolie carte interactive AJAX (par codes/codes.php). Pour insérer une image composite Google Maps à l'endroit où vous le désirez, utilisez le code YACS [ locations=all ] pour afficher les emplacements récents ou encore [ locations=users ] pour présenter seulement les emplacements des membres.


- Une carte distincte est diponible pour chaque emplacement ( dans locations/view.php). Une carte générale est aussi disponible pour situer tous les membres de la communauté (dans locations/map_on_google.php). La partie délicate, qui est l'intégration du code Javascript approprié dans les pages YACS, est effectuée dans locations/locations.php, par la fonction Locations::map_on_google().


- L'API Google est aussi utilisé pour encoder les nouveaux emplacements. Le formulaire de YACS comporte un bouton qui transforme toute adresse en coordonnées de latitude et de longitude. Voir locations/edit.php


- YACS offre maintenant une approche à la Digg (Digg-like), où les articles sont présentés selon l'ordre de leur cote de popularité. Deux mises en pages (layouts) sont fournies, l'une pour les articles affichés en page d'accueil (skins/layout_home_articles_as_digg.php), et l'autre pour les articles listés dans les sections (articles/layout_articles_as_digg.php).


- La mise en page Digg pour la page d'accueil peut être activée à partir de skins/configure.php.


- Les évaluations de popularité ont été implémentées par des cookies, avec une durée de vie de 100 jours. L'idée est d'avoir un système très extensible, le stockage étant assuré par les navigateurs eux-mêmes, tout en évitant les votes multiples des internautes peu attentifs ou peu scrupuleux (les cookies empêchent les votes répétés). Voir articles/rate.php


- L'évaluation des pages a été appliquée dans le layout manual . Il est ainsi plus facile pour les utilisateurs finaux de localiser les pages les plus intéressantes pour eux au sein d'un document électronique complexe. Voir articles/layout_articles_as_manual.php.


- L'interface Layout a été étendue de manière à permettre un ordonancement par défaut des items (nouvelle fonction concernant les membres items_order() in shared/layout.php). Par exemple, un layout Digg-like layout ayant pour objet de produire la liste des articles par ordre de popularité ne présentera pas le même ordonnancement qu'un layout slashdot-like. YACS utilisera donc cette information supplémentaire qui lui est fournie pour poser de manière appropriée les requêtes auprès de la base de données avant de soumettre son rapport au layout concerné. Bien entendu, si quelque ordonnancement a déjà été défini avec une option, catte dernière est utilisée en lieu et place de celle qui est définie par défaut.


- Ceci s'applique également à plusieurs layout utilisés pour les pages d'index des sections (sections/layout_sections.php, ...). Pour mémoire un layout dans YACS est une formulation spécifique concernant une partie de la mise en page et écrite en PHP...


- Une option articles_by_rating a été ajoutée pour remplacer au besoin l'ordonnancement dans les layout habituels.


- Pour mieux prendre en charge l'ordre des pages, et pour rationaliser le script, la construction des requêtes SQL a été centralisée dans quelques fonctions à usages multiples de articles/articles.php. La taille de ce fichier a été réduite de plus de 10 %, malgré le fait que des fonctionnalités ont été ajoutées...


- Des codes Wiki ont été ajoutés aux codes YACS, notamment pour les titres (en utilisant plusieurs signes '=' ), et aussi [ wikipedia=foo_bar ] pour un lien à un article de wikipedia. Voir codes/codes.php


- Un autre nouveau code que vous trouverez utile est [ collections ], pour afficher une liste dynamique des collections de votre site.


- Une nouvelle page d'aide a été ajoutée pour documenter les requêtes dynamiques, codes.live.php. Un lien vers cette page a été ajoutée à la page d'index de l'aide, help.php.


- La configuration de la page d'accueil a été rationnalisée et les options pour ajouter une boîte gadget pour les collections ou pour les tags ont été supprimées (skins/configure.php). Pour parvenir aux mêmes fins, on doit maintenant créer manuellement une boîte gadget et y ajouter le code YACS approprié. Cela n'ajoute pas beaucoup de complexité mais offre d'autres niveaux de flexibilté dans l'organisation de la page d'accueil. Si vous le préférez, vous pouvez aussi utiliser le nouvel assistant de contenu pour créer des exemples de boîtes gadget utilisant ces codes.


- Le layout jive pour les sections affiche maintenant 5 sous-tableaux, pour épargner des clics en naviguant des espaces collaboratifs complexes. Voir sections/layout_sections_as_jive.php


- Un nouveau nom de style a été ajouté pour la mise en page (ou layout) jive. En conséquence, les designers Web peuvent maintenant sélectionner le style .jive pour affiner le rendu de leurs pages utilisant ce layout.


- Le layout slashdot est disponible depuis longtemps pour la page d'accueil. Dans cette nouvelle version, nous avons étendu l'usage de ce layout aux pages d'index de section. voir articles/layout_articles_as_slashdot.php.


- Une nouvelle mise en page (layout) a été ajoutée pour offrir un rendu minimal des sous-sections, n'affichant que des titres et des vignettes. Voir sections/layout_sections_as_titles.php.

 

- La localisation a été étendue aux catégories utilisées pour archiver les articles à chaque semaine et à chaque mois, de même qu'à la catégorie À la une, utilisée pour afficher les articles en page d'accueil. Voir categories/categories.php, modifiée par un correctif (patch) de GnapZ.


- L'authentification par courrier électronique a été ajoutée à de nombreuses opérations. Dorénavant, YACS génère des liens spéciaux, transmis dans un message électronique, permettant à la fois d'accéder au site et de s'y authentifier, en un seul clic à partir de la boîte de réception de la messagerie. C'est utilisé pour le suivi des requêtes, dans query.php. C'est aussi utilisé pour aviser les auteurs de changements à leurs pages, dans articles/article.php. La plupart du nouveau code d'authentification a été déplacé dans users/login.php, qui a été entièrement réécrit.


- Un des usages de l'authentification par courrier électronique consiste à inviter les gens à collaborer. Le script articles/mail.php a été entièrement repensé et il accepte dorénavant une liste d'adresses électroniques de destinataires à inviter. Les invités n'ont qu'à cliquer sur le lien inclus au message, à partir de leur boîte de réception, pour être redirigés vers la page où on les invite et être autorisés du même coup à la modifier. Puisque le mécanisme est uniquement basé sur les adresse de messagerie, les invités n'ont même pas à s'enregistrer pour participer à votre communauté.


- Un autre usage de l'authentification par courrier électronique est la récupération de mots de passe. Lorsque membre ne se souvient plus de son mot de passe, il n'a qu'à activer users/password.php pour recevoir dans sa boîte de réception de messagerie un lien électronique lui permettant de s'authentifier.


- Pour ce qui concerne les personnes authentifiées par l'intermédiaire de la messagerie( e-mail), YACS maintient une liste d'ordonateurs de page dans le contexte de la session. Ceci permet la gestion de plusieurs références de pages, si tel est le cas, pendant la durée d'une même session Web. Voir Surfer::add_handle() ainsi que Surfer::may_handle() in shared/surfer.php

- Plusieurs fonction, nommées Surfer::empower() et Surfer::is_empowered(), ont été ajoutées pour faciliter la gestion des accès accordés aux utilisateurs assignés comme éditeurs. Auparavant, nous avions un paramètre $capability transmis aux appels de fonctions et cette modification a permis de simplifier le code de nombreux scripts.


- Les tests ayant pour objet de décider si de nouveaux sujets sont ou ne sont pas autorisés sont devenus tellement complexes que de nouvelles fonctions dédiées ont dû être ajoutées à YACS. Exemple, Actions::are_allowed() dans actions/actions.php, Articles::are_allowed() dans articles/articles.php, Categories::are_allowed() dans categories/categories.php, etc.

- La page de recherche, search.php, ne liste plus que les niveaux supérieurs de l'arborescence du contenu, pour limiter le champ des recherches. Merci à Justin pour cette idée pratique.


- Des codes de statut HTTP ont été ajoutées aux pages habituelles pour gérer les cas où la page est introuvable (404), ou l'accès est interdit (403). Cela devrait aider les moteurs de recherche à ne visiter que les pages valides et publiées.


- YACS renvoie maintenant des codes de statut entièrement basés sur Status: pseudo-attribut, plutôt que de générer directement des réponses HTTP 1.0 , ce qui permet une meilleure intégration avec le moteur du serveur HTTP.


- Un nouveau script a été ajouté afin de centraliser les fonctions relatives aux ancres, dans shared/anchors.php. Par exemple, Anchors::stat_related_to() fait, dans un joli tableau,  la liste de tous les sujets (items) en relation avec une seule ancre. ADe même, la fonction Anchors::delete_related_to() a été ajoutée pour permettre l'effacement des cascades d'ancres pour atteindre leur contenu. De même une fonction Anchors::duplicate_related_to() a été ajoutée afin d'autoriser une duplication facile d'une ancre et de son contenu. Pour ces fonctions le travail est en fait accompli dans les modules correspondants de la base de données. C'est à dire actions/actions.php pour actions, etc. Quant à la duplication, quelques possibilités ont été ajoutées au niveau du code, qui permettent de s'assurer que les identifiants corrects sont utilisés pour les copies.

- La plupart des formulaires permettent dorénavant de changer l'éditeur de texte (textarea, FCKEditor, TinyMCE) à la volée, en le sélectionnant simplement dans une liste déroulante située immédiatement sous l'article en composition. Une contribution utile de Tof et GnapZ. Merci à eux !  Voir Surfer::get_editor() in shared/surfer.php


- Une option a été ajoutée au panneau de configuration pour permettre aux associés de changer l'éditeur de texte(FCKEditor, TinyMCE, or text area) de tous les membres en une seule opération. Auparavant, on ne pouvait changer que la valeur par défaut pour les nouveaux membres.

 

- Un petit test a été ajouté à agents/browsers.php pour éviter les avis insignifiants lorsque  user agent ne s'enchaîne pas correctement.


- La plupart des images statiques ont été déplacées dans le répertoire skins/images, pour faciliter la tâche des designers web. Le répertoire agents/user-agents est désormais skins/images/user-agents, et comments/images est devenu skins/images/comments, etc. Un grand merci à GnapZ pour la contribution.


- Le demo flag a été déplacé avec les autres fichiers de paramètres, en tant que parameters/demo.flag, à la suite d'une suggestion de GnapZ.


- Depuis longtemps, YACS peut assigner un lien de navigation à une image, mais cela ne s'appliquait qu'aux éléments inclus dans le champs de description. C'est maintenant applicable aussi aux images placées dans le champs d'introduction. Le même principe s'applique aux emplacements ajoutés aux articles. Voir articles/article.php.


- Lorsqu'une image est ajoutée à une page en tant que vignette, c'est soit l'image réduite, soit la version originale qui est utilisée, selon que la taille de l'image dépasse ou non le seuil fixé. Voir articles/article.php

- Les restrictions d'accès sont désormais passées depuis les ancres situées en bas des cascades d'ancres. Cela permet de créer facilement des systèmes élaborés d'accès. De plus, les tests complexes de sécurité de la base de données ont été remplacés par des règles simples, ce qui améliore le temps de réponse aux requêtes de données. Voir la fonction Anchors::cascade() dans shared/anchors.php


- La sélection d'une section cible pour une nouvelle page a été améliorée. Les éditeurs voient les sections qui leur sont assignées affichées en début de liste. Une sorte de raccourci... Ensuite, on affiche l'arborescence de contenu avec un plus grand nombre de niveaux qu'auparavant, pour permettre de poster plus spécifiquement. Voir articles/edit.php et sections/layout_sections_as_select.php.


- Lorsque les articles sont créés en tant que boîtes, leur surnom est utilisé comme identifiant (id) CSS. Cela permet aux designers web de gérer facilement leur positionnement et leur présentation. On trouve un exemple de cet usage à la page d'accueil de zaniroli.com, où chaque boîte gadget a un surnom différent, et un rendu différent. Voir articles/layout_articles_as_boxes.php

- Des efforts de rationnalisation ont été effectués dans les chaînes de caractère utilisées pour les scripts racine ainsi que pour certains autres modules. Cela devrait contribuer à alléger un petit peu la pression imposée aux traducteurs. dans la mesure ou le nombre de chaînes à traduire a ainsi été réduit de l'ordre de 3 %.

- La structure de présentation d'un article a été changée et les lignes de commande sont désormais placées en-dessous des éléments en question. Exemple, les commandes permettant d'ajouter un commentaire viennent après la liste des commentaires déjà postés. Auparavant, les lignes de commande se présentaient avant, ce qui était à la fois moins cohérent et moins pratique. Voir articles/view.php


- Afin d'aider à la mise à jour des collections une facilité de chargement des fichiers a été établie au bénéfice des associés. Lorsqu'une archive est chargée elle est automatiquement partagée en fichiers individuels . Ceci pourra être utilisé dans le cadre de la mise en place d'une projection de diapositives, par exemple, par la transmission d'archives photos. Voir collections/upload.php


- Le panneau de configuration des collections affiche désormais le chemin en cours vers les fichiers qui s'avère être la chose utile pour le service des Webmestres agissant à distance. Voir collections/configure.php


- De nouveaux fichiers d'extension sont maintenant supportés par YACS: 3gp sont de petites vidéos prises par des téléphones mobiles, cer, p12 ainsi que pfx ont à voir avec les certificats digitaux, gg signifie "Google gadgets", mmap sont à mettre en relation avec les mind maps, les cartes mentales créées à partir de Mindjet Mindmanager, pcap permet de mesurer les trafics réseau, pcast sont des podcasts de format Apple.


- Le système du panneau de configuration permet maintenant l'encodage 8-bits des messages mail, ceci en plus de la base d'encodage 64 bits qui était jusqu'à présent disponible. L'objet étant de faciliter la lecture la plus directe des messages dés que possible. Voir control/configure.php and shared/mailer.php


 - Deux erreur javascript ont été neutralisées dans l'Assistant de Contenu (control/populate.php).


- YACS ne notifie plus aux visiteurs la création des fichiers .bak. Nous avons affiné la qualité du signal...


- Pendant une purge, la suppression des fichiers .bak a été étendue de .php.bak jusqu'à .css.bak, .html.bak, .js.bak, .mo.bak, .po.bak, .txt.bak et aussi .xml.bak. Voir control/purge.php


- Du code a été ajouté à dates/dates.php de manière à permettre l'existence de calendriers limités à une seule section. Auparavant, le concept était de un calendrier par site, comprenant à lui seul la totalité des évènements.


- Les flux (RSS) de nouveaux articles comprenant leur contenu intégral, ainsi que les flux des derniers commentaires, ont été ajoutés aux flux OPML dans feeds/describe.php


- Une nouvelle fonction Skin::build_subscribers() a été ajoutée dans skins/skin_skeleton.php afin de faciliter l'abonnement à partir de l'extérieur à un flux provenant d'un serveur YACS.


- Les panneaux de configuration exigent désormais une authentification de la part des visites anonymes. Auparavant, ils se contentaient d'émettre un message d'erreur.


- Le téléchargement de fichiers est désormais implémenté à la manière d'une antichambre, (ou d'un sas) files/fetch.php, ce qui signifie un meilleur contrôle d'accès aux fichiers en cours de chargement. YACS se contentait auparavant de rediriger les transferts en cours en direction du serveur Web. En dehors de l'amélioration que cela apporte en matière de sécurité, ce changement autorise par la même occasion de sauvegarder des fichiers par un simple clic droit, ce qui n'était pas possible jusqu'à présent.


- Un peu de code WebDav a été ajouté à files/fetch.php, ce qui n'est pas encore suffisant pour permettre une édition pure et simple. Affaire à suivre...


- YACS supporte désormais davantage de sortes de schémas URI, et il devient même possible d'ajouter les liens notes:link_to_a_Lotus_Notes_database dans une page. Voir links/click.php

- Le script scripts/upload.php a été ajouté, qui permet dans le but de rationaliser l'application d'un prtch sur tout serveur, lorsque cela s'avère nécessaire. Ce script a d'abord une forme Web permettant de charger une archive qui est ensuite détruite. Dans le cas des associés d'une communauté, cette approche s'avère sans doute moins simple que le passage classique par FTP. Plus tard, nous mettrons à la disposition de l'ensemble de la communauté une librairie de patches. La démarche amorcée ici prendra alors toute sa signification.

- Une nouvelle fonction Scripts::hdiff() a été ajoutée à scripts/scripts.php de manière à pouvoir comparer deux snippets HTML . Elle est utilisée pour la nouvelle fonction de membre diff() de l'interface de l'ancre (shared/anchor.php), qui se trouve invoquée lorsque l'on est en train de regarder une version, afin de marquer les différences avec la page courante, dans versions/view.php.


- le nouveau script sections/bulk.php a été ajouté de façon à soutenir les opérations massives telles que, par exemple, la duplication d'une section et de toutes les pages qu'elle contient, la publication de tous les articles en d'un seul mouvement, le changement de toutes les pages d'une section vers une autre section en une seule fois,ou encore la suppression de toutes les pages en un seul clic de souris.


- Un cache interne a été ajouté aux nombreux fragments déjà préparés ou en attente dans sections/view.php, avec pour objectif évident l'accélération du rendu des pages d'index stables.


- La librairie shared/safe.php a été étendue par le biais d'un nouvel ajout de fonctions Safe::fstat(), et la plupart des fichiers de manipulation de fonctions sont désormais à même d'emprunter correctement des chemins absolus, ou des chemins relatifs au répertoire d'installation de YACS grâce à des apples internes effectués vers Safe::realpath().


- La librairie SQL est maintenant capable d'appeler mysql_real_escape_string() au lieu de mysql_escape_string() lorsque cela est possible. Voir shared/sql.php.


- Une nouvelle fonction Surfer::personal_sections() a été ajoutée à shared/surfer.php, afin de donner davantage de sens aux limites globales imposées aux sections personnelles. Nous utilisions auparavant Surfer::assigned_sections(), mais cette fonction prend en compte toutes les sections assignées à un membre et non pas seulement les sections dites personnelles.


- Le panneau de configuration des utilisateurs (users/configure.php) autorise désormais une session permanente, ce qui signifie que vous n'avez pas à vous authentifier une nouvelle fois. Ceci constitue une sympathique fonctionnalité au service de la plupart des utilisateurs, mais étant donné les brêches dans la sécurité qui ne manquent pas de se faire jour à la première occasion offerte nous recommandons de n'utiliser cette fonctionnalité que dans le cas de sites Web fonctionnant en Intranet. En effet la session est encore actuellement sauvegardée dans un cookie, ce qui pourrait signifier dans le cadre de l'Internet, faire le jeu d'attaques potentielles.


- Un autre nouveau paramètre du panneau de configuration des utilisateurs permet maintenant d'afficher les avatars dans l'index des membres (ce qui constituait jusqu'à présent une opération relativement compliquée)(users/index.php). Encore une excellente suggestion de [user=Gnapz] !


- La date du dernier login est désormais affichée dans les profils utilisateurs, mais seulement au service des associés... Et les préférences des membres ne sont visibles que par les autres membres de la communauté, c'est à dire invisibles pour les simples visiteurs. Voir users/view.php


- L'ensemble des attributs $_SERVER exposé jusqu'à présent aux hasimples surfers  a été réduit si l'on n'est pas associé du serveur dans control/test.php. Ouf ! De la sorte, vous pouvez peut-être vous faire une idée du niveau de paranoïa atteint au cours de ces derniers jours ?


- Lorsque $_SERVER['PATH_INFO'] n'existe pas, YACS tente désormais d'utiliser $HTTP_SERVER_VARS['ORIG_PATH_INFO'] .


- YACS supporte désormais ce qu'on appelle le virtual host. Cela signifie que vous pouvez utiliser une seule instance du logiciel et plusieurs fichiers de configuration qui prennent en charge de manière séparée chaque 'virtual host. D'une manière générale le vocable Virtual Host fait référence à la pratique qui consiste à maintenir plus d'un serveur sur une même machine, en les différenciant par des noms de de domaine apparemment différents. Une simple implementation dans shared/global.php, et il ne vous reste plus qu'à préparer à la main tous les fichiers de configuration. Mais cela a au moins le mérite de fonctionner correctement...


- Les pages déjà visitées sont maintenant présentées sous la forme d'une liste compacte standard, de manière à soutenir pleinement la mise en place des skins. Voir skins/page.ph