You are here

interface WebformElementManagerInterface in Webform 8.5

Same name and namespace in other branches
  1. 6.x src/Plugin/WebformElementManagerInterface.php \Drupal\webform\Plugin\WebformElementManagerInterface

Collects available webform elements.

Hierarchy

Expanded class hierarchy of WebformElementManagerInterface

All classes that implement WebformElementManagerInterface

33 files declare their use of WebformElementManagerInterface
EmailWebformHandler.php in src/Plugin/WebformHandler/EmailWebformHandler.php
OptionsLimitWebformHandler.php in modules/webform_options_limit/src/Plugin/WebformHandler/OptionsLimitWebformHandler.php
RemotePostWebformHandler.php in src/Plugin/WebformHandler/RemotePostWebformHandler.php
webform.tokens.inc in ./webform.tokens.inc
Builds placeholder replacement tokens for webforms and submissions.
WebformAccessGroupForm.php in modules/webform_access/src/WebformAccessGroupForm.php

... See full list

File

src/Plugin/WebformElementManagerInterface.php, line 15

Namespace

Drupal\webform\Plugin
View source
interface WebformElementManagerInterface extends PluginManagerInterface, CachedDiscoveryInterface, FallbackPluginManagerInterface, CategorizingPluginManagerInterface, WebformPluginManagerExcludedInterface {

  /**
   * Get all available webform element plugin instances.
   *
   * @return \Drupal\webform\Plugin\WebformElementInterface[]
   *   An array of all available webform element plugin instances.
   */
  public function getInstances();

  /**
   * Build a Webform element.
   *
   * @param array $element
   *   An associative array containing an element with a #type property.
   */
  public function initializeElement(array &$element);

  /**
   * Build a Webform element.
   *
   * @param array $element
   *   An associative array containing an element with a #type property.
   * @param array $form
   *   An associative array containing the structure of the form.
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current state of the form.
   *
   * @see hook_webform_element_alter()
   * @see hook_webform_element_ELEMENT_TYPE_alter()
   * @see \Drupal\webform\WebformSubmissionForm::prepareElements
   */
  public function buildElement(array &$element, array $form, FormStateInterface $form_state);

  /**
   * Process a form element and apply webform element specific enhancements.
   *
   * This method allows any form API element to be enhanced using webform
   * specific features include custom validation, external libraries,
   * accessibility improvements, etc…
   *
   * @param array $element
   *   An associative array containing an element with a #type property.
   *
   * @return array
   *   The processed form element with webform element specific enhancements.
   */
  public function processElement(array &$element);

  /**
   * Process form elements and apply webform element specific enhancements.
   *
   * This method allows any form API elements to be enhanced using webform
   * specific features include custom validation, external libraries,
   * accessibility improvements, etc…
   *
   * @param array $elements
   *   An associative array containing form elements.
   *
   * @return array
   *   The processed form elements with webform element specific enhancements.
   */
  public function processElements(array &$elements);

  /**
   * Invoke a method for a Webform element.
   *
   * @param string $method
   *   The method name.
   * @param array $element
   *   An associative array containing an element with a #type property.
   * @param mixed $context1
   *   (optional) An additional variable that is passed by reference.
   * @param mixed $context2
   *   (optional) An additional variable that is passed by reference. If more
   *   context needs to be provided to implementations, then this should be an
   *   associative array as described above.
   *
   * @return mixed|null
   *   Return result of the invoked method. NULL will be returned if the
   *   element and/or method name does not exist.
   *
   * @see \Drupal\webform\WebformSubmissionForm::prepareElements
   */
  public function invokeMethod($method, array &$element, &$context1 = NULL, &$context2 = NULL);

  /**
   * Is an element's plugin id.
   *
   * @param array $element
   *   A element.
   *
   * @return string
   *   An element's $type has a corresponding plugin id, else
   *   fallback 'element' plugin id.
   */
  public function getElementPluginId(array $element);

  /**
   * Get a webform element plugin instance for an element.
   *
   * @param array $element
   *   An associative array containing an element with a #type property.
   * @param \Drupal\webform\WebformInterface|\Drupal\webform\WebformSubmissionInterface $entity
   *   A webform or webform submission entity.
   *
   * @return \Drupal\webform\Plugin\WebformElementInterface
   *   A webform element plugin instance
   *
   * @throws \Exception
   *   Throw exception if entity type is not a webform or webform submission.
   */
  public function getElementInstance(array $element, EntityInterface $entity = NULL);

  /**
   * Gets sorted plugin definitions.
   *
   * @param array[]|null $definitions
   *   (optional) The plugin definitions to sort. If omitted, all plugin
   *   definitions are used.
   * @param string $sort_by
   *   The property to sort plugin definitions by. Only 'label' and 'category'
   *   are supported. Defaults to label.
   *
   * @return array[]
   *   An array of plugin definitions, sorted by category and label.
   */
  public function getSortedDefinitions(array $definitions = NULL, $sort_by = 'label');

  /**
   * Get all translatable properties from all elements.
   *
   * @return array
   *   An array of translatable properties.
   */
  public function getTranslatableProperties();

  /**
   * Get all properties for all elements.
   *
   * @return array
   *   An array of all properties.
   */
  public function getAllProperties();

  /**
   * Determine if an element type is excluded.
   *
   * @param string $type
   *   The element type.
   *
   * @return bool
   *   TRUE if the element is excluded.
   */
  public function isExcluded($type);

}

Members

Namesort descending Modifiers Type Description Overrides
CachedDiscoveryInterface::clearCachedDefinitions public function Clears static and persistent plugin definition caches. 2
CachedDiscoveryInterface::useCaches public function Disable the use of caches. 2
CategorizingPluginManagerInterface::getCategories public function Gets the names of all categories. 1
CategorizingPluginManagerInterface::getGroupedDefinitions public function Gets sorted plugin definitions grouped by category. 1
DiscoveryInterface::getDefinition public function Gets a specific plugin definition. 4
DiscoveryInterface::getDefinitions public function Gets the definition of all plugins for this type. 3
DiscoveryInterface::hasDefinition public function Indicates if a specific plugin definition exists. 2
FactoryInterface::createInstance public function Creates a pre-configured instance of a plugin. 7
FallbackPluginManagerInterface::getFallbackPluginId public function Gets a fallback id for a missing plugin. 5
MapperInterface::getInstance public function Gets a preconfigured instance of a plugin. 4
WebformElementManagerInterface::buildElement public function Build a Webform element. 1
WebformElementManagerInterface::getAllProperties public function Get all properties for all elements. 1
WebformElementManagerInterface::getElementInstance public function Get a webform element plugin instance for an element. 1
WebformElementManagerInterface::getElementPluginId public function Is an element's plugin id. 1
WebformElementManagerInterface::getInstances public function Get all available webform element plugin instances. 1
WebformElementManagerInterface::getSortedDefinitions public function Gets sorted plugin definitions. Overrides CategorizingPluginManagerInterface::getSortedDefinitions 1
WebformElementManagerInterface::getTranslatableProperties public function Get all translatable properties from all elements. 1
WebformElementManagerInterface::initializeElement public function Build a Webform element. 1
WebformElementManagerInterface::invokeMethod public function Invoke a method for a Webform element. 1
WebformElementManagerInterface::isExcluded public function Determine if an element type is excluded. 1
WebformElementManagerInterface::processElement public function Process a form element and apply webform element specific enhancements. 1
WebformElementManagerInterface::processElements public function Process form elements and apply webform element specific enhancements. 1
WebformPluginManagerExcludedInterface::removeExcludeDefinitions public function Remove excluded plugin definitions. 4