Skip to content
Snippets Groups Projects
Commit fafda5f0 authored by Jess's avatar Jess
Browse files

Issue #3043687 by phenaproxima, tim.plunkett, johndevman: Layout Builder's...

Issue #3043687 by phenaproxima, tim.plunkett, johndevman: Layout Builder's Quick Edit integration causes fatals when using field blocks for entities other than the one being viewed
parent 9bd2ebdf
No related merge requests found
...@@ -312,7 +312,7 @@ private function buildEntityView(array &$elements) { ...@@ -312,7 +312,7 @@ private function buildEntityView(array &$elements) {
* @see \Drupal\layout_builder\Plugin\Block\FieldBlock * @see \Drupal\layout_builder\Plugin\Block\FieldBlock
*/ */
private function supportQuickEditOnComponent(array $component, FieldableEntityInterface $entity) { private function supportQuickEditOnComponent(array $component, FieldableEntityInterface $entity) {
if (isset($component['content']['#field_name'], $component['#base_plugin_id']) && $component['#base_plugin_id'] === 'field_block') { if (isset($component['content']['#field_name'], $component['#base_plugin_id']) && $component['#base_plugin_id'] === 'field_block' && $entity->hasField($component['content']['#field_name'])) {
return $entity->getFieldDefinition($component['content']['#field_name'])->isDisplayConfigurable('view'); return $entity->getFieldDefinition($component['content']['#field_name'])->isDisplayConfigurable('view');
} }
return FALSE; return FALSE;
......
<?php
namespace Drupal\Tests\layout_builder\Functional;
use Drupal\Tests\BrowserTestBase;
/**
* Tests Layout Builder integration with Quick Edit.
*
* @group layout_builder
*/
class LayoutBuilderQuickEditTest extends BrowserTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'layout_builder',
'node',
'quickedit',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
// Create two nodes.
$this->createContentType([
'type' => 'bundle_with_section_field',
'name' => 'Bundle with section field',
]);
$this->createNode([
'type' => 'bundle_with_section_field',
]);
}
/**
* Tests Quick Edit integration with a block from a different entity type.
*/
public function testPlaceFieldBlockFromDifferentEntityType() {
$page = $this->getSession()->getPage();
$this->drupalLogin($this->drupalCreateUser([
'configure any layout',
'administer node display',
'access in-place editing',
]));
// From the manage display page, go to manage the layout.
$this->drupalGet('admin/structure/types/manage/bundle_with_section_field/display/default');
$this->drupalPostForm(NULL, ['layout[enabled]' => TRUE], 'Save');
$this->drupalPostForm(NULL, ['layout[allow_custom]' => TRUE], 'Save');
// Place a field block for a user entity field.
$this->drupalGet('node/1/layout');
$page->clickLink('Add Block');
$page->clickLink('Name');
$page->pressButton('Add Block');
$page->pressButton('Save layout');
$this->drupalGet('node/1');
$this->assertSession()->statusCodeEquals(200);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment