Création de vignette à la volée et le plugin ChampArt

J'utilise cette fonction trouvée sur le forum qui me permet de générer des vignettes de mes articles (en conjonction avec timthumb) que je mets soit dans le home(blog) ou dans une nouvelle page de catégorie .

<?php ob_start();
$plxShow->artContent($chapo=true);
$content = ob_get_clean();
$masque = '#<img.+src="(.+?)"#i'; preg_match($masque, $content, $resultats);
$extension = pathinfo($resultats[1], PATHINFO_EXTENSION); ?>

<?php if($extension == ('jpg'||'jpeg'||'png'||'gif')) : ?>

<a href="/<?php echo $resultats[1]; ?>" rel="prettyPhoto" title="<?php $plxShow->artTitle(''); ?>">
<img src="<?php $plxShow->template(); ?>/timthumb.php?src=<?php echo $resultats[1]; ?>&w=280&h=100&zc=1&q=100" alt="<?php $plxShow->artTitle(''); ?>" width="280px" height="100px" class="img_border" />
</a>

<?php else : ?>
<a href="<?php $plxShow->template(); ?>/images/nothumb.jpg" rel="prettyPhoto" title="<?php $plxShow->artTitle(''); ?>">
<img src="<?php $plxShow->template(); ?>/timthumb.php?src=<?php $plxShow->template(); ?>/images/nothumb.jpg&w=280&h=100&zc=1&q=100" alt="<?php $plxShow->artTitle(''); ?>" width="280px" height="100px" class="img_border" /></a>
</a>

<?php endif; ?>
Ca marche très bien, le seul hic c'est que l'image de référence doit etre contenue et afficher dans le corps de l'article ou dans la liste de la galerie (si galerie) sinon, nothumb.jpg .
On m'a donc conseillé d'utiliser "le plugin champart"avec quelque chose comme cela pour coder l'image

src="< ?php echo htmlentities("callHook('champArt', 'monchamp')); ?>"); ?>/timthumb.php?src=ton-image.jpg&q=100"
Le soucis là c'est que les vignettes ne sont pas créés dynamiquement: /timthumb.php?src=ton-image.jpg&q=100"


Avec ce plugin je pensais utiliser un champ image avec un upload mais il y a juste un champ EXTRA de créé.


Ma question est donc:
Comment "crée" t'on l'image dans le champ ? <a href... ou images/mon_image ?
et ensuite y a t'il un moyen de combiner les deux scripts pour générer les vignettes ou peut etre en appelant juste le "hook" champart ?

C'est des questions, mais en fait je suis paumé là, en meme temps cela pourrait faire un bon tuto car c'est une fonction très utile.

Réponses

  • cf l'aide du plugin :
    <?php
    $monchamp = $plxShow->callHook('champArt', 'monchamp_R');
    if($monchamp!="") {
    echo "il existe une valeur";
    echo $monchamp;
    }
    ?>
    

    ou
    <?php
    $monchamp = $plxShow->callHook('champArt', 'monchamp_R');
    if($monchamp!="") : ?>
    <img src="<?php echo $monchamp; ?>">
    <?php endif; ?>
    
  • Merci danielsan


    Mais qu'est-ce qu'on y met dans ce champ, dans le cas d'une image que l'on aura préalablement téléchargée via le gestionnaire d'images ?
  • si ton champ s'appelle "image", il faut remplacer "monchamp" par "image"
    dans ce champ image, il faut effectivement mettre l'adresse de l'image (data/images/mon-image.jpg)
    perso, j'insère l'image dans le contenu via le gestionnaire, puis je coupe/colle l'adresse dans le champ image
  • philou87philou87 Member
    janvier 2013 modifié
    Ok je vais commencer par là
    merci
    J'ai l'impression qu'il y a un soucis avec la version 1.17 de pluxml le champ n'apparait pas
    et on ne peut pas créer le champ dans l'admin du plugin
Connectez-vous ou Inscrivez-vous pour répondre.