class DefaultLanguageItem
Same name and namespace in other branches
- 10 core/modules/language/src/DefaultLanguageItem.php \Drupal\language\DefaultLanguageItem
- 11.x core/modules/language/src/DefaultLanguageItem.php \Drupal\language\DefaultLanguageItem
- 9 core/modules/language/src/DefaultLanguageItem.php \Drupal\language\DefaultLanguageItem
- 8.9.x core/modules/language/src/DefaultLanguageItem.php \Drupal\language\DefaultLanguageItem
Alternative plugin implementation of the 'language' field type.
Replaces the Core 'language' entity field type implementation, changes the default values used.
Required settings are:
- target_type: The entity type to reference.
Hierarchy
- class \Drupal\Core\TypedData\TypedData implements \Drupal\Core\TypedData\TypedDataInterface, \Drupal\Component\Plugin\PluginInspectionInterface uses \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\TypedData\TypedDataTrait
- class \Drupal\Core\TypedData\Plugin\DataType\Map implements \Drupal\Core\TypedData\Plugin\DataType\IteratorAggregate, \Drupal\Core\TypedData\ComplexDataInterface extends \Drupal\Core\TypedData\TypedData
- class \Drupal\Core\Field\FieldItemBase implements \Drupal\Core\Field\FieldItemInterface extends \Drupal\Core\TypedData\Plugin\DataType\Map
- class \Drupal\Core\Field\Plugin\Field\FieldType\LanguageItem implements \Drupal\Core\TypedData\OptionsProviderInterface extends \Drupal\Core\Field\FieldItemBase
- class \Drupal\language\DefaultLanguageItem extends \Drupal\Core\Field\Plugin\Field\FieldType\LanguageItem
- class \Drupal\Core\Field\Plugin\Field\FieldType\LanguageItem implements \Drupal\Core\TypedData\OptionsProviderInterface extends \Drupal\Core\Field\FieldItemBase
- class \Drupal\Core\Field\FieldItemBase implements \Drupal\Core\Field\FieldItemInterface extends \Drupal\Core\TypedData\Plugin\DataType\Map
- class \Drupal\Core\TypedData\Plugin\DataType\Map implements \Drupal\Core\TypedData\Plugin\DataType\IteratorAggregate, \Drupal\Core\TypedData\ComplexDataInterface extends \Drupal\Core\TypedData\TypedData
Expanded class hierarchy of DefaultLanguageItem
See also
\Drupal\language\Hook\LanguageHooks::fieldInfoAlter().
File
-
core/
modules/ language/ src/ DefaultLanguageItem.php, line 21
Namespace
Drupal\languageView source
class DefaultLanguageItem extends LanguageItem {
/**
* {@inheritdoc}
*/
public function applyDefaultValue($notify = TRUE) {
$langcode = $this->getDefaultLanguageCode($this->getEntity()
->getEntityTypeId(), $this->getEntity()
->bundle());
// Always notify otherwise default langcode will not be set correctly.
$this->setValue([
'value' => $langcode,
], TRUE);
return $this;
}
/**
* Provides default language code of a given an entity type and bundle.
*
* @param string $entity_type_id
* The entity type ID of the entity whose code of language is to be loaded.
* @param string $bundle
* The entity bundle of the entity whose code of language is to be loaded.
*
* @return string
* A string language code.
*/
protected function getDefaultLanguageCode(string $entity_type_id, string $bundle) : string {
$language_manager = \Drupal::languageManager();
$configuration = ContentLanguageSettings::loadByEntityTypeBundle($entity_type_id, $bundle);
$default_value = NULL;
$language_interface = $language_manager->getCurrentLanguage();
switch ($configuration->getDefaultLangcode()) {
case LanguageInterface::LANGCODE_SITE_DEFAULT:
$default_value = $language_manager->getDefaultLanguage()
->getId();
break;
case 'current_interface':
$default_value = $language_interface->getId();
break;
case 'authors_default':
$user = \Drupal::currentUser();
$language_code = $user->getPreferredLangcode();
if (!empty($language_code)) {
$default_value = $language_code;
}
else {
$default_value = $language_interface->getId();
}
break;
}
if ($default_value) {
return $default_value;
}
// If we still do not have a default value, just return the value stored in
// the configuration; it has to be an actual language code.
return $configuration->getDefaultLangcode();
}
/**
* Provides default language code of given entity.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity whose language code to be loaded.
*
* @return string
* A string language code.
*
* @deprecated in drupal:11.4.0 and is removed from drupal:13.0.0. There is no
* public replacement.
*
* @see https://www.drupal.org/node/3566774
*/
public function getDefaultLangcode(EntityInterface $entity) {
@trigger_error(__METHOD__ . '() is deprecated in drupal:11.4.0 and is removed from drupal:13.0.0. There is no public replacement. See https://www.drupal.org/node/3566774', E_USER_DEPRECATED);
return $this->getDefaultLanguageCode($entity->getEntityTypeId(), $entity->bundle());
}
}
Members
| Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
|---|---|---|---|---|---|---|
| DefaultLanguageItem::applyDefaultValue | public | function | Applies the default value. | Overrides LanguageItem::applyDefaultValue | ||
| DefaultLanguageItem::getDefaultLangcode | Deprecated | public | function | Provides default language code of given entity. | ||
| DefaultLanguageItem::getDefaultLanguageCode | protected | function | Provides default language code of a given an entity type and bundle. | |||
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | |||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | |||
| DependencySerializationTrait::__sleep | public | function | 2 | |||
| DependencySerializationTrait::__wakeup | public | function | 2 | |||
| FieldItemBase::calculateDependencies | public static | function | Calculates dependencies for field items. | Overrides FieldItemInterface::calculateDependencies | 3 | |
| FieldItemBase::calculateStorageDependencies | public static | function | Calculates dependencies for field items on the storage level. | Overrides FieldItemInterface::calculateStorageDependencies | 1 | |
| FieldItemBase::defaultFieldSettings | public static | function | Defines the field-level settings for this plugin. | Overrides FieldItemInterface::defaultFieldSettings | 7 | |
| FieldItemBase::defaultStorageSettings | public static | function | Defines the storage-level settings for this plugin. | Overrides FieldItemInterface::defaultStorageSettings | 10 | |
| FieldItemBase::delete | public | function | Defines custom delete behavior for field values. | Overrides FieldItemInterface::delete | 2 | |
| FieldItemBase::deleteRevision | public | function | Defines custom revision delete behavior for field values. | Overrides FieldItemInterface::deleteRevision | ||
| FieldItemBase::fieldSettingsForm | public | function | Returns a form for the field-level settings. | Overrides FieldItemInterface::fieldSettingsForm | 7 | |
| FieldItemBase::fieldSettingsFromConfigData | public static | function | Returns a settings array in the field type's canonical representation. | Overrides FieldItemInterface::fieldSettingsFromConfigData | 1 | |
| FieldItemBase::fieldSettingsSummary | public static | function | Returns a short summary of the field's field-level settings. | Overrides FieldItemInterface::fieldSettingsSummary | 1 | |
| FieldItemBase::fieldSettingsToConfigData | public static | function | Returns a settings array that can be stored as a configuration value. | Overrides FieldItemInterface::fieldSettingsToConfigData | 1 | |
| FieldItemBase::getEntity | public | function | Gets the entity that field belongs to. | Overrides FieldItemInterface::getEntity | ||
| FieldItemBase::getFieldDefinition | public | function | Gets the field definition. | Overrides FieldItemInterface::getFieldDefinition | ||
| FieldItemBase::getLangcode | public | function | Gets the langcode of the field values held in the object. | Overrides FieldItemInterface::getLangcode | ||
| FieldItemBase::getSetting | protected | function | Returns the value of a field setting. | |||
| FieldItemBase::getSettings | protected | function | Returns the array of field settings. | |||
| FieldItemBase::mainPropertyName | public static | function | Returns the name of the main property, if any. | Overrides FieldItemInterface::mainPropertyName | 8 | |
| FieldItemBase::onDependencyRemoval | public static | function | Informs the plugin that a dependency of the field will be deleted. | Overrides FieldItemInterface::onDependencyRemoval | 1 | |
| FieldItemBase::postSave | public | function | Defines custom post-save behavior for field values. | Overrides FieldItemInterface::postSave | 2 | |
| FieldItemBase::preSave | public | function | Defines custom presave behavior for field values. | Overrides FieldItemInterface::preSave | 7 | |
| FieldItemBase::storageSettingsForm | public | function | Returns a form for the storage-level settings. | Overrides FieldItemInterface::storageSettingsForm | 8 | |
| FieldItemBase::storageSettingsFromConfigData | public static | function | Returns a settings array in the field type's canonical representation. | Overrides FieldItemInterface::storageSettingsFromConfigData | 2 | |
| FieldItemBase::storageSettingsSummary | public static | function | Returns a short summary of the field's storage-level settings. | Overrides FieldItemInterface::storageSettingsSummary | 1 | |
| FieldItemBase::storageSettingsToConfigData | public static | function | Returns a settings array that can be stored as a configuration value. | Overrides FieldItemInterface::storageSettingsToConfigData | 2 | |
| FieldItemBase::view | public | function | Returns a renderable array for a single field item. | Overrides FieldItemInterface::view | ||
| FieldItemBase::writePropertyValue | protected | function | Different to the parent Map class, we avoid creating property objects as far as possible in order to optimize performance. Thus we just update $this->values if no property object has been created yet. |
Overrides Map::writePropertyValue | ||
| FieldItemBase::__construct | public | function | Constructs a TypedData object given its definition and context. | Overrides TypedData::__construct | 3 | |
| FieldItemBase::__get | public | function | Magic method: Gets a property value. | Overrides FieldItemInterface::__get | 3 | |
| FieldItemBase::__isset | public | function | Magic method: Determines whether a property is set. | Overrides FieldItemInterface::__isset | ||
| FieldItemBase::__set | public | function | Magic method: Sets a property value. | Overrides FieldItemInterface::__set | 1 | |
| FieldItemBase::__unset | public | function | Magic method: Unsets a property. | Overrides FieldItemInterface::__unset | ||
| LanguageItem::generateSampleValue | public static | function | Generates placeholder field values. | Overrides FieldItemBase::generateSampleValue | ||
| LanguageItem::getPossibleOptions | public | function | Returns an array of possible values with labels for display. | Overrides OptionsProviderInterface::getPossibleOptions | ||
| LanguageItem::getPossibleValues | public | function | Returns an array of possible values. | Overrides OptionsProviderInterface::getPossibleValues | ||
| LanguageItem::getSettableOptions | public | function | Returns an array of settable values with labels for display. | Overrides OptionsProviderInterface::getSettableOptions | ||
| LanguageItem::getSettableValues | public | function | Returns an array of settable values. | Overrides OptionsProviderInterface::getSettableValues | ||
| LanguageItem::onChange | public | function | React to changes to a child property or item. | Overrides Map::onChange | ||
| LanguageItem::propertyDefinitions | public static | function | Defines field item properties. | Overrides FieldItemInterface::propertyDefinitions | ||
| LanguageItem::schema | public static | function | Returns the schema for the field. | Overrides FieldItemInterface::schema | ||
| LanguageItem::setValue | public | function | Overrides \Drupal\Core\TypedData\TypedData::setValue(). | Overrides FieldItemBase::setValue | ||
| Map::$definition | protected | property | The data definition. | Overrides TypedData::$definition | ||
| Map::$properties | protected | property | The array of properties. | |||
| Map::$values | protected | property | An array of values for the contained properties. | |||
| Map::get | public | function | Gets a property object. | Overrides ComplexDataInterface::get | ||
| Map::getIterator | public | function | Retrieves the iterator for the object. | |||
| Map::getProperties | public | function | Gets an array of property objects. | Overrides ComplexDataInterface::getProperties | ||
| Map::getString | public | function | Returns a string representation of the data. | Overrides TypedData::getString | ||
| Map::getValue | public | function | Gets the data value. | Overrides TypedData::getValue | 1 | |
| Map::isEmpty | public | function | Determines whether the data structure is empty. | Overrides ComplexDataInterface::isEmpty | 17 | |
| Map::set | public | function | Sets a property value. | Overrides ComplexDataInterface::set | ||
| Map::toArray | public | function | Returns an array of all property values. | Overrides ComplexDataInterface::toArray | 1 | |
| Map::__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. | 1 | ||
| TypedData::$name | protected | property | The property name. | |||
| TypedData::$parent | protected | property | The parent typed data object. | |||
| TypedData::createInstance | public static | function | Constructs a TypedData object given its definition and context. | Overrides TypedDataInterface::createInstance | ||
| TypedData::getConstraints | public | function | Gets a list of validation constraints. | Overrides TypedDataInterface::getConstraints | 9 | |
| TypedData::getDataDefinition | public | function | Gets the data definition. | Overrides TypedDataInterface::getDataDefinition | ||
| TypedData::getName | public | function | Returns the name of a property or item. | Overrides TypedDataInterface::getName | ||
| TypedData::getParent | public | function | Returns the parent data structure; i.e. either complex data or a list. | Overrides TypedDataInterface::getParent | ||
| TypedData::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | ||
| TypedData::getPluginId | public | function | Gets the plugin ID of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | ||
| TypedData::getPropertyPath | public | function | Returns the property path of the data. | Overrides TypedDataInterface::getPropertyPath | ||
| TypedData::getRoot | public | function | Returns the root of the typed data tree. | Overrides TypedDataInterface::getRoot | ||
| TypedData::setContext | public | function | Sets the context of a property or item via a context aware parent. | Overrides TypedDataInterface::setContext | ||
| TypedData::validate | public | function | Validates the currently set data value. | Overrides TypedDataInterface::validate | ||
| 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.