protected function ContentModelUpdater::installFields in Panopoly 8.2
Installs fields on media types.
1 call to ContentModelUpdater::installFields()
- ContentModelUpdater::installBundleConfig in modules/
panopoly/ panopoly_media/ src/ Update/ ContentModelUpdater.php - Installs config pertinent to media entity bundles.
File
- modules/
panopoly/ panopoly_media/ src/ Update/ ContentModelUpdater.php, line 201
Class
- ContentModelUpdater
- Applies changes to media content model from schema versions 8204 to 8205.
Namespace
Drupal\panopoly_media\UpdateCode
protected function installFields() {
// File, copy existing fields.
$existingFields = \Drupal::configFactory()
->listAll('field.field.media.file.');
foreach ($existingFields as $configId) {
if (!$this
->getConfigStorage()
->exists($configId)) {
$config = $this
->getConfigStorage()
->read($configId);
unset($config['uuid']);
$config['id'] = 'media.panopoly_media_file.' . $config['field_name'];
$config['bundle'] = 'panopoly_media_file';
$config['translatable'] = TRUE;
$configId = 'field.field.' . $config['id'];
$this
->createConfigEntity($configId, $config)
->save();
}
}
// Image, copy existing fields.
$existingFields = \Drupal::configFactory()
->listAll('field.field.media.image.');
foreach ($existingFields as $configId) {
if (!$this
->getConfigStorage()
->exists($configId)) {
$config = $this
->getConfigStorage()
->read($configId);
unset($config['uuid']);
$config['id'] = 'media.panopoly_media_image.' . $config['field_name'];
$config['bundle'] = 'panopoly_media_image';
$config['translatable'] = TRUE;
$configId = 'field.field.' . $config['id'];
$this
->createConfigEntity($configId, $config)
->save();
}
}
// Remote video, copy existing fields.
$existingFields = \Drupal::configFactory()
->listAll('field.field.media.video.');
foreach ($existingFields as $configId) {
if (!$this
->getConfigStorage()
->exists($configId)) {
$config = $this
->getConfigStorage()
->read($configId);
unset($config['uuid']);
// Skip video_embed, will create oembed field instead.
if ($configId == 'field.field.media.video.field_media_video_embed_field') {
continue;
}
$config['id'] = 'media.panopoly_media_remote_video.' . $config['field_name'];
$config['bundle'] = 'panopoly_media_remote_video';
$config['translatable'] = TRUE;
$configId = 'field.field.' . $config['id'];
$this
->createConfigEntity($configId, $config)
->save();
}
}
$this
->installAllOfType('field.field.media');
}