# 2015-05-04 mes notes à http://jenny.bourdiol.org/content/technique-rwd-des-images-drupal-7-field-formatter-class function get_srcset_for_image($source) { $srcset = array(); //on supprime l'itok de l'url source $arr = explode("?", $source); $source = $arr[0]; //on supprime également la base de l'url $source = str_replace($GLOBALS['base_url'] .'/', '', $source); //le nom du fichier source (sans path) $file_name = drupal_basename($source); //la base de l'url de destination $dest_basepath = variable_get('file_public_path', conf_path() . '/files'); //4 styles en exemples : //Style thumbnail (160px) $dest = $dest_basepath . '/styles/thumbnail/public/' . $file_name; if (generate_image($source, $dest, 'thumbnail')) { $srcset[0]['uri']=$dest; $srcset[0]['width']="160w"; $srcset[0]['multiplier']="1x"; } //Style small (320px) $dest = $dest_basepath . '/styles/small/public/' . $file_name; if (generate_image($source, $dest, 'small')) { $srcset[1]['uri']=$dest; $srcset[1]['width']="320w"; $srcset[1]['multiplier']="1x"; } //Style medium (480px) $dest = $dest_basepath . '/styles/medium/public/' . $file_name; if (generate_image($source, $dest, 'medium')) { $srcset[2]['uri']=$dest; $srcset[2]['width']="640w"; $srcset[2]['multiplier']="1x"; } //Style large (1024px) $dest = $dest_basepath . '/styles/large/public/' . $file_name; if (generate_image($source, $dest, 'large')) { $srcset[3]['uri']=$dest; $srcset[3]['width']="1024w"; $srcset[3]['multiplier']="1x"; } //A partir du tableau créé, on génère et retourne l'attribut srcset if (!empty($srcset)) { $srcsetitems = array(); foreach ($srcset as $src) { // URI is mandatory. $source = file_create_url($src['uri']); if (isset($src['width']) && !empty($src['width'])) { $source .= ' ' . $src['width']; } elseif (isset($src['multiplier']) && !empty($src['multiplier'])) { $source .= ' ' . $src['multiplier']; } $srcsetitems[] = $source; } return implode(', ', $srcsetitems); } return false; }