Aide pour imagecache

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Je dois être un peu neuneu, mais j'ai du mal à me servir d'imagecache. Ce que je souhaite faire : une vignette carrée de 100x100 découpée dans l'image.
Donc par exemple si mon image fait 500x1000, ça la ramène à une image de 100x200, puis ça prend un carré au milieu.
Cela doit évidemment marcher pour une image 1000x500 aussi.

Ça doit être tout con, mais bon...

Cordialement,

Philippe LAGARDE

Version de Drupal : 

j'ai developper une fonction qui permet de super bien gerer imagecache.

petit exemple, si ou tu souhaite utilisé image cache tu l'appelle de cette facon :
le 150x100 correspond au nom du preset que tu a entrée dans imagecache. (petite info les images sont generer a la volée)

$output .= ''.getIndexImg($node, '150x100').'';

et dans le fichier template.php tu colle cette fonction:

function getIndexImg($node = false, $preset = false, $attributes = NULL){
if(is_object($node)) {
$firstImg = $node->field_image[0];
$secondImg = $node->field_image[1];
if($preset && (isset($firstImg) || isset($secondImg))) {
if (isset($firstImg) && file_exists($firstImg['filepath'])) {
$infoFirstImg = getimagesize($firstImg['filepath']);
}
if (isset($secondImg) && file_exists($secondImg['filepath'])) {
$infoSecondImg = getimagesize($secondImg['filepath']);
}

if ($infoFirstImg[0] > $infoFirstImg[1]) {

if ($firstImg['alt'] != "") {
$alt = $firstImg['alt'];
}else{
$alt = $firstImg['title'];
}

return theme('imagecache', $preset, $firstImg['filepath'], $alt, $firstImg['title'], $attributes);
}else if ($secondImg != null && $infoSecondImg[0] > $infoSecondImg[1]) {

if ($secondImg['alt'] != "") {
$alt = $secondImg['alt'];
}else{
$alt = $secondImg['title'];
}

return theme('imagecache', $preset, $secondImg['filepath'], $alt, $secondImg['title'], $attributes);
}else{
return false;
}
}else{
return false;
}
}else {
return false;
}

}