We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 30897
    • 311 Posts
    Bonjour,

    Je suis sur un projet relativement "simple" car il s’agit d’un site "gallerie" pour exposer les activités et les réalisations d’une entreprise, les pages du site sont souvent des regroupements de photos.

    Ce projet va ensuite être livré et la personne qui va gérer le site n’a pas de connaissance en création de site Internet. Donc je viens demander conseil quant à la façon de gérer les documents et les photos pour que les mises à jour se fassent assez simplement (après une petite formation).

    Voici un exemple de mon arborescence :

    - Présentation
    - Equipe (trombinoscope)
    - Espace de travail (gallerie photos de l’espace)
    - Réalisations (c’est la plus grosse partie)
    - Particuliers
    - Page 1 de réalisations pour particuliers (gallerie photos)
    - Page 2 de réalisations pour particuliers (gallerie photos)
    - Page 3 de réalisations pour particuliers (gallerie photos)
    - Professionnels
    - Page 1 de réalisations pour professionnels (gallerie photos)
    - Page 2 de réalisations pour professionnels (gallerie photos)
    - Page 3 de réalisations pour professionnels (gallerie photos)
    - ...

    Pour l’instant, chaque élément de l’arborescence est un document qui contient un code XHTML (ul, li) et le script JS Slimbox pour afficher les photos. Les vignettes et les photos sont préparés avant (ce n’est pas un problème, pas besoin de génération automatique).

    J’ai pensé à utiliser MaxiGallery mais je ne sais pas si ça correspond vraiment à ce que je veux...

    Comment feriez-vous ?

    Merci d’avance

      TylerD - In MODx we trust
      [Derni
      • 2472
      • 151 Posts
      Ca me semble tout à fait faisable avec MaxiGallery.

      Une petite maquette de test et... roulez.
        A thing of beauty is a joy forever ( John Keats)
        • 23050
        • 1,842 Posts
        Oui j’opterai aussi pour MaxiGallery. Cela dit, le plugin d’alphanono (DirectResize) pourrait aussi être une solution. Tu appelles juste ton image grand format et le plugin se charge de générer la miniature.
          • 30897
          • 311 Posts
          Est-ce qu’il y a une démo du fonctionnement de Maxigallery dans le manager ? car j’ai du mal à me rendre compte comme ça sans voir...
          Merci
            TylerD - In MODx we trust
            [Derni
            • 2472
            • 151 Posts
            C’est surement moi mais j’ai rien compris à DirectResize... alors que MG j’y suis arrivé!

            Je dis pas que DR est mauvais pour autant... j’ai aucune patience avec les éditeurs tinyMachin et fuckingBidulle, je les désactive sytématiquement et pond mon code à la mimine.

            C’est pas les démos MG qui manquent, sur le wiki entre autres, je l’utilise aussi sur mon site perso www.avander.be

              A thing of beauty is a joy forever ( John Keats)
              • 23050
              • 1,842 Posts
              héhé je crois que si on le pouvait, on mettrait tous de côté les barres d’outils de ce genre (encore que pour de la mise en forme classique, c’est souvent bien pratique)

              Le hic, c’est que certains d’entre nous travaillant pour le compte de clients qui ne connaissent pas le HTML, on est bien forcé d’utiliser des outils qui leur facilitent la vie. Imagine si on leur disait que pour mettre à jour leur site, ils doivent apprendre le html ! wink

              Cela dit, pour DirectResize, c’est quand même autre chose que MaxiGallery.

              D’un côté MaxiGallery s’appelle dans un doc, un chunk ou modèle et l’édition de la gallerie se fait côté front (Tyler, c’est à toi que je m’adresse :p) : il faut être connecté au manager pour accéder à l’admin de MaxiGallery, qui se trouve côté front, dans le doc dans lequel tu appelles le snippet... C’est un peu déconcertant au début mais au final, on s’y fait ! Ensuite, tu as des champs à remplir, comme si tu remplissais un formulaire et le snippet se charge du reste. Je t’invite à l’essayer, tu vas voir, c’est pratique wink
              Bref, MG construit entièrement une gallerie.

              Le but de DirectResize est autre : il permet de redimensionner une image pour en faire une vignette. Classiquement, avant DirectResize, il fallait passer par un logiciel de dessin pour créer une vignette de ton image. Tu devais uploader ces 2 images sur ton serveur et faire à la main, le lien vers la grande image sur la vignette.
              Depuis DirectResize : tu uploades ton image grand format et DirectResize se charge de créer ta vignette, d’ajouter un lien lightbox si tu le souhaites. Mais, cela ne t’évite pas de faire à la main les li/ul ou dt/dd

              Est-ce que je suis claire ?
                • 1876
                • 835 Posts
                Bonjour,

                Personnellement, je n’utilise pas maxigallery pour ce genre de chose car je trouve l’admin trop complexe.

                En fait, j’ai crée une arbrescence dans /asset/images/
                A chaque fois que je veux créer une gallerie, je crée un sous-repertoire
                Ensuite j’utilise un petit snippet qui va lire le contenu du répertoire (*.jpg et *.png) test si la miniature n’existe pas pour la créer ou prendre celle qui existe et génere le code HTML.

                [[simplegallery? &pathToImg=`fruit` &galleryName=`verger`]]


                Exemple
                (le script est pas compétement terminé mais cela suffisait comme cela car le site est juste une expo photos pour que les agences immobilière puissent montrer les images de la maison.

                Pour ma part je vais refaire le truc avec DirectResize car ainsi je ne vais plus gérer les miniature.
                Le snippet devra se contenter de lire le contenu du répertoire et créer le code html et directresize fera le reste.
                  • 23050
                  • 1,842 Posts
                  Ah pratique ton snippet Aour ! En somme, tu n’as qu’à uploader les images dans le bon dossier ? C’est le must de la simplicité !

                  Ton code est consultable quelque part ? grin
                    • 1876
                    • 835 Posts
                    Oui et Oui

                    J’utilise : Thumbnail.class.php

                    * @package Thumbnail and Watermark Class
                    * @author Emilio Rodriguez <[email protected]>
                    * @version 1.48 <2005/07/18>
                    * @copyright GNU General Public License (GPL)

                    Que je vais remplacer par directresize

                    simplegallery.class.php (petite class perso créer pour apprendre les classes mais cela me gonfle toujours autant)
                    <?php
                    /*
                    Snippet name: simplegallery
                    Short Desc: builds gallery from a folder
                    Version: beta1
                    Thank's to : Heliotrope and doze
                    Date: October 16, 2006
                    MODx version: 0.9.5
                     */
                    
                    class simplegallery {
                    
                    	/* Declaring private variables */
                    	var $pathToImgFolder;
                    	var $imgtype;
                    	var $galleryName;
                    	var $imglist;
                    
                    	/* Constructor class */
                    	function simplegallery() {
                    		global $modx, $_lang;
                    		$this->imglist = array();
                    	}
                    
                    	/* List of images */	
                    	function getImagesList() {
                    		global $modx, $_lang;
                    
                       		if (is_dir($this->pathToImgFolder)) {
                           		if ($this->imglist = glob($this->pathToImgFolder.$this->imgtype,GLOB_BRACE)) {
                           			return $this->imglist;
                           		} else die ($_lang['cannot_open_dir'].$this->pathToImgFolder.$this->imgtype);
                       		} else die ($_lang['path_not_directory'].$this->pathToImgFolder);
                    }
                    }
                    ?>


                    Le code simplegallery.inc.php :

                    <?php
                    /*
                    Snippet name: simplegallery
                    Short Desc: builds gallery from a folder
                    Version: beta1
                    Thank's to : Heliotrope and doze
                    Date: October 16, 2006
                    MODx version: 0.9.5
                     */
                    
                    global $modx;
                    $output='<div id="images">';
                    
                    /* General setting */
                    $baseImgPath = $modx->config['base_path'].'assets/images/';
                    $imgtype = '/*{jpg,jpeg,gif,png}';
                    $simplegallery_version = "beta 0.1";
                    $quality = '75';
                    $max_thumb_size ='240';
                    
                    
                    /* Get Language */
                    $language = (isset($language))? $language : "english";
                    
                    /* Include files */
                    $files['language'] = $snipPath."lang/$language.inc.php";
                    $files['functions'] = $snipPath."class/simplegallery.class.php";
                    
                    foreach ($files as $filename => $filevalue) {
                    	if (file_exists($filevalue) && $filename != "language") {
                    		include_once($filevalue);
                    	} elseif(file_exists($filevalue) &&  $filename == "language") {
                    		include($filevalue);
                    		$GLOBALS['_lang'] = $_lang;
                    	} elseif($filename == "language") {
                    		$output="Language file does not exist Please check: ".$filevalue;
                    		return $output;
                    	} else {
                    		$output=$_lang['error'].__LINE__.") ".$filevalue." ".$_lang['file_does_not_exist'];
                    		return $output;
                    	}
                    }
                    
                    
                    /* Begin the traitement */
                    $gal = null;
                    
                    if (class_exists('simplegallery')){
                    $gal = new simplegallery();
                    } else {
                    $output=$_lang['error'].__LINE__.") ".$filevalue." ".$_lang['invalid_class'];
                    return $output;
                    }
                    
                    /* Parameters */
                    $gal->galleryName = isset($galleryName) ? $galleryName : $_lang['gallery'];
                    $gal->pathToImgFolder = isset($pathToImg) ? $baseImgPath.$pathToImg : '';
                    $gal->imgtype = $imgtype;
                    
                    $gal->getImagesList();
                    
                    foreach($gal->imglist as $image){
                         $imagefull = preg_replace('`'.$gal->pathToImgFolder.'/(.+)`','$1',$image);
                         $imagename = preg_replace('`(.+)\..*`', '$1', $imagefull);
                    
                         //verification thumb et creation
                         $thumburl = $gal->pathToImgFolder.'/.thumb_'.$imagefull;
                         if (!file_exists($thumburl)) {
                         		include_once($snipPath.'class/Thumbnail.class.php');
                         		$thumb=new Thumbnail($image);
                         		$thumb->quality=$quality;
                         		$thumb->size_auto($max_thumb_size);
                         		$thumb->process();
                    			$thumb->save($thumburl);     		
                         }
                         $imginfo =  getimagesize($thumburl);
                         
                         $sizeiptc = getimagesize ($image, &$info);
                         $iptc = iptcparse($info["APP13"]);
                         $iptccaption = $iptc["2#120"][0];
                         $iptcheadline = $iptc["2#105"][0];
                          
                        $output .= '<a href="assets/images/'.$pathToImg.'/'.$imagefull.'" rel="lightboxmirmande" title="'.$iptccaption.'"><img src="assets/images/'.$pathToImg.'/.thumb_'.$imagefull.'" alt="'.$iptccaption.'" '.$imginfo[3].' />';
                        }       		
                    
                    $output .= '</div>';    
                    return $output;
                    ?>


                    Si quelqu’un veux m’aider à terminer ce serait sympa. je souhaite donc virer l’utilisation de thumbmail et peut être perfectionner le code car je suis pas un bon codeur.
                      • 30897
                      • 311 Posts
                      Merci pour vos réponses.

                      @Avander_be : Je parlais de démos de l’admin, car tu penses bien que j’ai déjà vu fonctionner MaxiGallery...

                      Je cherche vraiment la simplicité pour l’utilisateur final qui va mettre à jour le site, je vais lui faire une petite formation mais j’aimerai que ça reste très simple. Je pense que je vais m’orienter vers MaxiGallery avec DirectResize, ça évitera certaines manipulations.

                      Encore une petite question concernant MaxiGallery, si mes images sont affichés par exemple comme dans le code suivant, est-ce que je peux gérer ça avec un chunk ?:
                      <ul id="gallerie"> 
                       <li><a href="<img src="img/img_01.jpg" alt="Grande" />"><img src="img/img_01.jpg" alt="Petite" /><br /><span>Légende 1</span></a></li> 
                       <li><a href="<img src="img/img_01.jpg" alt="Grande" />"><img src="img/img_02.jpg" alt="Petite" /><br /><span>Légende 2</span></a></li> 
                       <li><a href="<img src="img/img_01.jpg" alt="Grande" />"><img src="img/img_03.jpg" alt="Petite" /><br /><span>Légende 3</span></a></li>
                      </ul> 
                        TylerD - In MODx we trust
                        [Derni