setMenuLinkInstance example

/** * @covers ::extractFormValues */
  public function testExtractFormValues() {
    $menu_link_manager = $this->prophesize(MenuLinkManagerInterface::class);
    $menu_parent_form_selector = $this->prophesize(MenuParentFormSelectorInterface::class);
    $module_handler = $this->prophesize(ModuleHandlerInterface::class);
    $menu_link_form = new MenuLinkDefaultForm($menu_link_manager->reveal()$menu_parent_form_selector->reveal()$this->getStringTranslationStub()$module_handler->reveal());

    $static_override = $this->prophesize(StaticMenuLinkOverridesInterface::class);
    $menu_link = new MenuLinkDefault([], 'my_plugin_id', []$static_override->reveal());
    $menu_link_form->setMenuLinkInstance($menu_link);

    $form_state = new FormState();
    $form_state->setValue('id', 'my_plugin_id');
    $form_state->setValue('enabled', FALSE);
    $form_state->setValue('weight', 5);
    $form_state->setValue('expanded', TRUE);
    $form_state->setValue('menu_parent', 'foo:bar');

    $form = [];
    $result = $menu_link_form->extractFormValues($form$form_state);

    

  public function buildForm(array $form, FormStateInterface $form_state, MenuLinkInterface $menu_link_plugin = NULL) {
    $form['menu_link_id'] = [
      '#type' => 'value',
      '#value' => $menu_link_plugin->getPluginId(),
    ];
    $class_name = $menu_link_plugin->getFormClass();
    $form['#plugin_form'] = $this->classResolver->getInstanceFromDefinition($class_name);
    $form['#plugin_form']->setMenuLinkInstance($menu_link_plugin);

    $form += $form['#plugin_form']->buildConfigurationForm($form$form_state);

    $form['actions'] = ['#type' => 'actions'];
    $form['actions']['submit'] = [
      '#type' => 'submit',
      '#value' => $this->t('Save'),
      '#button_type' => 'primary',
    ];
    return $form;
  }

  
Home | Imprint | This part of the site doesn't use cookies.