unifier la taille des photos dans l'article

Si vous avez une idée pour une future fonctionnalité

par ahppv » Ven 20 Mai 2011 22:49

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
ahppv
 
Messages: 32
Inscription: Mer 23 Mar 2011 17:53

par steevo » Mar 24 Mai 2011 23:34

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 de l’utilisateur
steevo
Administrateur du site
 
Messages: 330
Inscription: Jeu 17 Déc 2009 22:59

par steevo » Mer 25 Mai 2011 18:44

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.
Avatar de l’utilisateur
steevo
Administrateur du site
 
Messages: 330
Inscription: Jeu 17 Déc 2009 22:59

par ahppv » Ven 27 Mai 2011 11:44

bonjour

toujours aussi rapide et efficace !
merci !
ahppv
 
Messages: 32
Inscription: Mer 23 Mar 2011 17:53

par dirk66 » Dim 29 Déc 2013 17:52

Sadly this only works with joomla 1.5
I would really want a solution for this for joomla 2
dirk66
 
Messages: 2
Inscription: Mer 27 Nov 2013 10:52

par steevo » Mer 8 Jan 2014 23:20

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
Avatar de l’utilisateur
steevo
Administrateur du site
 
Messages: 330
Inscription: Jeu 17 Déc 2009 22:59

par dirk66 » Ven 10 Jan 2014 10:02

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
dirk66
 
Messages: 2
Inscription: Mer 27 Nov 2013 10:52

par steevo » Ven 10 Jan 2014 11:35

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" />';
Avatar de l’utilisateur
steevo
Administrateur du site
 
Messages: 330
Inscription: Jeu 17 Déc 2009 22:59


Retourner vers Demande de fonctionnalité

cron

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité