Comment afficher le titre de menu au lieu de l'ID dans une liste de ressource affiché dans les résultats MIGX.
  • 24 novembre 2018
  • Steeve

Le problème : quand on doit avoir une liste de ressource dans MODX c'est pas très compliqué car il y a une variable de modèle (template) pour le faire. Mais quand il faut limiter à certaine ressource ça se complique un peu. Si vous essayez de renvoyer le résultat dans un modèle, un chunk ou dans MIGX, vous verrez l'ID de la ressource ce qui n'est pas très dérrangeant dans un template ou un chunk mais c'est beaucoup plus embêtant si vous l'affiché dans les colones d'un MIGX ou un MIGX CMP.

Alors voici une solution simple pour parer au problème !

1. Limiter le résultat de la liste de catégorie ou sous catégorie

Créer un variable de modèle, nommez la "catégorie", de type (type d'entrée) liste à sélection unique.
Puis dans le champ (valeur des options d'entrée) on va utiliser @SELECT binding qui permet de faire directement une requette à la base de données et qui retourne le résultat

@SELECT `menutitle`,`id` FROM `modx_site_content` WHERE `template` = 7

Ou pour limiter à plusieurs parent pour une liste de ressource de sous catégorie

@SELECT `menutitle`,`id` FROM `modx_site_content` WHERE `parent` IN (7,8)
PS : Si vous avez modifié le prefix de table il faudra le modifier dans mon exemple. Ou vous pouvez utiliser {{+PREFIX}} en remplaçant mes accolades par des crochets. Ce qui renvera modx_ ou votreprefix_

2. L'afficher dans un formulaire de MIGX

Rien de plus simple il suffit de le champ Input à la place du champ Input TV type en y mettant simplement le nom de la variable de modèle.

3. Afficher le titre de menu dans le résultat de MIGX ou MIGX CMP

Le but de cette opération c'est d'afficher le titre de menu, le titre long ou le titre de la page à la place de l'ID, ce sera plus simple pour la lecture.
Nous allons avoir besoin d'utiliser l'extra de MODX fastFiled. Téléchargez et installez l'extra, je vais pas vous faire un dessin !
un fois installé, allez dans MIGX, éditer le MIGX en question. Dans Columns éditez votre entrée, dans l'onglet Renderer > champ renderer sélectionnez dans la liste déroulante this.renderChunk. Ensuite dans le champ
renderChunk template vous pouvez utiliser fasField comme ceci :

[[#[[+categorie]].menutitle]] ([[#[[+categorie]].id]])

Ce qui donnera : monTitreDeMenu (ID).

Partagez cet article

A propos de l'auteur

Steeve

Passionné d’informatique, de Design, de développement d'application et du Web en général (participation au start-up weekend, hackathon, dev Var, formation Google...), j’ai créé ce site afin de partager mes connaissances sur mon système de gestion de contenu préféré MODX. En espérant participer au développement de la communauté.

Commentaires (0)





Tags autorisés : <b><i><br> Ajouter un nouveau commentaire :