class CommentFieldItemList

Same name in other branches
  1. 9 core/modules/comment/src/CommentFieldItemList.php \Drupal\comment\CommentFieldItemList
  2. 8.9.x core/modules/comment/src/CommentFieldItemList.php \Drupal\comment\CommentFieldItemList
  3. 11.x core/modules/comment/src/CommentFieldItemList.php \Drupal\comment\CommentFieldItemList

Defines an item list class for comment fields.

Hierarchy

Expanded class hierarchy of CommentFieldItemList

1 file declares its use of CommentFieldItemList
CommentItem.php in core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php

File

core/modules/comment/src/CommentFieldItemList.php, line 12

Namespace

Drupal\comment
View 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

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
CommentFieldItemList::access public function Checks data value access. Overrides FieldItemList::access
CommentFieldItemList::get public function Returns the item at the specified position in this list. Overrides ItemList::get
CommentFieldItemList::offsetExists public function Overrides ItemList::offsetExists
DependencySerializationTrait::$_entityStorages protected property
DependencySerializationTrait::$_serviceIds protected property
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FieldItemList::$langcode protected property The langcode of the field values held in the object.
FieldItemList::$list protected property Numerically indexed array of field items. Overrides ItemList::$list 1
FieldItemList::applyDefaultValue public function Overrides TypedData::applyDefaultValue
FieldItemList::createItem protected function Overrides ItemList::createItem
FieldItemList::defaultAccess public function Overrides FieldItemListInterface::defaultAccess 3
FieldItemList::defaultValuesForm public function Overrides FieldItemListInterface::defaultValuesForm 2
FieldItemList::defaultValuesFormSubmit public function Overrides FieldItemListInterface::defaultValuesFormSubmit 2
FieldItemList::defaultValuesFormValidate public function Overrides FieldItemListInterface::defaultValuesFormValidate 2
FieldItemList::defaultValueWidget protected function Returns the widget object used in default value form.
FieldItemList::delegateMethod protected function Calls a method on each FieldItem.
FieldItemList::delete public function Overrides FieldItemListInterface::delete 2
FieldItemList::deleteRevision public function Overrides FieldItemListInterface::deleteRevision 1
FieldItemList::equals public function Overrides FieldItemListInterface::equals 2
FieldItemList::filterEmptyItems public function Overrides FieldItemListInterface::filterEmptyItems
FieldItemList::generateSampleItems public function Overrides FieldItemListInterface::generateSampleItems 1
FieldItemList::getConstraints public function Overrides TypedData::getConstraints 1
FieldItemList::getEntity public function Overrides FieldItemListInterface::getEntity 1
FieldItemList::getFieldDefinition public function Overrides FieldItemListInterface::getFieldDefinition
FieldItemList::getLangcode public function Overrides FieldItemListInterface::getLangcode
FieldItemList::getSetting public function Overrides FieldItemListInterface::getSetting
FieldItemList::getSettings public function Overrides FieldItemListInterface::getSettings
FieldItemList::hasAffectingChanges public function Overrides FieldItemListInterface::hasAffectingChanges 1
FieldItemList::postSave public function Overrides FieldItemListInterface::postSave 1
FieldItemList::preSave public function Overrides FieldItemListInterface::preSave 1
FieldItemList::processDefaultValue public static function Overrides FieldItemListInterface::processDefaultValue 2
FieldItemList::setLangcode public function Overrides FieldItemListInterface::setLangcode
FieldItemList::setValue public function Overrides ItemList::setValue
FieldItemList::view public function Overrides FieldItemListInterface::view
FieldItemList::__get public function Overrides FieldItemListInterface::__get
FieldItemList::__isset public function Overrides FieldItemListInterface::__isset
FieldItemList::__set public function Overrides FieldItemListInterface::__set
FieldItemList::__unset public function Overrides FieldItemListInterface::__unset
ItemList::appendItem public function Overrides ListInterface::appendItem
ItemList::count public function
ItemList::filter public function Overrides ListInterface::filter
ItemList::first public function Overrides ListInterface::first
ItemList::getItemDefinition public function Overrides ListInterface::getItemDefinition
ItemList::getIterator public function
ItemList::getString public function Overrides TypedData::getString
ItemList::getValue public function Overrides TypedData::getValue
ItemList::isEmpty public function Overrides ListInterface::isEmpty
ItemList::offsetGet public function
ItemList::offsetSet public function
ItemList::offsetUnset public function
ItemList::onChange public function Overrides TraversableTypedDataInterface::onChange 1
ItemList::rekey protected function Renumbers the items in the list.
ItemList::removeItem public function Overrides ListInterface::removeItem
ItemList::set public function Overrides ListInterface::set
ItemList::__clone public function Magic method: Implements a deep clone.
StringTranslationTrait::$stringTranslation protected property The string translation service. 3
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TypedData::$definition protected property The data definition. 1
TypedData::$name protected property The property name.
TypedData::$parent protected property The parent typed data object.
TypedData::createInstance public static function Overrides TypedDataInterface::createInstance
TypedData::getDataDefinition public function Overrides TypedDataInterface::getDataDefinition
TypedData::getName public function Overrides TypedDataInterface::getName
TypedData::getParent public function Overrides TypedDataInterface::getParent
TypedData::getPluginDefinition public function Overrides PluginInspectionInterface::getPluginDefinition
TypedData::getPluginId public function Overrides PluginInspectionInterface::getPluginId
TypedData::getPropertyPath public function Overrides TypedDataInterface::getPropertyPath
TypedData::getRoot public function Overrides TypedDataInterface::getRoot
TypedData::setContext public function Overrides TypedDataInterface::setContext
TypedData::validate public function Overrides TypedDataInterface::validate
TypedData::__construct public function Constructs a TypedData object given its definition and context. 4
TypedDataTrait::$typedDataManager protected property The typed data manager used for creating the data types.
TypedDataTrait::getTypedDataManager public function Gets the typed data manager. 2
TypedDataTrait::setTypedDataManager public function Sets the typed data manager. 2

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.