Update to Drupal 8.0.2. For more information, see https://www.drupal.org/drupal-8.0.2-release-notes
This commit is contained in:
parent
1a0e9d9fac
commit
a6b049dd05
538 changed files with 5247 additions and 1594 deletions
|
@ -7,6 +7,7 @@
|
|||
|
||||
namespace Drupal\Core\Config;
|
||||
|
||||
use Drupal\Component\Utility\Crypt;
|
||||
use Drupal\Component\Utility\Unicode;
|
||||
use Drupal\Core\Config\Entity\ConfigDependencyManager;
|
||||
use Drupal\Core\Config\Entity\ConfigEntityDependency;
|
||||
|
@ -279,6 +280,12 @@ class ConfigInstaller implements ConfigInstallerInterface {
|
|||
}
|
||||
if ($config_to_create[$name] !== FALSE) {
|
||||
$new_config->setData($config_to_create[$name]);
|
||||
// Add a hash to configuration created through the installer so it is
|
||||
// possible to know if the configuration was created by installing an
|
||||
// extension and to track which version of the default config was used.
|
||||
if (!$this->isSyncing() && $collection == StorageInterface::DEFAULT_COLLECTION) {
|
||||
$new_config->set('_core.default_config_hash', Crypt::hashBase64(serialize($config_to_create[$name])));
|
||||
}
|
||||
}
|
||||
if ($collection == StorageInterface::DEFAULT_COLLECTION && $entity_type = $this->configManager->getEntityTypeIdByName($name)) {
|
||||
// If we are syncing do not create configuration entities. Pluggable
|
||||
|
|
|
@ -103,6 +103,17 @@ abstract class ConfigEntityBase extends Entity implements ConfigEntityInterface
|
|||
*/
|
||||
protected $third_party_settings = array();
|
||||
|
||||
/**
|
||||
* Information maintained by Drupal core about configuration.
|
||||
*
|
||||
* Keys:
|
||||
* - default_config_hash: A hash calculated by the config.installer service
|
||||
* and added during installation.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_core = [];
|
||||
|
||||
/**
|
||||
* Trust supplied data and not use configuration schema on save.
|
||||
*
|
||||
|
@ -296,6 +307,9 @@ abstract class ConfigEntityBase extends Entity implements ConfigEntityInterface
|
|||
if (empty($this->third_party_settings)) {
|
||||
unset($properties['third_party_settings']);
|
||||
}
|
||||
if (empty($this->_core)) {
|
||||
unset($properties['_core']);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@ abstract class ConfigEntityBundleBase extends ConfigEntityBase {
|
|||
}
|
||||
// Entity bundle field definitions may depend on bundle settings.
|
||||
$entity_manager->clearCachedFieldDefinitions();
|
||||
$entity_manager->clearCachedBundles();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,10 +18,10 @@ interface ConfigEntityStorageInterface extends EntityStorageInterface {
|
|||
* Extracts the configuration entity ID from the full configuration name.
|
||||
*
|
||||
* @param string $config_name
|
||||
* The full configuration name to extract the ID from. E.g.
|
||||
* The full configuration name to extract the ID from; for example,
|
||||
* 'views.view.archive'.
|
||||
* @param string $config_prefix
|
||||
* The config prefix of the configuration entity. E.g. 'views.view'
|
||||
* The config prefix of the configuration entity; for example, 'views.view'.
|
||||
*
|
||||
* @return string
|
||||
* The ID of the configuration entity.
|
||||
|
|
|
@ -157,6 +157,7 @@ class ConfigEntityType extends EntityType implements ConfigEntityTypeInterface {
|
|||
'status' => 'status',
|
||||
'dependencies' => 'dependencies',
|
||||
'third_party_settings' => 'third_party_settings',
|
||||
'_core' => '_core',
|
||||
];
|
||||
foreach ($this->config_export as $property => $name) {
|
||||
if (is_numeric($property)) {
|
||||
|
|
|
@ -80,9 +80,9 @@ class InstallStorage extends FileStorage {
|
|||
* The path to the configuration file.
|
||||
*
|
||||
* @todo Improve this when figuring out how we want to handle configuration in
|
||||
* installation profiles. E.g., a config object actually has to be searched
|
||||
* in the profile first (whereas the profile is never the owner), only
|
||||
* afterwards check for a corresponding module or theme.
|
||||
* installation profiles. For instance, a config object actually has to be
|
||||
* searched in the profile first (whereas the profile is never the owner);
|
||||
* only afterwards check for a corresponding module or theme.
|
||||
*/
|
||||
public function getFilePath($name) {
|
||||
$folders = $this->getAllFolders();
|
||||
|
|
Reference in a new issue