var Phenix = function () {
Troll du Web depuis 1996

Ajouter une balise #CHERCHER_LOGO à #SPIP

Lorsque l’on veut récupérer le logo d’un objet SPIP, on est obligé de faire quelques choses qui ressemble à :

  1. <BOUCLE_logo(ARTICLES){id_article=1}>
  2. #LOGO_ARTICLE
  3. </BOUCLE_logo>

C’est assez ennuyant, d’autant que cela risque fort de faire une requête SQL alors que la récupération de logo n’en a absolument pas besoin, les fichiers sont stocker sous la forme objetId_objet.xx dans le dossier IMG.

On pourrait espérer que mettre simplement l’identifiant dans la balise récupère le logo, comme le font les balises URL. Malheureusement cela ne fonctionne pas.

Du coup, je me suis inspiré de la balise #INFO_ pour créer une balise #CHERCHER_LOGO :

  1. <?php
  2. /**
  3.  * #CHERCHER_LOGO{objet, id_objet}
  4.  * Retrouver le logo d'un objet sans avoir à lancer tout le système de boucle.
  5.  *
  6.  * @param mixed $p
  7.  * @access public
  8.  * @return mixed
  9.  */
  10. function balise_CHERCHER_LOGO_dist($p) {
  11. $objet = interprete_argument_balise(1, $p);
  12. $id_objet = interprete_argument_balise(2, $p);
  13.  
  14. // Faire la conversion pour la fonction chercher_logo
  15. $objet = "id_table_objet($objet)";
  16.  
  17. include_spip('inc/filtres');
  18. include_spip('public/quete');
  19. $p->code = "http_img_pack(_DIR_IMG.quete_logo($objet, 'on', $id_objet, '', true), '', 'class=\"spip_logos\"')";
  20. $p->interdire_scripts = false;
  21.  
  22. return $p;
  23. }

Voir mon gist : https://gist.github.com/phenix-factory/57cb993512d13fdfee88

Un message, un commentaire ?
modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message
  • Pour créer des paragraphes, laissez simplement des lignes vides.