plus-8.x-4.x-dev/src/Traits/PluginFormTrait.php
src/Traits/PluginFormTrait.php
<?php namespace Drupal\plus\Traits; use Drupal\Core\Form\FormStateInterface; use Drupal\plus\Plugin\Theme\ThemeInterface; /** * Trait FormAutoloadFixTrait. */ trait PluginFormTrait { /** * Adds the autoload fix include file to the form state. * * This may be necessary if you notice your AJAX callbacks not working. * * @param \Drupal\Core\Form\FormStateInterface $form_state * The form state object. * @param \Drupal\plus\Plugin\Theme\ThemeInterface $theme * The theme to retrieve the file to use for the autoload fix. */ public static function formAutoloadFix(FormStateInterface $form_state, ThemeInterface $theme = NULL) { if (!isset($theme)) { $theme = \Drupal::service('plus')->getActiveTheme(); } $files = $form_state->getBuildInfo()['files']; // Only add the include once. $file = $theme->autoloadFixInclude(); $key = array_search($file, $files); if ($key === FALSE) { array_unshift($files, $file); $form_state->addBuildInfo('files', $files); } } }