[Tutoriel] – Slider des produits pour WP e-Commerce

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 :

/* 
 * Affiche la lise des albums 
 * NE PAS OUBLIER DE CREER UNE PAGE PAR ALBUM
 */
function ngg_liste_albums( $args = null, $thumbs = 1) {

    global $wpdb;
    /* On va chercher le préfix utilisé */
    $prefix = $wpdb->prefix;
    $liste_albums = $wpdb->get_results( $wpdb->prepare( "SELECT previewpic, slug, name, albumdesc FROM ".$prefix."ngg_album ORDER by id", $o_id ) );
    //echo 'req : SELECT previewpic, slug, name FROM '.$prefix.'ngg_album ORDER by id';
    $output = '<div>';
    if ( count( $liste_albums ) > 0 ) {

        foreach ( $liste_albums as $albums ) {

            /* On va chercher l'image correspondante de l'album */
            $pic= $wpdb->get_row( $wpdb->prepare( "SELECT * FROM ".$prefix."ngg_pictures WHERE pid = ".$albums->previewpic." LIMIT 1", $o_id ) );
            /* On récupère le chemin vers l'album */
            $galerieid = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM ".$prefix."ngg_gallery WHERE gid = ".$pic->galleryid."", $o_id ) );

            if($galerieid->gid>=1) {
                $output .= '<div class="ngg-album-compact" style="float: left;width: 250px;">';
                if($thumbs==1 && isset($pic->filename)) {
                    $output .= '<div class="ngg-album-compactbox"><a class="Link" href="'.$path.''.$albums->slug.'/" /><img class="Thumb" alt="'.$albums->name.'" src="/'.$galerieid->path.'/thumbs/thumbs_'.$pic->filename.'" width="100" heigth="75" /></a></div>';
                }
                $output .= '<h4><a href="'.$path.''.$albums->slug.'/">'.$albums->name.'</a></h4>'.$albums->albumdesc.'';
                $output .= '</div>';
            }
        }

    } else {
        $output = 'Aucun album trouvé !';
    }
    $output .= '</div>';
    echo $output;
}

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 :

<?php
/*
Template Name: Albums Photos
*/

get_header(); ?>

	<!-- CONTENT -->
	<div id="content">
		<section id="main-content" role="main" class="full-height">

			 <header class="entry-header">
                <h1 class="entry-title">Nos Galeries Photos</h1>
                </header>
            <div class="entry-content">
                <?php echo ngg_liste_albums(); ?>

			<?php
				// If comments are open or we have at least one comment, load up the comment template
				if ( comments_open() || '0' != get_comments_number() )
					comments_template( '', true );
			?>
            </div>
            <div class="divider-solid"/></div>
		</section>
	</div>
	<!-- END CONTENT -->

	<?php get_sidebar(); ?>

<?php get_footer(); ?>

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 !

1 réponse

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.