fonction plxGet
Pierre
Member
Pour faire les choses correctement, je choisis cette section du forum pour vous faire part d'une modification qui devient pour moi un automatisme quand je démarre un nouveau site, la toute simple ré-écriture de la méga-fonction plxShow pour la travestir sous la forme de plxGet. Vous aurez compris que l'exercice consiste essentiellement à remplacer quelques lignes qui commencent par "echo" et les remplacer par la fonction "return". Un petit ajout à l'index et le tout fonctionne. À noter que c'est souvent la seule modification nécessaire, je ne veux pas donner l'impression de passer mes grandes journées à modifier un produit aussi solide et fiable.
L'explication est un peu grossière mais les experts ont compris que je ne ré-invente pas la roue mais transforme des fonctions qui disent grosso modo "affiche-moi une suite de résultats" par "retourne-moi la même liste de résultats et je déciderai quoi en faire". Cette matrice de résultats devient une matière première qui est alors filtrée, triée et souvent comparée à une autre liste extraite de la même façon.
Mes amis "crochetistes" auraient vite fait de trouver une solution respectant cette discipline qui m'échappe, mais ma méthode a le mérite de répondre rapidement à des besoins qui reviennent à chacun de mes projets. Je démarre toujours avec une version brute toute neuve de Pluxml avec quelques plugins mais cette modification sous le capot arrive quelques heures (pour ne pas dire minutes) plus tard, à la première embûche.
Je confesse que beaucoup de mes situations épineuses viennent de mon refus d'utiliser le plugin "ChampArt" qui pourrait honnêtement ajouter ce niveau supplémentaire de traitement. Je préfère garder l'intégrité des fichiers d'articles, permettant même de réutiliser une base de catégories et d'articles d'un thème à l'autre. La seule exception est le plugin "Vignette" qui est carrément le premier ajouté quelques secondes après l'installation. Il est de mon avis que ce plugin ne devrait même plus en être un mais ça, c'est pour une prochaine aventure...
L'explication est un peu grossière mais les experts ont compris que je ne ré-invente pas la roue mais transforme des fonctions qui disent grosso modo "affiche-moi une suite de résultats" par "retourne-moi la même liste de résultats et je déciderai quoi en faire". Cette matrice de résultats devient une matière première qui est alors filtrée, triée et souvent comparée à une autre liste extraite de la même façon.
Mes amis "crochetistes" auraient vite fait de trouver une solution respectant cette discipline qui m'échappe, mais ma méthode a le mérite de répondre rapidement à des besoins qui reviennent à chacun de mes projets. Je démarre toujours avec une version brute toute neuve de Pluxml avec quelques plugins mais cette modification sous le capot arrive quelques heures (pour ne pas dire minutes) plus tard, à la première embûche.
Je confesse que beaucoup de mes situations épineuses viennent de mon refus d'utiliser le plugin "ChampArt" qui pourrait honnêtement ajouter ce niveau supplémentaire de traitement. Je préfère garder l'intégrité des fichiers d'articles, permettant même de réutiliser une base de catégories et d'articles d'un thème à l'autre. La seule exception est le plugin "Vignette" qui est carrément le premier ajouté quelques secondes après l'installation. Il est de mon avis que ce plugin ne devrait même plus en être un mais ça, c'est pour une prochaine aventure...
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Peux-tu me dire comment tu as implémenté tes modifs ?
J'avais déjà un peu réfléchi à ce que tu décris, et j'en étais resté à faire une classe qui s’appellerait par exemple plxShowCore qui ne ferait que des returns et une classe dérivée, la fameuse plxShow qui ferait les echos.
Le sujet est intéressant
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Si j'étais celui qui avait eu le culot et le courage de bâtir Pluxml, toutes mes fonctions produiraient des listes de id ou de résultats mais j'aurais laissé le codeur décider de ce qu'il en ferait. Mais bon, j'accepte mon ignorance devant les hook, les eval et les je-ne-sais-quoi-d'autres qu'on enseigne à l'école de sorcellerie.
Dans ma religion de la simplicité d'esprit, la construction ressemblerait à:
fonction qui génère une liste de id
boucle effectuée sur chacun des items
-opération effectuée sur l'item i de la boucle
- test de résultat de mon opération précédente
- si oui, affichage de quelque chose se rapportant à l'item
fin de la boucle
ça a le mérite de se comprendre, même par un auditoire qui n'y connaît pas grand chose. Je n'ai pas mes exemples sous la main mais je pourrai en fournir quelques-uns pour illustrer.
Après faut savoir que plxShow n'est qu'une classe d'affichage
artTags affiche la liste des mots-clefs sous un format personnalisé,
mais du template on peut facilement appeler cette liste
J'imagine qu'un $plxGet->f('noeud'); serait plus simple et parlant
Quoiqu'il en soit il faudrait que cette class soit facilement accessible par plxPlugin
@Pierre, peux-tu nous donner tes changements ?
@Stéphane, est ce prévue pour les futures versions ?
Je viens de WP et c'est vraie que c'est assez déroutant de ne pas avoir la possibilité d'avoir de get du titre, du corps et autre de l’article.
J'ai pallié via de l'ob, mais ça fait pas très clean.
par example pour un carrousel
A+
Mais, pour répondre à la question de "comment faire", c'est souvent aussi simple que de copier une fonction dans class.plx.show, la renommer quelque chose de facile et de remplacer les ECHO par des RETURN à l'intérieur de ladite fonction.
Encore une fois, je recommande de n'utiliser qu'en dernier recours, c'est beaucoup mieux d'exposer son problème ici et quelqu'un va se faire un plaisir de nous épater.