BlogCollectionContributionsPublications Rechercher

Mes personnalisations de PluXML

Rédigé par administrator
Classé dans : Blog Mots clés : PluXML, w3css
Utilisateur de longue date de Drupal (versions 4 à 7), j'ai acquis des habitudes et donc des attentes vis à vis d'autres CMS. Lors de la mise en place de sites avec le CMS PluXML , j'ai tendance à rechercher certaines habitudes, ce qui m'amène à personnaliser les fichiers du thème de PluXML.
Je liste ici ces personnalisations, cet article sera mis à jour au besoin.

Le bouton "Lire plus"

Le bouton 'Lire plus' se trouve en bas du chapo dans les différentes listes du thème (pages home, archives, catégorie, tags), il permet d'ouvrir l'article.
L'affichage du chapo est réglé par la fonction  'plxShow->artChapo'. Par défaut, cette fonction crée un bouton avec le texte 'Lire plus' (dans la langue de l'interface) suivi du titre de l'article.

Habitué au simple 'Lire plus', je trouve l'ajout du titre dans ce bouton un peu lourd:
  • le titre de l'article se voit répété dans le bouton ce qui alourdi la page
  • le bouton devient très grand avec un texte assez long
Heureusement, les programmeurs ont prévus des paramètres pour cette fonction, il est donc possible de ne voir que 'Lire plus' et pas le titre en adaptant comme suit:
<?php $plxShow->artChapo('Lire plus',true) ?>

Avantages

  • le bouton est désormais compact, il ne prend plus une place proéminente dans la page

Inconvénients

  • cette adaptation doit se faire dans toutes les pages templates du thème
  • le texte du bouton est désormais "en dur", il restera identique même lors du changement de la langue de l'interface.... (embêtant si on veut faire un thème "générique")
  • le changement affecte le texte du lien, mais aussi la balise "title" où j'aurais conservé le titre de l'article
  • le changement crée une alerte de validation: liens redondants, textes de titre redondants

Un thème basé sur w3.css

Afin de personnaliser mon blog, j'ai décidé de créer mon propre thème pour PluXML. Ayant déjà utilisé la bibliothèque CSS w3.css pour des sites statiques, mon choix s'est naturellement porté sur celle-ci pour assurer un thème responsive et simple à personnaliser. La création d'un thème est un exercice intéressant car il oblige à s'intéresser de plus près au fonctionnement du CMS, et éventuellement de faire des choix différents de ceux des développeurs. Dans mon cas, c'est essentiellement la logique de menu que j'ai modifiée, influencé sans doute par mon expérience Drupal.

Le menu de PluXML est basé sur la liste de pages statiques (en tous cas, celles marquées comme affichées dans le menu), dans lesquels s’intercalent éventuellement des menus de plug-in (par exemple PlxMySearch, PlxMyContact). Dans le cadre de mon blog, j'ai plutôt listé les pages selon leur thématique, ce qui avec Drupal revient à utiliser la taxonomie. Comment arriver au même résultat avec PluXML?

PluXML dispose de deux outils de classification: les catégories et les tags. Pour chacun, une fonction permettant de lister les pages est disponible:
<?php $plxShow->catList('$extra','$format','include','exclude') ?>
<?php $plxShow->tagList('$format',$max) ?>
Au vu de mes besoins, j'ai décidé d'utiliser les tags comme dans Drupal (1 ou plusieurs pour catégoriser le sujet d'un article), et les catégories pour placer un article dans un menu spécifique. Il suffit de procéder comme suit:
  • créer les catégories (menus): Blog, Collection, Contributions, Publications
  • attribuer chaque article à une catégorie (éventuellement plusieurs)
  • placer dans le template header.php la fonction 'plxShow->catlist' au niveau de la section <nav>, avec ajout des classes w3.css appropriées
<?php $plxShow->catList('','<li class="w3-bar-item w3-button w3-hide-small w3-hide-medium"><a class="#cat_status" href="#cat_url">#cat_name</a></li>'); ?>

Avantages

  • on dispose d'un menu dynamique où un éditeur peut facilement placer un article
  • on a la possibilité de décrire ce que la liste contient (description de la catégorie en option), voir même d'ajouter une image

Inconvénients

  • je n'en ai pas encore trouvé :-)

Références

  • https://wiki.pluxml.org/developper/plxshow/#fuction-artchapo
  • https://wiki.pluxml.org/developper/plxshow/#function-catlist