Mercurial > hg > cmmr2012-drupal-site
diff core/modules/field_layout/field_layout.install @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | a9cd425dd02b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/field_layout/field_layout.install Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,42 @@ +<?php + +/** + * @file + * Contains install and update functions for Field Layout. + */ + +use Drupal\Core\Cache\Cache; +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 (EntityDisplayWithLayoutInterface $entity) { + $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 (EntityDisplayWithLayoutInterface $entity) { + $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']); +}