Squelette : Menu dynamique accessible + 3 colonnes en CSS + géométrie variable

Ce squelette vous permettra :
  • de disposer d’un menu dynamique arborescent accessible
  • de disposer d’un affichage en trois colonne avec en-tête et pied de page
  • de choisir entre 6 styles d’affichage
  • de voir quelques boucles sympathiques
  • de voir qu’un peu de php permet d’aller plus loin facilement

Cet article a été mis-à-jour pour être compatible avec la version 1.8 de SPIP.

Licence

Je distribue ce menu en licence LGPL. Cela signifie en gros que vous pouvez l’utiliser comme vous le voulez dans vos développements, qu’ils soient commerciaux ou non.

Utilisation

Le script fourni dans l’archive (au format zip) combine en fait 3 fonctionnalités :

  • gestion d’un menu accessible
  • gestion des feuilles de style alternatives
  • gestion d’une mise en page 3 colonnes avec pied de page

Ce menu est accessible à la navigation au clavier et contient suffisamment d’informations pour permettre sa navigation par un aveugle.

Quelques considérations :

  • le code HTML de la page ne nécessite que des liste (LI) contenant des liens (A)
  • les éléments de la liste ayant le tag STRONG sont automatiquement déplié
  • si le navigateur ne gère pas le DOM, le menu est affiché en mode déplié
  • —> le menu ne fonctionne de manière dynamique que sur un navigateur récent respectant les standards
  • il est nécessaire de placer l’appel au .js du menu après celui-ci, sans quoi le script ne fonctionne pas !
  • le fait que le menu soit clicable sur toute sa largeur (pas seulement sur le texte) est lui aussi un critère d’accessibilité, cette fois-ci aux personnes à mobilité réduite.

Feuilles de styles alternatives

  • Possibilité de changer la mise en page du site en sélectionnant une des feuilles de style alternative
  • mémorisation par cookie du choix de l’internaute

Mise en page 3 colonnes avec pied de page

  • Il n’y a pas de table pour obtenir la présentation en 3 colonnes ; utilisation exclusive de CSS
  • La taille des 3 colonnes est automatiquement ajustée à la plus haute
  • Le pied de page est automatiquement déplacé en bas des 3 colonnes (via javascript)
  • dans le source de la page, les éléments sont placés dans cet ordre :
    1. En-tête
    2. Corps [1]
    3. Colonne de gauche
    4. Colonne de droite
    5. Pied de page

Considérations esthétiques

Capture d’écran d’un article

Ce squelette est une preuve de concept, pas un chef d’œuvre artistique !

Boucles

  • Le fichier menu.html utilise une boucle affichant l’arborescence des rubriques. Mais si une rubrique ne contient qu’un article, c’est l’article qui est affiché directement sur le clic.
  • Le fichier rubrique.html affiche soit la liste des articles s’il y en a au moins un, soit la liste des sous rubriques
  • Le fichier article.html affiche la liste de tous les articles de la rubrique en cours, l’article en cours n’étant pas clicable.

Astuces

  • Les articles et les rubriques peuvent être numérotés (nn. titre : N° point espace titre)
  • Si un article a comme mot clef « MENURACINE », il est placé juste en dessous de accueil dans le menu avant les rubriques (ce qui ne l’empèche de pouvoir être aussi à l’intérieur de sa rubrique).

Installation

Tous les fichiers et dossiers de l’archives sont à placer à la racine du site.

L’archive contient :

  • dossier ecrire
    • mes_options.php3 : contient les paramétrages su squelette (dossier du squelette) plus des fonctions pour avoir plus de raccourcis typographiques.
  • dossier menuAccessible
    il s’agit des fichiers du squelette. Cela vous montre que l’on peut séparer dans SPIP les squelettes du reste.
  • mes_fonctions.php3 : diverses fonctions utiles (ou non) au squelette.

Attention : si votre site a déjà un fichier mes_fonctions.php3 à la racine ou un fichier mes_options.php3 dans ecrire : ne les écrasez pas avec ceux de ce squelette, mais rajoutez-y les éléments de celui-ci.

Notes

[1Il est important que celui-ci soit avant les menus. En effet, placez-vous dans la tête d’un aveugle quelque instant. Celui-ci arrive sur une page, en lit le contenu et navigue ailleurs par les menus. Arrivée sur la deuxième page, il preférera lire le contenu de la page avant de relire le menu !

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom