You are here

public function EntityReferenceDisplayItem::getPossibleOptions in Entity Reference Display 8

Returns an array of possible values with labels for display.

If the optional $account parameter is passed, then the array is filtered to values viewable by the account.

Parameters

\Drupal\Core\Session\AccountInterface $account: (optional) The user account for which to filter the possible options. If omitted, all possible options are returned.

Return value

array An array of possible options for the object that may be used in an Options widget, for example when existing data should be filtered. It may either be a flat array of option labels keyed by values, or a two-dimensional array of option groups (array of flat option arrays, keyed by option group label). Note that labels should NOT be sanitized.

Overrides OptionsProviderInterface::getPossibleOptions

2 calls to EntityReferenceDisplayItem::getPossibleOptions()
EntityReferenceDisplayItem::getPossibleValues in src/Plugin/Field/FieldType/EntityReferenceDisplayItem.php
Returns an array of possible values.
EntityReferenceDisplayItem::getSettableOptions in src/Plugin/Field/FieldType/EntityReferenceDisplayItem.php
Returns an array of settable values with labels for display.

File

src/Plugin/Field/FieldType/EntityReferenceDisplayItem.php, line 104

Class

EntityReferenceDisplayItem
Plugin implementation of the 'entity_reference_display' field type.

Namespace

Drupal\entity_reference_display\Plugin\Field\FieldType

Code

public function getPossibleOptions(AccountInterface $account = NULL) {

  // Get all display modes in alphabetical order.
  $display_modes = $this
    ->getAllDisplayModes();

  // Get displays to exclude from options.
  $exclude = $this
    ->getSetting('exclude');

  // Check if display modes should be negated.
  $negate = !empty($this
    ->getSetting('negate'));

  // Get options array.
  $options = [];
  foreach ($display_modes as $key => $display_mode) {

    // Only if display is not excluded or it's negated and included.
    if (!$negate && !isset($exclude[$key]) || $negate && isset($exclude[$key])) {

      // Add display between options.
      $options[$key] = $display_mode;
    }
  }
  return $options;
}