/** * {@inheritdoc} */ public function viewElements(FieldItemListInterface $items, $langcode) { $element = []; // As the Field API only applies the "field default value" to newly created // entities, we'll apply the default value for existing entities. if ($items->count() == 0) { $field_default_value = $items->getFieldDefinition()->getDefaultValue($items->getEntity()); $items->status = $field_default_value[0]['status']; } if ($items->status == 1 && $this->currentUser->hasPermission('view disqus comments')) { $element[] = ['#type' => 'disqus', '#url' => $items->getEntity()->toUrl('canonical', ['absolute' => TRUE])->toString(), '#title' => (string) $items->getEntity()->label(), '#identifier' => $items->identifier ?: "{$items->getEntity()->getEntityTypeId()}/{$items->getEntity()->id()}"]; } return $element; }
/** * {@inheritdoc} */ public function viewElements(FieldItemListInterface $items, $langcode) { $elements = array(); // Only collect allowed options if there are actually items to display. if ($items->count()) { $provider = $items->getFieldDefinition()->getFieldStorageDefinition()->getOptionsProvider('value', $items->getEntity()); // Flatten the possible options, to support opt groups. $options = OptGroup::flattenOptions($provider->getPossibleOptions()); foreach ($items as $delta => $item) { $value = $item->value; // If the stored value is in the current set of allowed values, display // the associated label, otherwise just display the raw value. $output = isset($options[$value]) ? $options[$value] : $value; $elements[$delta] = array('#markup' => $output, '#allowed_tags' => FieldFilteredMarkup::allowedTags()); } } return $elements; }