Utilisation du script Timthumb est-il possible ? (long)

2»

Réponses

  • En fait ça ne marche pas avec la version 5.1.6 car les erreurs sont masquées en production. La 5.1.7 étant en développement, tu les vois apparaître.

    Pour en revenir au fonctionnement du script, c'est normal que tu ne vois que la première image. La regex utilisée dit ceci : trouve moi tout ce qui, dans le code source, commence par <img et place le contenu de l'option src dans la variable $resultats.


    Ensuite le script n'utilise que l'index 1 de la variable $resultats (donc une seule image).


    Je ne trouve pas que timthumb soit pertinent. Il suffit de bien utiliser le chapo pour obtenir le même résultat. Cela évite d'alourdir le code et donc le rendu de la page.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour
    remplace la ligne
    <?php if($extension['extension'] == ('jpg'||'jpeg'||'png'||'gif')) : ?>
    
    par
    <?php if(in_array($extension['extension'], array('jpg','jpeg','png','gif'))) : ?>
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Bonjour Stéphane, ça ne marche toujours pas avec cette ligne.


    C'est donc ça la fameuse ligne dont parle Danielsan, non Jerry ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    @Wiksa: si tu ne fait pas la modif que je t'ai donné, il n'y aura aucune chance que cela fonctionne, car syntaxiquement c'est une erreur php que de mettre ('jpg'||'jpeg'||'png'||'gif'). ce test ne pourra jamais marché. Maintenant comme cela ne fonctionne toujours pas l'erreur est ailleurs.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Ce que j'ai posté initialement marchait très bien avec la 5.1.6, malgré la syntaxe. J'ai utilisé le code qui a été posté dans cette discussion. Avec le code initial ça marche sur la 5.1.7, mais j'ai ces messages d'erreur que je n'avais pas avec la 5.1.6. Ça serait bien d'avoir un code propre qui pourrait faire l'objet d'un tutoriel dans le wiki, Timthumb c'est quand même un fonctionnalité intéressante !
  • Stéphane a écrit:
    @Wiksa: si tu ne fait pas la modif que je t'ai donné, il n'y aura aucune chance que cela fonctionne, car syntaxiquement c'est une erreur php que de mettre ('jpg'||'jpeg'||'png'||'gif'). ce test ne pourra jamais marché. Maintenant comme cela ne fonctionne toujours pas l'erreur est ailleurs.

    Pourquoi dis-tu que c'est syntaxiquement une erreur ? Si elle existe, $extension est une string et non un array. On peut donc tester si elle est égale à jpg ou jpeg ou png ou gif.


    Je ne vois pas où est le problème.

    De plus, je viens de tester avec la version 5.1.7 et je n'ai pas d'erreur...
  • Wiksa a écrit:
    Merci Jerry, mais avec ces lignes de code les erreurs disparaissent, mais seule la l'image générique de Timthumb (defaut_timthumb.jpg) s'affiche alors que j'ai des images dans mes articles.


    Je pense qu'il y a une parenthèse en trop avant isset dans :
    $extension = (isset($resultats[1]) ? pathinfo($resultats[1], PATHINFO_EXTENSION) : '';
    


    EDIT : En fait c'est le if qui n'a pas l'air de fonctionner. Lorsque j’intervertis les 2 lignes qui affichent les images dans ma home, ce n'est plus l'image générique qui s'affiche, mais les miniatures des images de mes articles. En revanche, l'image générique ne s'affiche plus quand elle le doit.

    C'est bien la parenthèse avant le isset qui est en trop. Il faut la supprimer.
  • Je viens de retester le code donné ar Jerry sur une 5.1.7 toute propre et effectivement, comme je le disais, je n'ai plus d'erreur, mais j'ai juste la miniature générique de Timthumb qui s'affiche, pas les miniatures de mes articles.


    Voici le code :
    <?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
    			
    	<?php ob_start();	
    		$plxShow->artContent($chapo=true);
    		$content = ob_get_clean();
    		$masque = '#<img.+src="(.+?)"#i'; preg_match($masque, $content, $resultats);
    		$extension = isset($resultats[1]) ? pathinfo($resultats[1], PATHINFO_EXTENSION) : '';			
    	?>
    				
    	<h2><?php $plxShow->artTitle('link'); ?></h2>				
    	<p class="art-topinfos"><?php $plxShow->lang('WRITTEN_BY') ?> <?php $plxShow->artAuthor() ?> - <?php $plxShow->artDate('#num_day #month #num_year(4) #hour:#minute'); ?></p>
    				
    	<?php if(isset($extension['extension']) && $extension['extension'] == ('jpg'||'jpeg'||'png'||'gif')) : ?>
    				
    		<img src="<?php $plxShow->template(); ?>/timthumb.php?src=<?php $plxShow->racine() ?>/<?php echo $resultats[1]; ?>&amp;w=310&amp;h=190&amp;zc=1&amp;q=90" alt="<?php $plxShow->artTitle(''); ?>" style="height: 190px; width: 100%;" class="main-image" />
    				
    	<?php else : ?>
    				
    		<img src="<?php $plxShow->template(); ?>/timthumb.php?src=<?php $plxShow->template(); ?>/img/defaut_timthumb.jpg&amp;w=310&amp;h=190&amp;zc=1&amp;q=90" alt="<?php $plxShow->artTitle(''); ?>" style="height: 190px; width: 100%;" class="main-image" />
    				
    	<?php endif; ?>
    				
    	<div class="art-chapo"><?php $plxShow->artChapo(); ?></div>
    	<p class="art-infos"><?php $plxShow->lang('CLASSIFIED_IN') ?> : <?php $plxShow->artCat(); ?> - <?php $plxShow->lang('TAGS') ?> : <?php $plxShow->artTags(); ?> - <?php $plxShow->artNbCom(); ?></p>
    		
    <?php endwhile; ?>
    
  • timthumb n'affiche qu'une seule image (la première qu'il trouve) et la redimensionne pour avoir un affichage standardisé.

    Et il le fait pour chaque article. Je ne comprends plus trop ton problème...
  • J'ai une image présente dans mon article, mais il m'affiche l'image générique, celle qui s'affiche lorsqu'il n'y a pas d'image dans l'article alors qu'il y en a bien une.
  • Bon, en fait je viens de mettre le site sur mon serveur web et le code que j'ai posté au départ et celui de Jerry marchent sans messages d'erreur. Le problème viendrait alors d'EasyPHP puisque je testais le site en local. Bizarre ! En tout cas, merci beaucoup pour votre aide ! :)
  • Cette fonction permettrait elle de créer des sliders en HomePage ? Cela m'interresserait au plus haut point ^^
    En utilisant la partie scan des articles pour l'image ?. Ayant lu en diagonale je vais tout relire point par point.
  • pour un slider en homepage, suffit d'envoyer les images dans un dossiers "diapo-accueil" par exemple, puis d'insérer le diapo dans le bon template ... pas besoin d'usine à gaz
Connectez-vous ou Inscrivez-vous pour répondre.