class CommentFieldItemList in Drupal 8
Same name and namespace in other branches
- 9 core/modules/comment/src/CommentFieldItemList.php \Drupal\comment\CommentFieldItemList
Defines a item list class for comment fields.
Hierarchy
- class \Drupal\Core\TypedData\TypedData implements PluginInspectionInterface, TypedDataInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait- class \Drupal\Core\TypedData\Plugin\DataType\ItemList implements \Drupal\Core\TypedData\Plugin\DataType\IteratorAggregate, ListInterface- class \Drupal\Core\Field\FieldItemList implements FieldItemListInterface- class \Drupal\comment\CommentFieldItemList
 
 
- class \Drupal\Core\Field\FieldItemList implements FieldItemListInterface
 
- class \Drupal\Core\TypedData\Plugin\DataType\ItemList implements \Drupal\Core\TypedData\Plugin\DataType\IteratorAggregate, ListInterface
Expanded class hierarchy of CommentFieldItemList
File
- core/modules/ comment/ src/ CommentFieldItemList.php, line 12 
Namespace
Drupal\commentView source
class CommentFieldItemList extends FieldItemList {
  /**
   * {@inheritdoc}
   */
  public function get($index) {
    // The Field API only applies the "field default value" to newly created
    // entities. In the specific case of the "comment status", though, we need
    // this default value to be also applied for existing entities created
    // before the comment field was added, which have no value stored for the
    // field.
    if ($index == 0 && empty($this->list)) {
      $field_default_value = $this
        ->getFieldDefinition()
        ->getDefaultValue($this
        ->getEntity());
      return $this
        ->appendItem($field_default_value[0]);
    }
    return parent::get($index);
  }
  /**
   * {@inheritdoc}
   */
  public function offsetExists($offset) {
    // For consistency with what happens in get(), we force offsetExists() to
    // be TRUE for delta 0.
    if ($offset === 0) {
      return TRUE;
    }
    return parent::offsetExists($offset);
  }
  /**
   * {@inheritdoc}
   */
  public function access($operation = 'view', AccountInterface $account = NULL, $return_as_object = FALSE) {
    if ($operation === 'edit') {
      // Only users with administer comments permission can edit the comment
      // status field.
      $result = AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'administer comments');
      return $return_as_object ? $result : $result
        ->isAllowed();
    }
    if ($operation === 'view') {
      // Only users with "post comments" or "access comments" permission can
      // view the field value. The formatter,
      // Drupal\comment\Plugin\Field\FieldFormatter\CommentDefaultFormatter,
      // takes care of showing the thread and form based on individual
      // permissions, so if a user only has ‘post comments’ access, only the
      // form will be shown and not the comments.
      $result = AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'access comments')
        ->orIf(AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'post comments'));
      return $return_as_object ? $result : $result
        ->isAllowed();
    }
    return parent::access($operation, $account, $return_as_object);
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| CommentFieldItemList:: | public | function | Checks data value access. Overrides FieldItemList:: | |
| CommentFieldItemList:: | public | function | Returns the item at the specified position in this list. Overrides ItemList:: | |
| CommentFieldItemList:: | public | function | Overrides ItemList:: | |
| DependencySerializationTrait:: | protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| DependencySerializationTrait:: | protected | property | An array of service IDs keyed by property name used for serialization. | |
| DependencySerializationTrait:: | public | function | 1 | |
| DependencySerializationTrait:: | public | function | 2 | |
| FieldItemList:: | protected | property | The langcode of the field values held in the object. | |
| FieldItemList:: | protected | property | Numerically indexed array of field items. Overrides ItemList:: | 1 | 
| FieldItemList:: | public | function | Applies the default value. Overrides TypedData:: | |
| FieldItemList:: | protected | function | Helper for creating a list item object. Overrides ItemList:: | |
| FieldItemList:: | public | function | Contains the default access logic of this field. Overrides FieldItemListInterface:: | 3 | 
| FieldItemList:: | public | function | Returns a form for the default value input. Overrides FieldItemListInterface:: | 2 | 
| FieldItemList:: | public | function | Processes the submitted default value. Overrides FieldItemListInterface:: | 2 | 
| FieldItemList:: | public | function | Validates the submitted default value. Overrides FieldItemListInterface:: | 1 | 
| FieldItemList:: | protected | function | Returns the widget object used in default value form. | |
| FieldItemList:: | protected | function | Calls a method on each FieldItem. | |
| FieldItemList:: | public | function | Defines custom delete behavior for field values. Overrides FieldItemListInterface:: | 2 | 
| FieldItemList:: | public | function | Defines custom revision delete behavior for field values. Overrides FieldItemListInterface:: | 1 | 
| FieldItemList:: | public | function | Determines equality to another object implementing FieldItemListInterface. Overrides FieldItemListInterface:: | 2 | 
| FieldItemList:: | public | function | Filters out empty field items and re-numbers the item deltas. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Populates a specified number of field items with valid sample data. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Gets a list of validation constraints. Overrides TypedData:: | 1 | 
| FieldItemList:: | public | function | Gets the entity that field belongs to. Overrides FieldItemListInterface:: | 1 | 
| FieldItemList:: | public | function | Gets the field definition. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Gets the langcode of the field values held in the object. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Returns the value of a given field setting. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Returns the array of field settings. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Determines whether the field has relevant changes. Overrides FieldItemListInterface:: | 1 | 
| FieldItemList:: | public | function | Defines custom post-save behavior for field values. Overrides FieldItemListInterface:: | 1 | 
| FieldItemList:: | public | function | Defines custom presave behavior for field values. Overrides FieldItemListInterface:: | 1 | 
| FieldItemList:: | public static | function | Processes the default value before being applied. Overrides FieldItemListInterface:: | 2 | 
| FieldItemList:: | public | function | Sets the langcode of the field values held in the object. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Sets the data value. Overrides ItemList:: | |
| FieldItemList:: | public | function | Returns a renderable array for the field items. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Magic method: Gets a property value of to the first field item. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Magic method: Determines whether a property of the first field item is set. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Magic method: Sets a property value of the first field item. Overrides FieldItemListInterface:: | |
| FieldItemList:: | public | function | Magic method: Unsets a property of the first field item. Overrides FieldItemListInterface:: | |
| ItemList:: | public | function | Appends a new item to the list. Overrides ListInterface:: | |
| ItemList:: | public | function | ||
| ItemList:: | public | function | Filters the items in the list using a custom callback. Overrides ListInterface:: | |
| ItemList:: | public | function | Returns the first item in this list. Overrides ListInterface:: | |
| ItemList:: | public | function | Gets the definition of a contained item. Overrides ListInterface:: | |
| ItemList:: | public | function | ||
| ItemList:: | public | function | Returns a string representation of the data. Overrides TypedData:: | |
| ItemList:: | public | function | Gets the data value. Overrides TypedData:: | |
| ItemList:: | public | function | Determines whether the list contains any non-empty items. Overrides ListInterface:: | |
| ItemList:: | public | function | ||
| ItemList:: | public | function | ||
| ItemList:: | public | function | ||
| ItemList:: | public | function | React to changes to a child property or item. Overrides TraversableTypedDataInterface:: | 1 | 
| ItemList:: | protected | function | Renumbers the items in the list. | |
| ItemList:: | public | function | Removes the item at the specified position. Overrides ListInterface:: | |
| ItemList:: | public | function | Sets the value of the item at a given position in the list. Overrides ListInterface:: | |
| ItemList:: | public | function | Magic method: Implements a deep clone. | |
| StringTranslationTrait:: | protected | property | The string translation service. | 1 | 
| StringTranslationTrait:: | protected | function | Formats a string containing a count of items. | |
| StringTranslationTrait:: | protected | function | Returns the number of plurals supported by a given language. | |
| StringTranslationTrait:: | protected | function | Gets the string translation service. | |
| StringTranslationTrait:: | public | function | Sets the string translation service to use. | 2 | 
| StringTranslationTrait:: | protected | function | Translates a string to the current language or to a given language. | |
| TypedData:: | protected | property | The data definition. | 1 | 
| TypedData:: | protected | property | The property name. | |
| TypedData:: | protected | property | The parent typed data object. | |
| TypedData:: | public static | function | Constructs a TypedData object given its definition and context. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Gets the data definition. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Returns the name of a property or item. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Returns the parent data structure; i.e. either complex data or a list. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | |
| TypedData:: | public | function | Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | |
| TypedData:: | public | function | Returns the property path of the data. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Returns the root of the typed data tree. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Sets the context of a property or item via a context aware parent. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Validates the currently set data value. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Constructs a TypedData object given its definition and context. | 3 | 
| TypedDataTrait:: | protected | property | The typed data manager used for creating the data types. | |
| TypedDataTrait:: | public | function | Gets the typed data manager. | 2 | 
| TypedDataTrait:: | public | function | Sets the typed data manager. | 2 | 
