Gestion des images

De Typo3 CMS / Documentation Typo3 / Support Typo3.

Sommaire

Attention, il est désormais préférable de retailler les images en utilisant la méthode décrite à la page : Traitement des marqueurs dans les extensions

Ouverture d'une image en click-enlarge

Exemple de code php permettant d'afficher un texte sur lequel un lien ouvre une image en pop-up. Ce code génère un lien sur le texte "ZOOM".

$myimg = 'uploads/tx_myExt/'.$data['image'];      // Image utilisée
 
   $imgconf['file'] = $myimg;        
 
   $imgconf['imageLinkWrap'] = '1';                       
   $imgconf['enable'] = '1';                                      // On active la fonction imageLinkWrap 
   $imgconf['wrap'] = '<a href="javascript:close();"> | </a>';    // Un clic sur l'image fermera la pop-up
   $imgconf['bodyTag'] = '<body style="background:#fff";>';           
   $imgconf['width'] = '600';                                     // Largeur de la pop-up
   $imgconf['height'] = '600';                                    // Hauteur de la pop-up
   $imgconf['JSwindow'] = '1';                                    // L'image est ouverte dans une nouvelle fenêtre
   $imgconf['JSwindow.']['newWindow'] = '1';                      // Chaque image peut être ouverte dans une fenêtre différente
   $imgconf['JSwindow.']['expand'] = '10,10';                     // On peut éventuellement ajouter une bordure autour de l'image
 
   $marker['###IMAGE###'] = $this->cObj->imageLinkWrap('ZOOM',$myimg,$imgconf);

Pour plus d'information sur les paramétrage possible du imageLinkWrap cf http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/5/3/

Petite fonction pour retailler une image

J'ai pris l'habitude d'utiliser la petite fonction "maison" ci-dessous pour retailler les images. Elle permet simple de retailler une image en lui spécifiant de plus le alt. Certainement à compléter avec l'ajout de paramètres supplémentaires.

Cf la TS REF :

IMAGE : http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/8/6/

imgResource : http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/5/2/

function resize_img($image, $alt, $maxH, $maxW)
   {
     $img['file'] = $image;
     $lConf['file.']['maxH']=$maxH;
     $lConf['file.']['maxW']=$maxW;
     $lConf['altText']=$alt;
     $lConf['emptyTitleHandling']='removeAttr';
 
     // Si on veut forcer une taille d'image sans conserver l'homothétie,
     // (par exemple toujours afficher une image carrée quelle que soit l'image d'origine) on utilise un "crop" sur l'image :
 
     $lConf['file.']['height']=$maxH.'c';
     $lConf['file.']['width']=$maxW.'c';
 
     return $this->cObj->cImage($img["file"], $lConf);        
   }

Retailler une image mais ne récupérer que le chemin vers le fichier

La fonction cImage au dessus retourne le tag <img> directement, il peut être cependant utile de ne récupérer que le chemin vers le fichier (attribut "src" de <img>)

$imgRessource = $this->cObj->getImgResource($img["file"],$lConf['file.']);		
 
    return $imgRessource[3];

la fonction getImgResource retourne un tableau avec les 2 premières entrées contenant la largeur et la hauteur. Le 3ème correspond à notre image retaillée, le 4ème à l'image d'origine.

Il est possible d'utiliser la fonction IMG_RESOURCE directement pour ne récupérer que le chemin de l'image retaillée

$lConf['file'] = $image;		
    $lConf['file.']['maxH']=$maxH;
    $lConf['file.']['maxW']=$maxW;
 
    return $this->cObj->IMG_RESOURCE( $lConf['file']);
Outils personnels

Formation Typo3 à Paris
Boite Oblady