comparison core/modules/language/src/DefaultLanguageItem.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 <?php
2
3 namespace Drupal\language;
4
5 use Drupal\Core\Entity\EntityInterface;
6 use Drupal\Core\Field\Plugin\Field\FieldType\LanguageItem;
7 use Drupal\Core\Language\Language;
8
9 /**
10 * Alternative plugin implementation of the 'language' field type.
11 *
12 * Replaces the Core 'language' entity field type implementation, changes the
13 * default values used.
14 *
15 * Required settings are:
16 * - target_type: The entity type to reference.
17 *
18 * @see language_field_info_alter().
19 */
20 class DefaultLanguageItem extends LanguageItem {
21
22 /**
23 * {@inheritdoc}
24 */
25 public function applyDefaultValue($notify = TRUE) {
26 // Default to LANGCODE_NOT_SPECIFIED.
27 $langcode = Language::LANGCODE_NOT_SPECIFIED;
28 if ($entity = $this->getEntity()) {
29 $langcode = $this->getDefaultLangcode($entity);
30 }
31 // Always notify otherwise default langcode will not be set correctly.
32 $this->setValue(['value' => $langcode], TRUE);
33 return $this;
34 }
35
36 /**
37 * Provides default language code of given entity.
38 *
39 * @param \Drupal\Core\Entity\EntityInterface $entity
40 * The entity whose language code to be loaded.
41 *
42 * @return string
43 * A string language code.
44 */
45 public function getDefaultLangcode(EntityInterface $entity) {
46 return language_get_default_langcode($entity->getEntityTypeId(), $entity->bundle());
47 }
48
49 }