méthode artThumbnail()

danielsandanielsan Member
janvier 2016 modifié dans Discussions générales
bonjour,

PluXml a la possibilité de générer des miniatures pour les images.
Serait-il intéressant de rajouter un paramètre dans la méthode artThumbnail pour afficher ou non la miniature si elle existe ?
[== PHP ==]
public function artThumbnail($format='<div class="#div_class"><img src="#img_url" alt="#img_alt" /></div>', $thumbnail=false)
avec
true : pour l'affichage de la miniature correspondante à l'image ciblée, si elle existe
false : pour l'affichage de l'image ciblée

qu'en pensez-vous ?

edit : l'utilité est de pouvoir afficher la miniature dans les templates qui listent les articles (catégorie/tag/archive/home), ça augmente la rapidité d'affichage
et d'afficher l'image que sur la page de l'article
ou de créer un lien avec la miniature sur une popup qui affiche l'image en grand ...

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    ce que tu proposes la fonction artThumbnail() le fait déjà. Si l'article n'a pas d'image d'accroche, il n'y a rien d'affiché
    je comprends peut etre mal ta demande...

    pour rappel : cette fonction artThumbnail ne sera dispo qu'à partir de la v 5.5 de PluXml

    edit: ok je viens de lire ton edit et je pense avoir mieux compris ta demande :)

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • la fonction permettrait d'afficher l'image "data/medias/mon-image.jpg" si le paramètre de artThumbnail est à false
    ou "data/medias/.thumbs/mon-image.jpg" si le paramètre de artThumbnail est à true (ou un truc du genre :D )
    sachant qu'on renseigne dans le champ thumbnail de l'article "data/medias/mon-image.jpg"

    par contre faut gérer le fait qu'on a généré ou pas une miniature.

    c'est mieux expliqué là ? :P
  • un peu comme la méthode d'utiliser le chapo s'il existe mais de tomber sur le début de corps de texte sinon
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    janvier 2016 modifié
    @danielsan,

    Il faut aller plus loin dans ton raisonnement.

    D'abord, on vérifie que l'image n'est pas une image d'accroche n'est pas une miniature avec un nom finissant par ".tb.jpg".
    Dans ce cas la valeur de $thumbnail est sans intérêt.

    On a aucune possibilité d'action sur la taille des vignettes placées dans le dossier data/medias/.thumbs/
    Par contre, on peut agir sur les dimensions des miniatures dans le tableau des médias.
    Donc :
    si l'image d'accroche est data/medias/mon_image.jpg et $thumbnail==true,
    alors on vérifie si le fichier data/medias/mon_image.tb.jpg existe et on fait la substitution dans la chaine de format pour #img_url,
    sinon on vérifie s'il existe le fichier data/medias/.thumbs/mon_image.jpg, sinon on la crée et on remplace #img_url par ce lien.

    Pour la fonction artThumbnail, cela serait bien de prévoir un paramètre #img_title pour afficher un titre quand on survole l'image avec la souris.

    A++
  • danielsandanielsan Member
    janvier 2016 modifié
    la taille des miniatures générées se règle en admin mais on peut très bien utiliser la fonction pour générer la miniature à la volée si elle n'est pas présente.

    j'imagine bien que la réflexion est plus poussée que ma simple suggestion ... ;)

    voici comment je l'utilise actuellement, je suis sur un template jQuery Mobile.
    code pour afficher la "miniature" (enfin, j'aurai aimé la miniature)
    [== Indéfini ==]
    <?php
    $format = '
    <a href="#thumbnail-'.$plxShow->artId().'" data-rel="popup" data-position-to="window" data-transition="fade" title="Cliquer pour agrandir '.$title.'">
    	<img itemprop="image" class="thumbnail art_thumbnail" src="#img_url" alt="'.$title.'" />
    </a>';
    $plxShow->artThumbnail($format); ?>
    

    code qui crée la popup, ouverte sur le click du dessus :
    [== PHP ==]
    <!-- popups -->
    <?php
    $format = '<div data-role="popup" id="thumbnail-'.$plxShow->artId().'" data-overlay-theme="b" data-theme="a" data-corners="false">
    	<a href="#" data-rel="back" class="ui-btn ui-corner-all ui-shadow ui-btn-a ui-icon-delete ui-btn-icon-notext ui-btn-right">Fermer</a>
    	<img itemprop="image" src="#img_url" alt="'.$title.'" />
    </div>';
    $plxShow->artThumbnail($format); ?>
    

    donc dans le premier cas, un paramètre $thumb==true m'afficherai la miniature et dans le second $thumb==false affiche l'image
  • danielsandanielsan Member
    janvier 2016 modifié
    vu que j'ai mis ma version en développement du site en question ici daniel-rolland.com/pluxml/pizza_ce_soir/
    on voit sur la liste des pizzas les petites images (c'est là que je cherche à afficher les miniatures)
    lorsqu'on rentre dans la fiche d'une pizza, si on clique sur l'image (normalement la miniature) ça ouvre une popup de l'image ciblée du champ thumbnail
    miniature que j'aimerai retrouver aussi dans le bloc "à découvrir également" en bas des pages d'article
Connectez-vous ou Inscrivez-vous pour répondre.