filter_formats(AccountInterface $account = NULL)
Retrieves a list of enabled text formats, ordered by weight.
Parameters
\Drupal\Core\Session\AccountInterface|null $account: (optional) If provided, only those formats that are allowed for this user account will be returned. All enabled formats will be returned otherwise. Defaults to NULL.
Return value
\Drupal\filter\FilterFormatInterface[] An array of text format objects, keyed by the format ID and ordered by weight.
See also
File
- core/modules/filter/filter.module, line 95
- Framework for handling the filtering of content.
Code
function filter_formats(AccountInterface $account = NULL) { $formats = &drupal_static(__FUNCTION__, array()); // All available formats are cached for performance. if (!isset($formats['all'])) { $language_interface = \Drupal::languageManager()->getCurrentLanguage(); if ($cache = \Drupal::cache()->get("filter_formats:{$language_interface->getId()}")) { $formats['all'] = $cache->data; } else { $formats['all'] = \Drupal::entityManager()->getStorage('filter_format')->loadByProperties(array('status' => TRUE)); uasort($formats['all'], 'Drupal\Core\Config\Entity\ConfigEntityBase::sort'); \Drupal::cache()->set("filter_formats:{$language_interface->getId()}", $formats['all'], Cache::PERMANENT, \Drupal::entityManager()->getDefinition('filter_format')->getListCacheTags()); } } // If no user was specified, return all formats. if (!isset($account)) { return $formats['all']; } // Build a list of user-specific formats. $account_id = $account->id(); if (!isset($formats['user'][$account_id])) { $formats['user'][$account_id] = array(); foreach ($formats['all'] as $format) { if ($format->access('use', $account)) { $formats['user'][$account_id][$format->id()] = $format; } } } return $formats['user'][$account_id]; }
Please login to continue.