EntityReferenceLayoutRevisionsFieldItemList.php in Entity Reference with Layout 8
File
src/EntityReferenceLayoutRevisionsFieldItemList.php
View source
<?php
namespace Drupal\entity_reference_layout;
use Drupal\entity_reference_revisions\EntityReferenceRevisionsFieldItemList;
use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
class EntityReferenceLayoutRevisionsFieldItemList extends EntityReferenceRevisionsFieldItemList implements EntityReferenceFieldItemListInterface {
public function preSave() {
parent::preSave();
$handler_settings = $this
->getSetting('handler_settings');
$layout_bundles = $handler_settings['layout_bundles'];
if ($this->list) {
$section_id = 0;
foreach ($this->list as $delta => $item) {
if (in_array($item->entity
->bundle(), $layout_bundles)) {
$section_id = $item->entity
->id();
}
if ($section_id && $item->region) {
$this->list[$delta]->section_id = $section_id;
}
else {
$this->list[$delta]->section_id = 0;
}
}
}
}
}