function imageinfo_cache_get_styles_in_use in Imageinfo Cache 7.3
Generates all in use presets given a field instance and a file uri.
Parameters
array $instance_field: Field array from field_info_instances().
bool $run_alter: (optional) Run hook alter. Default is TRUE.
bool $use_cache: (optional) Use the database cache. Default is TRUE.
Return value
array An array of what styles are used in this field.
2 calls to imageinfo_cache_get_styles_in_use()
- imageinfo_cache_create_image_styles in ./
imageinfo_cache.inc - Generates all given presets given a file uri.
- imageinfo_cache_get_image_fields in ./
imageinfo_cache.inc - Get all fields that contain an image and what styles are used in it.
File
- ./
imageinfo_cache.inc, line 69 - Imageinfo Cache module. Helper functions.
Code
function imageinfo_cache_get_styles_in_use(array $instance_field, $run_alter = TRUE, $use_cache = TRUE) {
$return = array();
// Do nothing if the image module does not exist.
if (!module_exists('image')) {
return $return;
}
// Do nothing if no image styles are defined.
$image_styles = image_styles();
if (empty($image_styles) || !is_array($image_styles)) {
return $return;
}
// Get the presets used in display previews.
$styles = array();
foreach ($instance_field as $values) {
if (!is_array($values) || empty($values['settings'])) {
continue;
}
if (!empty($values['settings']['preview_image_style']) && !empty($image_styles[$values['settings']['preview_image_style']])) {
$styles[$values['settings']['preview_image_style']] = $image_styles[$values['settings']['preview_image_style']];
}
}
// Get the presets used in displays.
foreach ($instance_field['display'] as $values) {
if (!is_array($values) || empty($values['settings'])) {
continue;
}
// Core.
if (!empty($values['settings']['image_style']) && !empty($image_styles[$values['settings']['image_style']])) {
$styles[$values['settings']['image_style']] = $image_styles[$values['settings']['image_style']];
}
// Newer lightbox.
if (!empty($values['settings']['lightbox_style']) && !empty($image_styles[$values['settings']['lightbox_style']])) {
$styles[$values['settings']['lightbox_style']] = $image_styles[$values['settings']['lightbox_style']];
}
}
// Get the presets used in displays by older lightbox.
foreach ($instance_field['display'] as $values) {
if (!is_array($values) || empty($values['type']) || empty($values['module']) || $values['module'] !== 'lightbox2' || substr_count($values['type'], '__') != 3) {
continue;
}
$pieces = explode('__', $values['type']);
if (!empty($image_styles[$pieces[2]])) {
$styles[$pieces[2]] = $image_styles[$pieces[2]];
}
if (!empty($image_styles[$pieces[3]])) {
$styles[$pieces[3]] = $image_styles[$pieces[3]];
}
}
// Get the presets used in views.
$image_styles_in_views = imageinfo_cache_get_image_styles_in_views($instance_field['field_name'], FALSE, $use_cache);
foreach ($image_styles_in_views as $image_style_name) {
if (is_string($image_style_name) && !empty($image_styles[$image_style_name])) {
$styles[$image_style_name] = $image_styles[$image_style_name];
}
}
// Get the presets used in file entities.
foreach (imageinfo_cache_get_image_styles_in_file_entity($instance_field) as $image_style_name) {
if (!empty($image_styles[$image_style_name])) {
$styles[$image_style_name] = $image_styles[$image_style_name];
}
}
// Allow for the $styles to be altered.
if ($run_alter) {
// Run hook_imageinfo_cache_styles_alter().
drupal_alter('imageinfo_cache_styles', $styles, $instance_field['field_name']);
}
return $styles;
}