Как я могу добавить абзац (по умолчанию) в форме узла, используя hook_form_alter в Drupal 8? - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь добавить кучу разных пустых абзацев разных типов в поле ревизий ссылки на сущность каждый раз, когда создается узел определенного типа контента. Я не хочу использовать модуль contrib «параграфы по умолчанию» для этого, потому что мне нужно использовать здесь виджет определенной формы, а абзацы по умолчанию также достигается с помощью виджета.

То, что я пробовал до сих пор:

function myModule_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id){

    $paragraph = \Drupal\paragraphs\Entity\Paragraph::create([
        'type' => 'tab_features'
      ]);
      $paragraph->save();

      $form['field_tabs']['widget'][0]['target_id']=$paragraph->id();
      $form['field_tabs']['widget'][0]['target_revision_id']=$paragraph->getRevisionId();

      return $form;
    }

$ field_tabs - это поле моей ревизии ссылки на сущность. 'tab_features' - это тип абзаца, который я хочу добавить.

Я думаю, должен быть метод, который можно использовать в форме или виджете формы, чтобы добавить абзац в форму, как кто-то уже нажал кнопку, чтобы добавь это. Я хочу избежать, чтобы фактически вызвать это через Javascript, если это возможно. Кто-нибудь знает, как это сделать в form_alter?

1 Ответ

0 голосов
/ 03 марта 2020

В проекте, над которым я работаю, мы сделали что-то вроде этого:

    //get the body field
    $field = $entity->get('field_em_p_body');
    $paragraph = Paragraph::create([
        'type' => 'em_section', // Paragraph type.
      ]);
      $paragraph->isNew();
      $paragraph->set('YOUR_FIELD', 'SOMETHING');
      $field->appendItem($paragraph);
...