J’utilise NextGen Gallery comme plugin la plupart du temps si je souhaite une galerie photo avec plusieurs albums.
J’ai installé le plugin, créé des albums, créé des galeries d’images… et là… ben le client me demande une page avec tous les albums qui mèneront aux galeries de ceux-ci, bref simplement afficher la liste des albums NextGen Gallery
Bref, étonné quand même que les développeurs de NextGen Gallery n’y ont pas pensé, je me suis fait une petite fonction qui va faire tout cela.
Comment afficher la liste des albums NextGen Gallery
Voici la fonction :
[pastacode manual= »%2F*%20%0D%0A%20*%20Affiche%20la%20lise%20des%20albums%20%0D%0A%20*%20NE%20PAS%20OUBLIER%20DE%20CREER%20UNE%20PAGE%20PAR%20ALBUM%0D%0A%20*%2F%0D%0Afunction%20ngg_liste_albums(%20%24args%20%3D%20null%2C%20%24thumbs%20%3D%201)%20%7B%0D%0A%0D%0A%20%20%20%20global%20%24wpdb%3B%0D%0A%20%20%20%20%2F*%20On%20va%20chercher%20le%20pr%C3%A9fix%20utilis%C3%A9%20*%2F%0D%0A%20%20%20%20%24prefix%20%3D%20%24wpdb-%3Eprefix%3B%0D%0A%20%20%20%20%24liste_albums%20%3D%20%24wpdb-%3Eget_results(%20%24wpdb-%3Eprepare(%20%22SELECT%20previewpic%2C%20slug%2C%20name%2C%20albumdesc%20FROM%20%22.%24prefix.%22ngg_album%20ORDER%20by%20id%22%2C%20%24o_id%20)%20)%3B%0D%0A%20%20%20%20%2F%2Fecho%20’req%20%3A%20SELECT%20previewpic%2C%20slug%2C%20name%20FROM%20′.%24prefix.’ngg_album%20ORDER%20by%20id’%3B%0D%0A%20%20%20%20%24output%20%3D%20’%3Cdiv%3E’%3B%0D%0A%20%20%20%20if%20(%20count(%20%24liste_albums%20)%20%3E%200%20)%20%7B%0D%0A%0D%0A%20%20%20%20%20%20%20%20foreach%20(%20%24liste_albums%20as%20%24albums%20)%20%7B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F*%20On%20va%20chercher%20l’image%20correspondante%20de%20l’album%20*%2F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%24pic%3D%20%24wpdb-%3Eget_row(%20%24wpdb-%3Eprepare(%20%22SELECT%20*%20FROM%20%22.%24prefix.%22ngg_pictures%20WHERE%20pid%20%3D%20%22.%24albums-%3Epreviewpic.%22%20LIMIT%201%22%2C%20%24o_id%20)%20)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F*%20On%20r%C3%A9cup%C3%A8re%20le%20chemin%20vers%20l’album%20*%2F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%24galerieid%20%3D%20%24wpdb-%3Eget_row(%20%24wpdb-%3Eprepare(%20%22SELECT%20*%20FROM%20%22.%24prefix.%22ngg_gallery%20WHERE%20gid%20%3D%20%22.%24pic-%3Egalleryid.%22%22%2C%20%24o_id%20)%20)%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if(%24galerieid-%3Egid%3E%3D1)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24output%20.%3D%20’%3Cdiv%20class%3D%22ngg-album-compact%22%20style%3D%22float%3A%20left%3Bwidth%3A%20250px%3B%22%3E’%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(%24thumbs%3D%3D1%20%26%26%20isset(%24pic-%3Efilename))%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24output%20.%3D%20’%3Cdiv%20class%3D%22ngg-album-compactbox%22%3E%3Ca%20class%3D%22Link%22%20href%3D%22′.%24path. ».%24albums-%3Eslug.’%2F%22%20%2F%3E%3Cimg%20class%3D%22Thumb%22%20alt%3D%22′.%24albums-%3Ename.’%22%20src%3D%22%2F’.%24galerieid-%3Epath.’%2Fthumbs%2Fthumbs_’.%24pic-%3Efilename.’%22%20width%3D%22100%22%20heigth%3D%2275%22%20%2F%3E%3C%2Fa%3E%3C%2Fdiv%3E’%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24output%20.%3D%20’%3Ch4%3E%3Ca%20href%3D%22′.%24path. ».%24albums-%3Eslug.’%2F%22%3E’.%24albums-%3Ename.’%3C%2Fa%3E%3C%2Fh4%3E’.%24albums-%3Ealbumdesc. »%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24output%20.%3D%20’%3C%2Fdiv%3E’%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%24output%20%3D%20’Aucun%20album%20trouv%C3%A9%20!’%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20%24output%20.%3D%20’%3C%2Fdiv%3E’%3B%0D%0A%20%20%20%20echo%20%24output%3B%0D%0A%7D » provider= »manual » lang= »php »/]
Modèle de page pour afficher la liste des albums NextGen Gallery
Puis j’ai créé un modèle de page à adapter selon votre thème :
[pastacode manual= »%3C%3Fphp%0D%0A%2F*%0D%0ATemplate%20Name%3A%20Albums%20Photos%0D%0A*%2F%0D%0A%0D%0Aget_header()%3B%20%3F%3E%0D%0A%0D%0A%09%3C!–%20CONTENT%20–%3E%0D%0A%09%3Cdiv%20id%3D%22content%22%3E%0D%0A%09%09%3Csection%20id%3D%22main-content%22%20role%3D%22main%22%20class%3D%22full-height%22%3E%0D%0A%0D%0A%09%09%09%20%3Cheader%20class%3D%22entry-header%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch1%20class%3D%22entry-title%22%3ENos%20Galeries%20Photos%3C%2Fh1%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fheader%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22entry-content%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%3Fphp%20echo%20ngg_liste_albums()%3B%20%3F%3E%0D%0A%0D%0A%09%09%09%3C%3Fphp%0D%0A%09%09%09%09%2F%2F%20If%20comments%20are%20open%20or%20we%20have%20at%20least%20one%20comment%2C%20load%20up%20the%20comment%20template%0D%0A%09%09%09%09if%20(%20comments_open()%20%7C%7C%20’0’%20!%3D%20get_comments_number()%20)%0D%0A%09%09%09%09%09comments_template(%20 »%2C%20true%20)%3B%0D%0A%09%09%09%3F%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22divider-solid%22%2F%3E%3C%2Fdiv%3E%0D%0A%09%09%3C%2Fsection%3E%0D%0A%09%3C%2Fdiv%3E%0D%0A%09%3C!–%20END%20CONTENT%20–%3E%0D%0A%0D%0A%09%3C%3Fphp%20get_sidebar()%3B%20%3F%3E%0D%0A%0D%0A%3C%3Fphp%20get_footer()%3B%20%3F%3E » provider= »manual » lang= »php »/]
Et ensuite ?
Il faut ensuite évidement penser à faire une page par album et le tour est joué !
Qu’en pensez-vous ? Pouvons-nous aussi simplifier cette fonction et ainsi l’améliorer ?
A vous de jouer !
Solution hyper-simple!
Merci beaucoup!!!