Commit b04d2ac1 authored by git's avatar git Committed by Miro Dietiker
Browse files

Issue #2868155 by lyalyuk, gordon, acrosman, seanB, jOpdebeeck, yasmeensalah,...

Issue #2868155 by lyalyuk, gordon, acrosman, seanB, jOpdebeeck, yasmeensalah, and_daz, Alan D., sgurlt, Berdir, miro_dietiker, Jacine: Add paragraph bundle to widget forms to allow easier editing of paragraph forms
parent be6a91c8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -359,6 +359,7 @@ class InlineParagraphsWidget extends WidgetBase {
      $element += array(
        '#type' => 'container',
        '#element_validate' => array(array($this, 'elementValidate')),
        '#paragraph_type' => $paragraphs_entity->bundle(),
        'subform' => array(
          '#type' => 'container',
          '#parents' => $element_parents,
+1 −0
Original line number Diff line number Diff line
@@ -445,6 +445,7 @@ class ParagraphsWidget extends WidgetBase {
      $element += array(
        '#type' => 'container',
        '#element_validate' => array(array($this, 'elementValidate')),
        '#paragraph_type' => $paragraphs_entity->bundle(),
        'subform' => array(
          '#type' => 'container',
          '#parents' => $element_parents,
+41 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\paragraphs\Tests\Experimental;

/**
 * Tests paragraphs experimental alter widget by type.
 *
 * @group paragraphs
 */
class ParagraphsExperimentalAlterByTypeTest extends ParagraphsExperimentalTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  public static $modules = [
    'paragraphs_test',
  ];


  /**
   * Test widget alter based on paragraph type
   */
  public function testAlterBasedOnType() {
    $this->addParagraphedContentType('paragraphed_test', 'field_paragraphs', 'entity_reference_paragraphs');

    $this->loginAsAdmin(['create paragraphed_test content', 'edit any paragraphed_test content']);
    // Add a Paragraph type.
    $paragraph_type = 'altered_paragraph';
    $this->addParagraphsType($paragraph_type);

    // Add a text field to the altered_paragraph type.
    static::fieldUIAddNewField('admin/structure/paragraphs_type/' . $paragraph_type, 'text', 'Normal title', 'text_long', [], []);

    // Check that the form alteration based on Paragraphs type works.
    // See paragraphs_test_field_widget_entity_reference_paragraphs_form_alter()
    $this->drupalGet('node/add/paragraphed_test');
    $this->assertText('Altered title');
  }
}
+9 −0
Original line number Diff line number Diff line
@@ -41,3 +41,12 @@ function paragraphs_test_paragraph_view(array &$build, ParagraphInterface $entit
  $parent_field_name = $entity->get('parent_field_name')->value;
  \Drupal::messenger()->addStatus("Parent: $parent_type/$parent_id/$parent_field_name", TRUE);
}

/**
 * Implements hook_field_widget_WIDGET_TYPE_form_alter().
 */
function paragraphs_test_field_widget_entity_reference_paragraphs_form_alter(&$element, &$form_state, $context) {
  if ($element['#paragraph_type'] == 'altered_paragraph') {
    $element['subform']['field_text']['widget'][0]['#title'] = 'Altered title';
  }
}
 No newline at end of file