unifier la taille des photos dans l'article

Si vous avez une idée pour une future fonctionnalité
ahppv
Messages : 32
Enregistré le : mer. 23 mars 2011 17:53

unifier la taille des photos dans l'article

Message par ahppv »

toujours moi !

les photos sont retaillées à la meme dimension dans la liste des articles mais comment avoir la même fonction pour la fiche détaillée ?
je suis peut être un peu trop exigeante ?

merci pour le temps que tu nous consacres

corinne

Avatar du membre
steevo
Administrateur du site
Messages : 330
Enregistré le : jeu. 17 déc. 2009 22:59
Contact :

Re: unifier la taille des photos dans l'article

Message par steevo »

Non non pas trop exigeante. Il est vrai que ce serait beaucoup mieux.
Je vais voir s'il n'y a pas un moyen rapide de le faire. Si c'est le cas, je fournirai ici la solution. Sinon il faudra attendre une future version.

Avatar du membre
steevo
Administrateur du site
Messages : 330
Enregistré le : jeu. 17 déc. 2009 22:59
Contact :

Re: unifier la taille des photos dans l'article

Message par steevo »

Voici un petit hack en attendant une vraie gestion propre.
Je reprend juste le principe de la page listing.
Donc la taille s'appliquera à toutes les images. Il sera pour le moment impossible de spécifier une taille par image.

Dans le fichier views/item/view.html.php remplacer vers la ligne 481 :

Code : Tout sélectionner

case 5 : // champ image
				$imageInfos = explode('|',$this->item->$name_field);
				$imageUrl = $imageInfos[0];
				$imagePath = implode(DS,explode('/',$imageUrl));
				$imageName = JFile::getName(JPATH_SITE.DS.$imagePath);
				$imageDesc = $imageInfos[1] ? $imageInfos[1] : $imageName;
				$imageTitle = $imageInfos[2] ? $imageInfos[2] : $imageName;
				if ($this->item->$name_field == '')
				{
					// image de substitution
					$image=JPATH_SITE.DS.'components'.DS.'com_collector'.DS.'assets'.DS.'images'.DS.'camera.png'; // adresse de l'image
					$URLimage='./components/com_collector/assets/images/camera.png'; // adresse de l'image
				}
				else
				{
					$image=JPATH_SITE.DS.$imageInfos[0]; // adresse de l'image
					if (!file_exists($image)) {
						$image=JPATH_SITE.DS.'components'.DS.'com_collector'.DS.'assets'.DS.'images'.DS.'camera.png'; // adresse de l'image
						$URLimage='./components/com_collector/assets/images/camera.png'; // adresse de l'image
					} else {
						$URLimage='./'.$imageInfos[0]; // adresse de l'image
					}
				}

				return '<img alt="'.$imageDesc.'" title="'.$imageTitle.'" src="'.$URLimage.'" name="preview" />';
par

Code : Tout sélectionner

case 5 : // champ image
				$largeurmax = 400;
				$hauteurmax = 300;
				$imageInfos = explode('|',$this->item->$name_field);
				$imageUrl = $imageInfos[0];
				$imagePath = implode(DS,explode('/',$imageUrl));
				$imageName = JFile::getName(JPATH_SITE.DS.$imagePath);
				$imageDesc = $imageInfos[1] ? $imageInfos[1] : $imageName;
				$imageTitle = $imageInfos[2] ? $imageInfos[2] : $imageName;
				if ($this->item->$name_field == '')
				{
					// image de substitution
					$image=JPATH_SITE.DS.'components'.DS.'com_collector'.DS.'assets'.DS.'images'.DS.'camera.png'; // adresse de l'image
					$URLimage='./components/com_collector/assets/images/camera.png'; // adresse de l'image
				}
				else
				{
					$image=JPATH_SITE.DS.$imageInfos[0]; // adresse de l'image
					if (!file_exists($image)) {
						$image=JPATH_SITE.DS.'components'.DS.'com_collector'.DS.'assets'.DS.'images'.DS.'camera.png'; // adresse de l'image
						$URLimage='./components/com_collector/assets/images/camera.png'; // adresse de l'image
					} else {
						$URLimage='./'.$imageInfos[0]; // adresse de l'image
					}
				}

				$taille=getimagesize($image);
				$largeur=$taille[0];
				$hauteur=$taille[1];

				if ( ($hauteur/$hauteurmax) < ($largeur/$largeurmax) )
				{
					if ($largeur < $largeurmax)
					{
						$size= ' width="'.$largeur.'"';
					}
					else
					{
						$size= ' width="'.$largeurmax.'"';
					}
				}
				else
				{
					if ($hauteur < $hauteurmax)
					{
						$size= ' height="'.$hauteur.'"';
					}
					else
					{
						$size= ' height="'.$hauteurmax.'"';
					}
				}

				return '<img alt="'.$imageDesc.'" title="'.$imageTitle.'" src="'.$URLimage.'"  '.$size.' name="preview" />';
Au début du code, il faut modifier les valeurs

Code : Tout sélectionner

$largeurmax = 400;
$hauteurmax = 300;
afin de correspondre à ce que vous souhaitez.

ahppv
Messages : 32
Enregistré le : mer. 23 mars 2011 17:53

Re: unifier la taille des photos dans l'article

Message par ahppv »

bonjour

toujours aussi rapide et efficace !
merci !

dirk66
Messages : 2
Enregistré le : mer. 27 nov. 2013 10:52

Re: unifier la taille des photos dans l'article

Message par dirk66 »

Sadly this only works with joomla 1.5
I would really want a solution for this for joomla 2

Avatar du membre
steevo
Administrateur du site
Messages : 330
Enregistré le : jeu. 17 déc. 2009 22:59
Contact :

Re: unifier la taille des photos dans l'article

Message par steevo »

dirk66 a écrit :Sadly this only works with joomla 1.5
I would really want a solution for this for joomla 2
Hi,
I think that it's the same but the line is 535 instead of 481

dirk66
Messages : 2
Enregistré le : mer. 27 nov. 2013 10:52

Re: unifier la taille des photos dans l'article

Message par dirk66 »

No, because this code is only executed for joomla 1.5, because it is in the nesting that starts on line 24 with :

if(version_compare(JVERSION,'1.6.0','<')){
//Code pour Joomla! 1.5

and end on line 642

Avatar du membre
steevo
Administrateur du site
Messages : 330
Enregistré le : jeu. 17 déc. 2009 22:59
Contact :

Re: unifier la taille des photos dans l'article

Message par steevo »

You're right !

You have to modify /administrator/components/com_collector/classes/field/image/field.image.php

at the line 135

Code : Tout sélectionner

echo '<img alt="'.$imageDesc.'" title="'.$imageTitle.'" align="middle" border="1" src="'.$URLimage.'" />';
you just add your height and width values :

Code : Tout sélectionner

echo '<img alt="'.$imageDesc.'" title="'.$imageTitle.'" align="middle" border="1" src="'.$URLimage.'" height="?????px" width="??????px" />';

Répondre