Programmation SPIP
Mardi 8 décembre 2015

Tri des documents par nom de fichier (St-Brieuc) Enregistrer au format PDF

0 vote

La paroisse de Saint-Brieuc a eu besoin d’afficher des listes de documents par ordre alphabétique soit par le titre, soit par le nom du fichier si le titre n’existe pas.

Il est nécessaire de changer le mode d’affichage, défini dans la noisette /noisette/documents/ind_documents_joints.html.

L’affichage par défaut affiche l’icône du document et son titre. Si le titre n’existe pas on affiche le format et le poids du document. Dans notre cas il faut :

  • Ne pas afficher les icônes, pour avoir simplement des listes
  • Afficher :
    • Soit le titre du document s’il existe
    • Soit le nom du fichier avec le traitement suivant :
      • Remplacement du séparateur « _ » par un espace
      • Mise en majuscule du tout premier caractère, car les majuscules sont triées avant les minuscules.
        Exemple d'affichage des documenst triés
        Exemple d’affichage des documenst triés

Procédure

On ajoute le suffixe de la rubrique au nom du fichier pour que la modification ne s’applique qu’à cette branche (la rubrique et ses enfants).

On remplace le code par le suivant

Explications

Le <div> sert uniquement pour l’affichage particulier.

  • On défini le tableau, appelé table : [(#SET{table, #ARRAY})]
  • On crée une boucle qui va lire tous les documents -pas les images !) de l’article (les documents sont nécessairement dans des articles)
  • On initialise le champs nom : [(#SET{nom,...
    • soit par le titre, mis en conformité avec les flux #TITRE|texte_backend
    • soit par le nom du fichier sans l’extension sinon{#FICHIER|basename{.#EXTENSION}
      dans lequel on remplace les « _ » par des espaces replace{_," "}
      et en mettant en majuscule la première lettre de la chaîne ucfirst
      Ce qui donne
  • On initialise le champs lien par l’URL du document
  • On remplit le tableau avec ces valeurs
  • Puis on imprime le tableau trié