PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 24/06/2018 21:31:46

flipflip
Membre
Lieu : Lyon
Inscription : 19/05/2008
Messages : 768
Site Web

Image d'article, afficher une vignette

Bonjour,

J'ai fais une petite modification dans le fichier class.plx.show.php. Cette modification permet d'afficher la vignette d'une image d'article au lieu de la version en grande taille redimensionner par css.

[== PHP ==]
	public function artThumbnail($format='<img class="art_thumbnail" src="#img_url" alt="#img_alt" title="#img_title" />', $echo=true) {

		$imgUrl = $this->plxMotor->plxRecord_arts->f('thumbnail');
		if($imgUrl) {
			$row = str_replace('#img_url', $this->plxMotor->urlRewrite($imgUrl), $format);
			$row = str_replace('#img_title', plxUtils::strCheck($this->plxMotor->plxRecord_arts->f('thumbnail_title')), $row);
			$row = str_replace('#img_alt', $this->plxMotor->plxRecord_arts->f('thumbnail_alt'), $row);
			if($echo)
				echo $row;
			else
				return $row;
		} else {
			if(!$echo) return false;
		}

	}

Par

[== PHP ==]
	public function artThumbnail($format='<img class="art_thumbnail" src="#img_url" alt="#img_alt" title="#img_title" />', $echo=true, $thumb=true) {

		$imgUrl = $this->plxMotor->plxRecord_arts->f('thumbnail');
		if($imgUrl) {
			if($thumb) {
				$filename = parse_url($imgUrl);
				$filename = basename($filename['path']);
				$thumbfile = plxUtils::thumbName($filename);
				$imgUrl = str_replace($filename, $thumbfile, $imgUrl);
				$row = str_replace('#img_url', $this->plxMotor->urlRewrite($imgUrl), $format);
			} 
			$row = str_replace('#img_url', $this->plxMotor->urlRewrite($imgUrl), $format);
			$row = str_replace('#img_title', plxUtils::strCheck($this->plxMotor->plxRecord_arts->f('thumbnail_title')), $row);
			$row = str_replace('#img_alt', $this->plxMotor->plxRecord_arts->f('thumbnail_alt'), $row);
			if($echo)
				echo $row;
			else
				return $row;
		} else {
			if(!$echo) return false;
		}

	}

"J'ai un string dans l'array" | http://www.blogoflip.fr

Hors ligne

#2 25/06/2018 16:11:22

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 217
Site Web

Re : Image d'article, afficher une vignette

Bonjour,

Je pense que rajouter une option dans $format serait plus souple. En particulier, cela permettrait de zoomer la vignette de l'image.
Je suggère de modifler la fonction plxShow:::artThumbnail(..) comme suit :

[== PHP ==]
public function artThumbnail($format='<a href="#img_url"><img class="art_thumbnail" src="#img_thumb_url" alt="#img_alt" title="#img_title" /></a>', $echo=true) {

    $filename = trim($this->plxMotor->plxRecord_arts->f('thumbnail'));
    if(!empty($filename)) {
        $img_url = $this->plxMotor->urlRewrite($filename);
        $img_thumb = plxUtils::thumbName($filename);
        $replaces = array(
            '#img_url'      => $img_url,
            '#img_thumb_url'=> (file_exists(PLX_ROOT.$img_thumb)) ? $this->plxMotor->urlRewrite($img_thumb) : $img_url,
            '#img_title'    => plxUtils::strCheck($this->plxMotor->plxRecord_arts->f('thumbnail_title')),
            '#img_alt'      => $this->plxMotor->plxRecord_arts->f('thumbnail_alt')
        );
        if($echo)
            echo str_replace(array_keys($replaces), array_values($replaces), $format);
        else
            return str_replace(array_keys($replaces), array_values($replaces), $format);
    } elseif(!$echo)  {
            return false;
    }

}

On pourra également corriger la fonction plxUtils::thumbName(...) comme suit où l'expression régulière manque de précision :

[== PHP ==]
public static function thumbName($filename) {
    if(preg_match('/^(.*\.)(jpe?g|png|gif)$/iD', $filename, $matches)) {
        return $matches[1].'tb.'.$matches[2];
    } else {
        return $filename;
    }
}

Sur Github, pour éviter du travail supplémentaire à Stéphane, il vaut mieux faire un pull request au lieu d'ouvrir un nouvel issue

Dernière modification par bazooka07 (25/06/2018 16:37:36)

Hors ligne

#3 26/06/2018 10:04:43

flipflip
Membre
Lieu : Lyon
Inscription : 19/05/2008
Messages : 768
Site Web

Re : Image d'article, afficher une vignette

Sur Github, pour éviter du travail supplémentaire à Stéphane, il vaut mieux faire un pull request au lieu d'ouvrir un nouvel issue

Je suis d'accord mais je ne suis pas encore assez organisé et je maitrise pas assez bien github pour aller jusqu'au pull request wink


"J'ai un string dans l'array" | http://www.blogoflip.fr

Hors ligne

#4 26/06/2018 22:01:06

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 217
Site Web

Re : Image d'article, afficher une vignette

On a fait le pull request et il a été validé.

Si tu as déjà utilisé git, pour récupérer la mise à jour de la version en développement de PluXml :

[== bash ==]
git pull origin master

Sinon pour la 1ère fois

[== bash ==]
git clone https://github.com/pluxml/PluXml.git

Hors ligne

#5 26/06/2018 22:11:20

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : Image d'article, afficher une vignette

ou tu peux aller sur https://github.com/pluxml/PluXml
et utiliser le bouton vert "Clone or download" pour télécharger un .zip des sources de la version en cours de developpement de PluXml

@bazooka07: merci pour le pull request


Ancien responsable de PluXml  cool

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2019 PluXml.org, tous droits réservés