X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Flib%2FDrupal%2FCore%2FTypedData%2FTypedDataManager.php;h=9ac018c37efdb48cfd06d528e88542ea65311e49;hb=refs%2Fheads%2Fd864;hp=8c4f265ebdb4dfdb9a242dbab6fa2d29e2af44f0;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/web/core/lib/Drupal/Core/TypedData/TypedDataManager.php b/web/core/lib/Drupal/Core/TypedData/TypedDataManager.php index 8c4f265eb..9ac018c37 100644 --- a/web/core/lib/Drupal/Core/TypedData/TypedDataManager.php +++ b/web/core/lib/Drupal/Core/TypedData/TypedDataManager.php @@ -117,7 +117,13 @@ class TypedDataManager extends DefaultPluginManager implements TypedDataManagerI throw new \InvalidArgumentException("Invalid data type '$data_type' has been given"); } $class = $type_definition['definition_class']; - return $class::createFromDataType($data_type); + $data_definition = $class::createFromDataType($data_type); + + if (method_exists($data_definition, 'setTypedDataManager')) { + $data_definition->setTypedDataManager($this); + } + + return $data_definition; } /** @@ -162,9 +168,8 @@ class TypedDataManager extends DefaultPluginManager implements TypedDataManagerI // a shorter string than the serialized form, so array access is faster. $parts[] = json_encode($settings); } - // Property path for the requested data object. When creating a list item, - // use 0 in the key as all items look the same. - $parts[] = $object->getPropertyPath() . '.' . (is_numeric($property_name) ? 0 : $property_name); + // Property path for the requested data object. + $parts[] = $object->getPropertyPath() . '.' . $property_name; $key = implode(':', $parts); // Create the prototype if needed. @@ -183,7 +188,7 @@ class TypedDataManager extends DefaultPluginManager implements TypedDataManagerI throw new \InvalidArgumentException("Property $property_name is unknown."); } // Create the prototype without any value, but with initial parenting - // so that constructors can set up the objects correclty. + // so that constructors can set up the objects correctly. $this->prototypes[$key] = $this->create($definition, NULL, $property_name, $object); }