You are here

function media_embed_formatter_options in Media WYSIWYG Embed 7

Returns an option list of suitable formatters.

Parameters

object $file: File object.

array $settings: (optional) Formatter settings.

Return value

array An array of formatter options.

3 calls to media_embed_formatter_options()
media_embed_formatted in ./media_embed.module
Returns formatted media item markup.
media_embed_formatted_callback in ./media_embed.module
Menu callback for formatted media.
media_embed_format_selector_form in includes/media_embed.pages.inc
Form constructor for format selector form.

File

./media_embed.module, line 484

Code

function media_embed_formatter_options($file, $settings = array()) {
  $options = array();
  $formatters = file_info_formatter_types();
  foreach ($formatters as $name => $formatter) {
    $mime_types = isset($formatter['mime types']) ? $formatter['mime types'] : array();
    $mime_type_match = !$mime_types || file_entity_match_mimetypes($mime_types, $file->filemime);
    $callback = isset($formatter['view callback']) ? $formatter['view callback'] : '';
    if (empty($formatter['hidden']) && $mime_type_match && function_exists($callback)) {
      $display = array(
        'type' => $name,
        'settings' => media_embed_formatter_settings($formatter, $settings),
      );
      $langcode = $GLOBALS['language_content']->language;
      if ($callback($file, $display, $langcode)) {
        $options[$name] = $formatter['label'];
      }
    }
  }
  asort($options);
  $_file = clone $file;
  drupal_alter('media_embed_formatter_options', $options, $_file);
  return array_intersect_key($options, $formatters);
}