You are here

public static function EntityExportFormBuilder::onAddMenuToExport in Content Synchronizer 3.x

Create an export and add Menu Items.

Parameters

array $form: The form.

\Drupal\Core\Form\FormStateInterface $formState: The formstate.

Throws

\Drupal\Core\Entity\EntityStorageException

File

src/Service/EntityExportFormBuilder.php, line 296

Class

EntityExportFormBuilder
The entity export form builder.

Namespace

Drupal\content_synchronizer\Service

Code

public static function onAddMenuToExport(array &$form, FormStateInterface $formState) {
  $menu = $formState
    ->getFormObject()
    ->getEntity();
  if ($menu instanceof Menu) {

    // Create a menu export.
    $exportEntity = ExportEntity::create([
      'name' => $menu
        ->label(),
    ]);
    $exportEntity
      ->save();

    // Add all menu items.
    $menuLinkTree = \Drupal::service('menu.link_tree');
    $tree = $menuLinkTree
      ->load($menu
      ->id(), new MenuTreeParameters());
    static::me()
      ->addMenuElementsToExportEntity($tree, $exportEntity);
    $formState
      ->setRedirectUrl(Url::fromRoute('entity.export_entity.canonical', [
      'export_entity' => $exportEntity
        ->id(),
    ]));
  }
}