Recuperer l'image du chapo

Bonsoir,`j'aimerais récupérer les images que je met dans les chapo des articles afin de les mettre dans ma sidebar qui affichent les derniers articles.

merci

Réponses

  • Je te donne le code du footer de mon portfolio (à adapter pour ton thème). ;)
    <?php
        // Réinitialisation de la boucle :
        $plxShow = new plxShow($plxMotor);
        $plxGlob_arts = plxGlob::getInstance(PLX_ROOT.$plxShow->plxMotor->aConf['racine_articles']);
        $plxShow->plxMotor->motif = '/^[0-9]{4}\.(home|[0-9]*|,)*\.[0-9]{3}\.[0-9]{12}\.[a-z0-9-]+\.xml$/';
        $plxShow->plxMotor->getArticles('all');
    ?>
        
    <?php while($plxShow->plxMotor->plxRecord_arts->loop() and $plxShow->plxMotor->plxRecord_arts->i < 5): # On boucle sur les articles ?>
    <?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['extension'] == ('jpg'||'jpeg'||'png'||'gif')) : ?>  
                <a href="<?php $plxShow->artUrl($type='relatif'); ?>" rel="bookmark" title="Lien vers <?php $plxShow->artTitle(''); ?>">        
    <img src="<?php $plxShow->template(); ?>/thumb.php?src=<?php echo $resultats[1]; ?>&w=25&h=25&zc=1&q=100" alt="<?php $plxShow->artTitle(''); ?>" width="25px" height="25px" class="img_border" 	 /></a>
    <?php else : ?>
                <a href="<?php $plxShow->artUrl($type='relatif'); ?>" rel="bookmark" title="Lien vers <?php $plxShow->artTitle(''); ?>">        
    <img src="<?php $plxShow->template(); ?>/thumb.php?src=<?php $plxShow->template(); ?>/images/defaut_timthumb.jpg&w=25&h=25&zc=1&q=100" alt="<?php $plxShow->artTitle(''); ?>" width="25px" height="25px" class="img_border" /></a>
    <?php endif; ?>
    
  • J'oubliais. :P
    Il te faut le script php TimThumb 2.0 : http://code.google.com/p/timthumb/ :)
  • merci pour ces infos
    l'idée est intéressante, mais je trouve ca un peu lourd pour à la fin n'afficher que l'image du chapo.
    je ais tout de même essayer comme tu le dis, mais comment on intègre tinthumb?
    merci
  • Ta réponse est dans le code ci-dessus.
    L'intégration (exécution & paramètres) se fait avec l'url de ton image.
    Il te faut un répertoire cache (chmod 777) à la racine ton thème. :)

    Ici par exemple, la taille est fixée dans l'url à 25x25px (w & h), le zoom est actif (z=1) et la qualité est au maximum (q=100). :)
    <img src="<?php $plxShow->template(); ?>/thumb.php?src=<?php echo $resultats[1]; ?>&w=25&h=25&zc=1&q=100" alt="<?php $plxShow->artTitle(''); ?>" width="25px" height="25px" />
    
    Pour d'info sur son usage, tu peux aller voir ici : http://www.darrenhoyt.com/2008/04/02/timthumb-php-script-released/

    N'hésites si tu as d'autres question. ;)
  • danielsandanielsan Member
    septembre 2011 modifié
    hello,

    intéressante la demande :P
    Pouvons-nous imaginer une alliance entre le plugin Ornament et la fonction lastArtList() ? ;)

    dans /core/lib/class.plx.show.php, rajouter la fonction lastArtListOrnament() ci-dessous:
    /**
    	 * Méthode qui affiche la liste des $max image ornament des derniers articles.
    	 *
    	 * @param	format	format du texte pour chaque article (variable: #art_url, #art_title, #art_ornament)
    	 * @param	max		nombre d'articles maximum
    	 * @return	stdout
    	 * @scope	global
    	 * @author	Florent MONTHEL, Stephane F
    	 * @adaptation	DanielSan pour l'alliance entre le plugin ornament et la fonction lastArtList();
    	 **/
    	public function lastArtListOrnament($format='<li><a href="#art_url" title="#art_title">#art_ornament</a></li>',$max=5) {
    
    		# Génération de notre motif
    		if(empty($cat_id))
    			$motif = '/^[0-9]{4}.[home|0-9,]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    		else
    			$motif = '/^[0-9]{4}.[home|0-9,]*'.str_pad($cat_id,3,'0',STR_PAD_LEFT).'[0-9,]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    
    		# Nouvel objet plxGlob et récupération des fichiers
    		$plxGlob_arts = clone $this->plxMotor->plxGlob_arts; 
    		if($aFiles = $plxGlob_arts->query($motif,'art','rsort',0,$max,'before')) {
    			foreach($aFiles as $v) { # On parcourt tous les fichiers
    				$art = $this->plxMotor->parseArticle(PLX_ROOT.$this->plxMotor->aConf['racine_articles'].$v);
    				$num = intval($art['numero']);
    				$ornament = htmlspecialchars_decode(plxUtils::strCheck($art['ornament']));
    				// adapter la lign ci-dessus selon la configuration du plugin ornament
    
    				# On modifie nos motifs
    				$row = str_replace('#art_id',$num,$format);
    				$row = str_replace('#art_url',$this->plxMotor->urlRewrite('?article'.$num.'/'.$art['url']),$row);
    				$row = str_replace('#art_ornament',$ornament,$row);
    				$row = str_replace('#art_title',plxUtils::strCheck($art['title']),$row);
    				# On genère notre ligne
    				if(!empty($ornament)){
    					echo $row;
    				}
    				
    			}
    		}
    	}
    
    adapter la ligne de formatage $ornament selon la config' de ornament ( je crois que je l'ai un peu "bidouillé" ... :P )

    puis appeler dans le template cette fonction de cette manière:
    <ul>
    	<?php $plxShow->lastArtListOrnament('<li><a href="#art_url" title="#art_title">#art_ornament</a></li>'); ?>
    </ul>
    
    ça marche de mon côté, et chez vous ?

    cordialement,

    _____
    D.San

    ps: vu qu'on touche au coeur, cette fonction sera effacée lors de la prochaine mise à jour,
    en faire une copie dans un coin ...
  • Salut Danielsan,
    ca marche de ton coté...c'est à dire?
    tu pourrais nous montrer ce que ca donne en image?
    car chez moi ca casse tout le site..page blanche! en local..
    j'ai du me gourer qq part.
    merci
  • danielsandanielsan Member
    février 2012 modifié
    Hello,

    c'est visible ici: ( lien supprimé, j'utilise maintenant le plugin ChampArt )

    Je pense que c'est normal que ça ne marche pas du premier coup,
    vu comment j'adapte Plume à mes envies :D

    Je ne sais pas comment faire refaire des fonctions de plxShow dans un plugin pour l'instant,
    alors je modifie un peu partout ( j'ai peur de la prochaine mise à jour :/ )

    Bon sinon pour y arriver:
    j'ai fait les seules modifs du Plugin ornament ( http://forum.pluxml.org/viewtopic.php?pid=20118#p20118 )
    et les trucs expliquées ci-dessus.

    ( fait une tite sauvegarde avant hein ? )

    Good luck

    _____
    D.San
  • DanielSan, tu ne redimensionnes pas tes images en sidebar avec timthumb ? :|
  • :D
    cette version n'est là que pour illustrer ce qu'on me demande ... :P
    Alors j'y vais au minimum.

    Le vrai site sera bientôt en ligne, avec pleins de trucs sympatoches dedans :D :D :D

    J'ai bientôt validé le teaser vidéo pour le lancement :cool:
    Me manque plus qu'à me jeter à l'eau !
  • J'ai hâte de voir ça; :D
  • Salut Danielsan,

    merci pour ce script.
    Je l'ai essayé et j'obtiens une erreur "Parse error: syntax error, unexpected T_PUBLIC in /homez.502/joliestr/www/core/lib/class.plx.show.php"
    Quelqu'un a une idée d'où ca vient ?

    Merci.
  • hum,


    ça date un peu ce topic vis à vis de la vitesse d'évolution de PluXml ...


    Si le sujet était "comment lier une image à un article", alors tu peux voir ce que te propose le lapin bleu avec son plugin ChampArt


    Cordialement,
    _____
    D.San
  • Ok merci. Joli plugin !

    Ce que je voudrais c'est afficher, dans une page statique, la liste des n derniers articles avec l'image associé (via champArt maintenant).
    Est-ce que tu souhaite que je crée une nouvelle discussion ? Que j'écrive une réponse dans le sujet consacré à champArt ?
    Merci.
Connectez-vous ou Inscrivez-vous pour répondre.