Besoin
Nous souhaitons pouvoir paramétrer le contenu de l'élément <head></head> des documents HTML générés par
WikiNi : typiquement, les pages du wiki. Nous souhaitons également que ce paramétrage ne dépendent pas des fichiers sources de
WikiNi. Ainsi, il n'est plus nécessaire de modifier header.php et on peut ajouter facilement ce que l'on veut. Il devient alors possible de mettre à jour
WikiNi au fur et à mesure des nouvelles versions, sans avoir à refaire le paramétrage du <head>.
Essayons donc de lister tous les usages possibles :
- ajouter un fichier Favicon (il existe d'autres solutions)
- ajouter des feuilles de style alternatives
- ajouter une feuille de style pour l'impression ; par exemple : <link rel="stylesheet" type="text/css" href="/print.css" media="print" />
- ajouter les informations de ; par exmple : <meta name="icbm" content="46.7229, 3.6848" />
- ajouter les informations relatives au lien vers le flux RSS : <link rel="alternate" type="text/xml" title="RSS" href="http://xxxx.org/DerniersChangementsRSS/xml" />
- <link rel="meta" type="application/rdf+xml" title="FOAF" href="http://www.la-grange.net/karl-foaf.xrdf" />
- ajouter des informations de navigation ; ces informations sont par exemple exploitées par Mozilla ; exemples, à adapter, pris sur le site de Karl Dubost http://www.la-grange.net/ :
- <link rel="Start" href="http://www.la-grange.net/" />
- <link rel="Prev" href="/2004/03/19.html" />
- <link rel="Next" href="/2004/03/21.html" />
- <link rel="Contents" href="/map.html" />
- <link rel="Help" href="/ours.html" />
- informations à détailler (?)
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- <meta http-equiv="Content-style-type" content="text/css" />
- <meta http-equiv="Content-language" content="fr" />
- <meta http-equiv="imagetoolbar" content="no" />
- <meta name="MSSmartTagsPreventParsing" content="TRUE" />
Ce que l'on peut dire c'est qu'il semble y avoir beaucoup de cas où cette fonction peut être utile. Elle permet donc aux utilisateurs de profiter des nouveautés
WikiNi sans avoir à modifier à chaque fois le header.php.
--
GarfieldFr et
CharlesNepote (sur une idée originale de
GarfieldFr)
Références
- [fr], in HTML 4.01.
- [fr], in HTML 4.01.
Discussions
J'aime beaucoup cette idée, elle améliore plus encore la souplesse et la modularité de
WikiNi. Elle permet aux bidouilleurs de bidouiller proprement.
Attention cependant. Beaucoup d'utilisateurs de
WikiNi n'ont même pas idée des fonctionnalités qui sont accessible via le <head>. Je pense qu'il est donc intéressant de pouvoir automatiser la production de certains paramètres du <head>. Par exemple :
- tous les utilisateurs ne connaissent pas forcément les subtilités de la syntaxe permettant d'afficher des favicons ; dans ce cas il me paraît intéressant de pouvoir détecter et afficher automatiquement un favicon lorsqu'il est présent
- idem pour les feuilles de styles
- idem pour les meta "keywords" et "description" qui gagne à être générés automatiquement
Il faut bien voir que le paramétrage du <head> est plutôt l'apanage des bidouilleurs et qu'il faut continuer à assister au maximum les utilisateurs débutants.
--
CharlesNepote
Solutions
Solution 1
Mettre une entrée dans le tableau de configuration qui serait ajoutée dans la partie <head></head> de la page.
--
GarfieldFr
Solution 2
Créer une (plusieurs) actions permettant la configuration du header HTML. Cela rejoint la notion d'interface d'administration et pose des problèmes de sécurités d'accès à ce genre de contrôle sur le wiki. La protection des pages est alors insuffisante, il faudrait implémenter la protection dans les actions mais cela reste faisable. L'avantage reste la facilité pour l'administrateur de modifier les paramètres du header HTML sans à avoir de connaissance approfondis de la structure du header.
Solution 2a
L'action de paramétrage du <head> modifie le fichier wakka.config.php qui sert de stockage des paramètres.
Solution 2b
L'action de paramétrage du <head> enregistre les paramètres dans la base de données. L'avantage étant que lorsqu'on sauvegarde la base, on sauvegarde aussi les paramètres de configuration.
Solution 2c
Il est possible de garder le meilleur des deux mondes. Tous les paramètres de configuration sont conservés en base de données (sauf les paramètres "système" (adresse de la base de données, etc.)) et lorsqu'il y a une modification le fichier wakka.config.php est regénéré.
--
GarfieldFr et
CharlesNepote (sous l'impulsion de
GarfiledFr?)
Pour ma part, je suis très séduit par les solutions 2b et 2c. Je ne suis pas persuadé qu'on gagnerai beaucoup avec la solution 2c. --
CharlesNepote
- Et pour ma part, je pense de plus en plus qu'il faut mettre un maximum d'information dans la base de données ! Je suggère que ces headers, footers et autre menus, feuilles de style et interwiki.conf soient tout simplement des pages réservées (avec un préfixe _ par exemple) dont on pourra paramétrer les droits de modification aussi simplement qu'en changeant les ACLs d'une page... Évidement ça va augmenter un peu la charge niveau base de données, mais on aura de toutes façons une solution de cache de page à mettre en place... Mais je me demande si on ne devrait pas faire une release avant d'entrer dans ces gros travaux... Cf suggestion d'objectifs à atteindre pour la prochaine release sur la page OuEnSommesNous. -- ProgFou
Solution 3
je vais un peu à contre courant, mais il suffirait de prévoir des fichiers optionnels, qui ne seraient pas écrasés par un upgrade, à la manière des fichiers
-dist de spip : si un fichier
head.php existe, on l'inclu, sinon, on inclu
head-dist.php.
head-dist.php fait partie de la distrib, mais pas
head.php, donc si on veut personnaliser le head, on le fait dans
head.php sans risque de le perdre lors d'un upgrade.
Solution 4
Il peut être intéressant de pouvoir configurer le head pour chaque page du wiki avec des paramètres par défaut si ceux-ci ne sont pas personnalisés.
Utile pour les mots-clés, il peut y avoir d'autres applications.
Ceci n'est qu'un exemple: on pourrait avoir #link parametre1 parametre2# qui serait compris par wikini comme
<link rel="parametre1" href="parametre2" />
et aussi #meta parametre1 parametre2# traduit en
<meta http-equiv="parametre1" content="parametre2" /> en filtrant bien sûr les signes > et <.
On peut même mettre un #title Titre de ma page# traduit en
<title>Titre de ma page</title>.
La partie head devient ainsi tout a fait personnalisable pour qui en a le besoin.
--
JarodEvans
Corrélats