48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Contains install and update functions for Field Layout.
|
|
*/
|
|
|
|
use Drupal\Core\Cache\Cache;
|
|
use Drupal\Core\Entity\Display\EntityDisplayInterface;
|
|
use Drupal\Core\Entity\Entity\EntityFormDisplay;
|
|
use Drupal\Core\Entity\Entity\EntityViewDisplay;
|
|
use Drupal\field_layout\Display\EntityDisplayWithLayoutInterface;
|
|
|
|
/**
|
|
* Implements hook_install().
|
|
*/
|
|
function field_layout_install() {
|
|
// Ensure each entity display has a layout.
|
|
$entity_save = function (EntityDisplayInterface $entity) {
|
|
if ($entity instanceof EntityDisplayWithLayoutInterface) {
|
|
$entity->ensureLayout()->save();
|
|
}
|
|
};
|
|
array_map($entity_save, EntityViewDisplay::loadMultiple());
|
|
array_map($entity_save, EntityFormDisplay::loadMultiple());
|
|
|
|
// Invalidate the render cache since all content will now have a layout.
|
|
Cache::invalidateTags(['rendered']);
|
|
}
|
|
|
|
/**
|
|
* Implements hook_uninstall().
|
|
*/
|
|
function field_layout_uninstall() {
|
|
// Reset each entity display to use the one-column layout to best approximate
|
|
// the absence of layouts.
|
|
$entity_save = function (EntityDisplayInterface $entity) {
|
|
if ($entity instanceof EntityDisplayWithLayoutInterface) {
|
|
$entity->setLayoutId('layout_onecol')->save();
|
|
}
|
|
};
|
|
array_map($entity_save, EntityViewDisplay::loadMultiple());
|
|
array_map($entity_save, EntityFormDisplay::loadMultiple());
|
|
|
|
// Invalidate the render cache since all content will no longer have a layout.
|
|
Cache::invalidateTags(['rendered']);
|
|
}
|