WebformHandlerAddForm.php in Webform 8.5
File
src/Form/WebformHandlerAddForm.php
View source
<?php
namespace Drupal\webform\Form;
use Drupal\Component\Transliteration\TransliterationInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\webform\Plugin\WebformHandlerManagerInterface;
use Drupal\webform\WebformInterface;
use Drupal\webform\WebformTokenManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
class WebformHandlerAddForm extends WebformHandlerFormBase {
protected $webformHandlerManager;
public function __construct(LanguageManagerInterface $language_manager, TransliterationInterface $transliteration, WebformTokenManagerInterface $token_manager, WebformHandlerManagerInterface $webform_handler) {
parent::__construct($language_manager, $transliteration, $token_manager);
$this->webformHandlerManager = $webform_handler;
}
public static function create(ContainerInterface $container) {
return new static($container
->get('language_manager'), $container
->get('transliteration'), $container
->get('webform.token_manager'), $container
->get('plugin.manager.webform.handler'));
}
public function buildForm(array $form, FormStateInterface $form_state, WebformInterface $webform = NULL, $webform_handler = NULL) {
$form = parent::buildForm($form, $form_state, $webform, $webform_handler);
if ($this->webformHandler
->isExcluded()) {
throw new AccessDeniedHttpException();
}
$form['#title'] = $this
->t('Add @label handler', [
'@label' => $this->webformHandler
->label(),
]);
return $form;
}
protected function prepareWebformHandler($webform_handler) {
$webform_handler = $this->webformHandlerManager
->createInstance($webform_handler);
$webform_handler
->setWebform($this->webform);
$handlers = $this->webform
->getHandlers();
$weight = 0;
foreach ($handlers as $handler) {
if ($weight < $handler
->getWeight()) {
$weight = $handler
->getWeight() + 1;
}
}
$webform_handler
->setWeight($weight);
return $webform_handler;
}
}