Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
novicell/custom_forms / src / LazyBuilder / CustomFormLazyBuilder.php
Size: Mime:
<?php

namespace Drupal\custom_forms\LazyBuilder;

use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Language\LanguageInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\custom_forms\Entity\CustomForm;

class CustomFormLazyBuilder {

  /**
   * @var \Drupal\Core\Entity\EntityViewBuilderInterface
   *   The view builder for custom forms.
   */
  protected $viewBuilder;

  /**
   * @var \Drupal\Core\Language\LanguageManagerInterface
   *   The language manager.
   */
  protected $languageManager;

  public function __construct(EntityTypeManagerInterface $entity_type_manager, LanguageManagerInterface $language_manager) {
    $this->viewBuilder = $entity_type_manager->getViewBuilder('custom_form');
    $this->languageManager = $language_manager;
  }

  public function generateCustomForm($form_id) {
    // If for some reason the form id is not included, we return nothing.
    if (empty($form_id)) {
      return [];
    }

    $current_language = $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT);

    /** @var \Drupal\custom_forms\CustomFormInterface $custom_form */
    $custom_form = CustomForm::load($form_id);

    $build = $this->viewBuilder->view($custom_form, 'full', $current_language->getId());

    return $build;
  }

}