Gestion des images
De Typo3 CMS / Documentation Typo3 / Support Typo3.
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']);
