X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fblazy%2Fsrc%2FBlazyFormatterManager.php;h=b1fe6501ec8d210f60412148a5c7107e824c8b73;hb=93ef30d42f68e55d11d97312531118bbcd4cf318;hp=de7b8ad188b591aafbafb66ab895df26124bb6b9;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/web/modules/contrib/blazy/src/BlazyFormatterManager.php b/web/modules/contrib/blazy/src/BlazyFormatterManager.php index de7b8ad18..b1fe6501e 100644 --- a/web/modules/contrib/blazy/src/BlazyFormatterManager.php +++ b/web/modules/contrib/blazy/src/BlazyFormatterManager.php @@ -16,14 +16,7 @@ class BlazyFormatterManager extends BlazyManager { * The items to prepare settings for. */ public function buildSettings(array &$build, $items) { - $settings = &$build['settings']; - - // Sniffs for Views to allow block__no_wrapper, views_no_wrapper, etc. - if (function_exists('views_get_current_view') && $view = views_get_current_view()) { - $settings['view_name'] = $view->storage->id(); - $settings['current_view_mode'] = $view->current_display; - } - + $settings = &$build['settings']; $count = $items->count(); $field = $items->getFieldDefinition(); $entity = $items->getEntity(); @@ -51,26 +44,23 @@ class BlazyFormatterManager extends BlazyManager { } } - $settings += [ - 'absolute_path' => $absolute_path, - 'bundle' => $bundle, - 'content_url' => $absolute_path, - 'count' => $count, - 'entity_id' => $entity_id, - 'entity_type_id' => $entity_type_id, - 'field_type' => $field_type, - 'field_name' => $field_name, - 'internal_path' => $internal_path, - 'target_type' => $target_type, - 'cache_metadata' => ['keys' => [$id, $count]], - ]; + $settings['breakpoints'] = isset($settings['breakpoints']) && empty($settings['responsive_image_style']) ? $settings['breakpoints'] : []; + $settings['bundle'] = $bundle; + $settings['cache_metadata'] = ['keys' => [$id, $count]]; + $settings['content_url'] = $settings['absolute_path'] = $absolute_path; + $settings['count'] = $count; + $settings['entity_id'] = $entity_id; + $settings['entity_type_id'] = $entity_type_id; + $settings['field_type'] = $field_type; + $settings['field_name'] = $field_name; + $settings['id'] = $id; + $settings['internal_path'] = $internal_path; + $settings['lightbox'] = ($switch && in_array($switch, $this->getLightboxes())) ? $switch : FALSE; + $settings['resimage'] = function_exists('responsive_image_get_image_dimensions'); + $settings['target_type'] = $target_type; unset($entity, $field); - $settings['id'] = $id; - $settings['lightbox'] = ($switch && in_array($switch, $this->getLightboxes())) ? $switch : FALSE; - $settings['breakpoints'] = isset($settings['breakpoints']) && empty($settings['responsive_image_style']) ? $settings['breakpoints'] : []; - // @todo: Enable after proper checks. // $settings = array_filter($settings); if (!empty($settings['vanilla'])) { @@ -83,7 +73,6 @@ class BlazyFormatterManager extends BlazyManager { } $settings['caption'] = empty($settings['caption']) ? [] : array_filter($settings['caption']); - $settings['resimage'] = function_exists('responsive_image_get_image_dimensions'); $settings['background'] = empty($settings['responsive_image_style']) && !empty($settings['background']); $resimage_lazy = $this->configLoad('responsive_image') && !empty($settings['responsive_image_style']); $settings['blazy'] = $resimage_lazy || !empty($settings['blazy']); @@ -109,7 +98,7 @@ class BlazyFormatterManager extends BlazyManager { if (!empty($settings['image_style']) && !$resimage_lazy) { if ($field_type == 'image' && $items[0]) { $settings['item'] = $items[0]; - $settings['uri'] = $items[0]->entity->getFileUri(); + $settings['uri'] = ($file = $items[0]->entity) && empty($items[0]->uri) ? $file->getFileUri() : $items[0]->uri; } if (!empty($settings['uri'])) { @@ -117,6 +106,9 @@ class BlazyFormatterManager extends BlazyManager { } } + // Add the entity to formatter cache tags. + $settings['cache_tags'][] = $settings['entity_type_id'] . ':' . $settings['entity_id']; + $this->getModuleHandler()->alter($namespace . '_settings', $build, $items); }