1.20.x common.inc backdrop_get_favicon()

Gets the file location and mime type for site favicon.

Falls back to the Backdrop favicon if not defined or theme provided.

Return value

(array) $favicon: Information about the favicon to use for the site. Keys include:

  • path: Relative path to the file to be used.
  • type: mime type for the icon being used.

File

includes/common.inc, line 314
Common functions that many Backdrop modules will need to reference.

Code

function backdrop_get_favicon() {
  $favicon = array(
    'path' => file_create_url('core/misc/favicon.ico'),
    'type' => 'image/vnd.microsoft.icon',
  );

  // Load the config and update, if we can.
  try {
    $site_config = config('system.core');

    if ($site_config->get('site_favicon_theme')) {
      global $theme;
      $theme_data = list_themes();
      $theme_object = $theme_data[$theme];
      $theme_favicon = dirname($theme_object->filename) . '/favicon.ico';
      if (file_exists($theme_favicon)) {
        $favicon['path'] = file_create_url($theme_favicon);
      }
    }
    elseif ($site_config->get('site_favicon_path')) {
      $favicon['path'] = file_create_url($site_config->get('site_favicon_path'));
      $favicon['type'] = $site_config->get('site_favicon_mimetype');
    }
  }
  catch (ConfigException $e) {
    // Use the default.
  }

  // Safety check to prevent user-provided javascript: URLs or the like.
  $favicon['path'] = backdrop_strip_dangerous_protocols($favicon['path']);

  return $favicon;
}