You are here

class DateTime in Webform 8.5

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

Provides a 'datetime' element.

Plugin annotation


@WebformElement(
  id = "datetime",
  api = "https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Datetime!Element!Datetime.php/class/Datetime",
  label = @Translation("Date/time"),
  description = @Translation("Provides a form element for date & time selection."),
  category = @Translation("Date/time elements"),
)

Hierarchy

Expanded class hierarchy of DateTime

File

src/Plugin/WebformElement/DateTime.php, line 22

Namespace

Drupal\webform\Plugin\WebformElement
View source
class DateTime extends DateBase {

  /**
   * {@inheritdoc}
   */
  protected function defineDefaultProperties() {
    $date_format = '';
    $time_format = '';

    // Date formats cannot be loaded during install or update.
    if (!defined('MAINTENANCE_MODE')) {

      /** @var \Drupal\Core\Datetime\DateFormatInterface $date_format_entity */
      if ($date_format_entity = DateFormat::load('html_date')) {
        $date_format = $date_format_entity
          ->getPattern();
      }

      /** @var \Drupal\Core\Datetime\DateFormatInterface $time_format_entity */
      if ($time_format_entity = DateFormat::load('html_time')) {
        $time_format = $time_format_entity
          ->getPattern();
      }
    }
    return [
      'date_min' => '',
      'date_max' => '',
      // Date settings.
      'date_date_format' => $date_format,
      'date_date_datepicker_button' => FALSE,
      'date_date_element' => 'date',
      'date_year_range' => '1900:2050',
      'date_date_placeholder' => '',
      // Time settings.
      'date_time_format' => $time_format,
      'date_time_element' => 'time',
      'date_time_min' => '',
      'date_time_max' => '',
      'date_time_step' => '',
      'date_time_placeholder' => '',
    ] + parent::defineDefaultProperties();
  }

  /**
   * {@inheritdoc}
   */
  protected function defineTranslatableProperties() {
    return array_merge(parent::defineTranslatableProperties(), [
      'date_date_placeholder',
      'date_time_placeholder',
    ]);
  }

  /****************************************************************************/

  /**
   * {@inheritdoc}
   */
  public function prepare(array &$element, WebformSubmissionInterface $webform_submission = NULL) {

    // Must define a '#default_value' for Datetime element to prevent the
    // below error.
    // Notice: Undefined index: #default_value in Drupal\Core\Datetime\Element\Datetime::valueCallback().
    if (!isset($element['#default_value'])) {
      $element['#default_value'] = NULL;
    }

    // Remove 'for' from the element's label.
    $element['#label_attributes']['webform-remove-for-attribute'] = TRUE;

    /* Date */
    $date_element = isset($element['#date_date_element']) ? $element['#date_date_element'] : 'date';

    // Unset unsupported date format for date elements that are not
    // text or datepicker.
    if (!in_array($date_element, [
      'text',
      'datepicker',
    ])) {
      unset($element['date_date_format']);
    }

    // Set date year range.
    $element += [
      '#date_year_range' => '',
    ];
    if (empty($element['#date_year_range'])) {
      $date_min = $this
        ->getElementProperty($element, 'date_date_min') ?: $this
        ->getElementProperty($element, 'date_min');
      $min_year = $date_min ? static::formatDate('Y', strtotime($date_min)) : '1900';
      $date_max = $this
        ->getElementProperty($element, 'date_date_max') ?: $this
        ->getElementProperty($element, 'date_max');
      $max_year = $date_max ? static::formatDate('Y', strtotime($date_max)) : '2050';
      $element['#date_year_range'] = "{$min_year}:{$max_year}";
    }

    // Set date format.
    if (!isset($element['#date_date_format'])) {
      $element['#date_date_format'] = $this
        ->getDefaultProperty('date_date_format');
    }

    // Add date callback.
    $element['#date_date_callbacks'][] = '_webform_datetime_date';

    /* Time */

    // Set time format.
    if (!isset($element['#date_time_format'])) {
      $element['#date_time_format'] = $this
        ->getDefaultProperty('date_time_format');
    }

    // Add time callback.
    $element['#date_time_callbacks'][] = '_webform_datetime_time';

    // Prepare element after date/time formats have been updated.
    parent::prepare($element, $webform_submission);
  }

  /**
   * {@inheritdoc}
   */
  protected function getElementSelectorInputsOptions(array $element) {
    $t_args = [
      '@title' => $this
        ->getAdminLabel($element),
    ];
    return [
      'date' => (string) $this
        ->t('@title [Date]', $t_args),
      'time' => (string) $this
        ->t('@title [Time]', $t_args),
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getElementSelectorInputValue($selector, $trigger, array $element, WebformSubmissionInterface $webform_submission) {
    $value = $this
      ->getRawValue($element, $webform_submission);
    if (empty($value)) {
      return NULL;
    }

    // Get date/time format pattern.
    $input_name = WebformSubmissionConditionsValidator::getSelectorInputName($selector);
    $format = 'html_' . WebformSubmissionConditionsValidator::getInputNameAsArray($input_name, 1);
    $pattern = DateFormat::load($format)
      ->getPattern();

    // Return date/time.
    $date = DrupalDateTime::createFromTimestamp(strtotime($value));
    return $date
      ->format($pattern);
  }

  /**
   * {@inheritdoc}
   */
  public function form(array $form, FormStateInterface $form_state) {
    $form = parent::form($form, $form_state);
    $form['date']['#description'] = $this
      ->t('Datetime element is designed to have sane defaults so any or all can be omitted.') . ' ' . $this
      ->t('Both the date and time components are configurable so they can be output as HTML5 datetime elements or not, as desired.');
    $form['date']['date_date_element'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Date element'),
      '#options' => [
        'datetime' => $this
          ->t('HTML datetime - Use the HTML5 datetime element type.'),
        'datetime-local' => $this
          ->t('HTML datetime input (localized) - Use the HTML5 datetime-local element type.'),
        'date' => $this
          ->t('HTML date input - Use the HTML5 date element type.'),
        'text' => $this
          ->t('Text input - No HTML5 element, use a normal text field.'),
        'datepicker' => $this
          ->t('Date picker input - Use jQuery date picker with custom date format'),
        'none' => $this
          ->t('None - Do not display a date element'),
      ],
    ];
    $form['date']['date_date_datepicker_button'] = [
      '#type' => 'checkbox',
      '#title' => $this
        ->t('Show date picker button'),
      '#description' => $this
        ->t('If checked, date picker will include a calendar button'),
      '#return_value' => TRUE,
      '#states' => [
        'visible' => [
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datepicker',
            ],
          ],
        ],
      ],
    ];
    $form['date']['date_date_element_datetime_warning'] = [
      '#type' => 'webform_message',
      '#message_type' => 'warning',
      '#message_message' => $this
        ->t('HTML5 datetime elements do not gracefully degrade in older browsers and will be displayed as a plain text field without a date or time picker.'),
      '#access' => TRUE,
      '#states' => [
        'visible' => [
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datetime',
            ],
          ],
          'or',
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datetime-local',
            ],
          ],
        ],
      ],
    ];
    $form['date']['date_date_element_none_warning'] = [
      '#type' => 'webform_message',
      '#message_type' => 'warning',
      '#message_message' => $this
        ->t('You should consider using a dedicated Time element, instead of this Date/time element, which will prepend the current date to the submitted time.'),
      '#access' => TRUE,
      '#states' => [
        'visible' => [
          ':input[name="properties[date_date_element]"]' => [
            'value' => 'none',
          ],
        ],
      ],
    ];
    $form['date']['date_date_placeholder'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Date placeholder'),
      '#description' => $this
        ->t('The placeholder will be shown in the element until the user starts entering a value.'),
      '#states' => [
        'visible' => [
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'text',
            ],
          ],
          'or',
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datepicker',
            ],
          ],
        ],
      ],
    ];
    $date_format = DateFormat::load('html_date')
      ->getPattern();
    $form['date']['date_date_format'] = [
      '#type' => 'webform_select_other',
      '#title' => $this
        ->t('Date format'),
      '#options' => [
        $date_format => $this
          ->t('HTML date - @format (@date)', [
          '@format' => $date_format,
          '@date' => static::formatDate($date_format),
        ]),
        'l, F j, Y' => $this
          ->t('Long date - @format (@date)', [
          '@format' => 'l, F j, Y',
          '@date' => static::formatDate('l, F j, Y'),
        ]),
        'D, m/d/Y' => $this
          ->t('Medium date - @format (@date)', [
          '@format' => 'D, m/d/Y',
          '@date' => static::formatDate('D, m/d/Y'),
        ]),
        'm/d/Y' => $this
          ->t('Short date - @format (@date)', [
          '@format' => 'm/d/Y',
          '@date' => static::formatDate('m/d/Y'),
        ]),
      ],
      '#other__option_label' => $this
        ->t('Custom…'),
      '#other__placeholder' => $this
        ->t('Custom date format…'),
      '#other__description' => $this
        ->t('Enter date format using <a href="http://php.net/manual/en/function.date.php">Date Input Format</a>.'),
      '#states' => [
        'visible' => [
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'text',
            ],
          ],
          'or',
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datepicker',
            ],
          ],
        ],
      ],
    ];
    $form['date']['date_year_range'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Date year range'),
      '#description' => $this
        ->t("A description of the range of years to allow, like '1900:2050', '-3:+3' or '2000:+3', where the first value describes the earliest year and the second the latest year in the range.") . ' ' . $this
        ->t('A year in either position means that specific year.') . ' ' . $this
        ->t('A +/- value describes a dynamic value that is that many years earlier or later than the current year at the time the webform is displayed.') . ' ' . $this
        ->t("Used in jQueryUI (fallback) datepicker year range and HTML5 min/max date settings. Defaults to '1900:2050'.") . ' ' . $this
        ->t('Use min/max validation to define a more specific date range.'),
      '#states' => [
        'invisible' => [
          ':input[name="properties[date_date_element]"]' => [
            'value' => 'none',
          ],
        ],
      ],
    ];

    // Time.
    $form['time'] = [
      '#type' => 'fieldset',
      '#title' => $this
        ->t('Time settings'),
    ];
    $form['time']['date_time_element'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Time element'),
      '#options' => [
        'time' => $this
          ->t('HTML time input - Use a HTML5 time element type.'),
        'text' => $this
          ->t('Text input - No HTML5 element, use a normal text field.'),
        'timepicker' => $this
          ->t('Time picker input - Use jQuery time picker with custom time format'),
        'none' => $this
          ->t('None - Do not display a time element.'),
      ],
      '#states' => [
        'invisible' => [
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datetime',
            ],
          ],
          'or',
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datetime-local',
            ],
          ],
        ],
      ],
    ];
    $form['time']['date_time_placeholder'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Time placeholder'),
      '#description' => $this
        ->t('The placeholder will be shown in the element until the user starts entering a value.'),
      '#states' => [
        'visible' => [
          [
            ':input[name="properties[date_time_element]"]' => [
              'value' => 'text',
            ],
          ],
          'or',
          [
            ':input[name="properties[date_time_element]"]' => [
              'value' => 'timepicker',
            ],
          ],
        ],
      ],
    ];
    $form['time']['date_time_format'] = [
      '#type' => 'webform_select_other',
      '#title' => $this
        ->t('Time format'),
      '#description' => $this
        ->t("Time format is only applicable for browsers that do not have support for the HTML5 time element. Browsers that support the HTML5 time element will display the time using the user's preferred format."),
      '#options' => [
        'H:i:s' => $this
          ->t('24 hour with seconds - @format (@time)', [
          '@format' => 'H:i:s',
          '@time' => static::formatDate('H:i:s'),
        ]),
        'H:i' => $this
          ->t('24 hour - @format (@time)', [
          '@format' => 'H:i',
          '@time' => static::formatDate('H:i'),
        ]),
        'g:i:s A' => $this
          ->t('12 hour with seconds - @format (@time)', [
          '@format' => 'g:i:s A',
          '@time' => static::formatDate('g:i:s A'),
        ]),
        'g:i A' => $this
          ->t('12 hour - @format (@time)', [
          '@format' => 'g:i A',
          '@time' => static::formatDate('g:i A'),
        ]),
      ],
      '#other__option_label' => $this
        ->t('Custom…'),
      '#other__placeholder' => $this
        ->t('Custom time format…'),
      '#other__description' => $this
        ->t('Enter time format using <a href="http://php.net/manual/en/function.date.php">Time Input Format</a>.'),
      '#states' => [
        'invisible' => [
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datetime',
            ],
          ],
          'or',
          [
            ':input[name="properties[date_date_element]"]' => [
              'value' => 'datetime-local',
            ],
          ],
          'or',
          [
            ':input[name="properties[date_time_element]"]' => [
              'value' => 'none',
            ],
          ],
          'or',
          [
            ':input[name="properties[date_time_element]"]' => [
              'value' => 'time',
            ],
          ],
        ],
      ],
    ];
    $form['time']['date_time_container'] = $this
      ->getFormInlineContainer();
    $form['time']['date_time_container']['date_time_min'] = [
      '#type' => 'webform_time',
      '#title' => $this
        ->t('Time minimum'),
      '#description' => $this
        ->t('Specifies the minimum time.'),
      '#states' => [
        'invisible' => [
          [
            ':input[name="properties[date_time_element]"]' => [
              'value' => 'none',
            ],
          ],
        ],
      ],
    ];
    $form['time']['date_time_container']['date_time_max'] = [
      '#type' => 'webform_time',
      '#title' => $this
        ->t('Time maximum'),
      '#description' => $this
        ->t('Specifies the maximum time.'),
      '#states' => [
        'invisible' => [
          [
            ':input[name="properties[date_time_element]"]' => [
              'value' => 'none',
            ],
          ],
        ],
      ],
    ];
    $form['time']['date_time_step'] = [
      '#type' => 'webform_select_other',
      '#title' => $this
        ->t('Time step'),
      '#description' => $this
        ->t('Specifies the minute intervals.'),
      '#options' => [
        60 => $this
          ->t('1 minute'),
        300 => $this
          ->t('5 minutes'),
        600 => $this
          ->t('10 minutes'),
        900 => $this
          ->t('15 minutes'),
        1200 => $this
          ->t('20 minutes'),
        1800 => $this
          ->t('30 minutes'),
      ],
      '#other__type' => 'number',
      '#other__description' => $this
        ->t('Enter interval in seconds.'),
      '#states' => [
        'invisible' => [
          [
            ':input[name="properties[date_time_element]"]' => [
              'value' => 'none',
            ],
          ],
        ],
      ],
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function getConfigurationFormProperties(array &$form, FormStateInterface $form_state) {
    $properties = parent::getConfigurationFormProperties($form, $form_state);

    // Remove hidden date properties.
    if (isset($properties['#date_date_element'])) {
      switch ($properties['#date_date_element']) {
        case 'date':
          unset($properties['#date_date_format']);
          break;
        case 'datetime':
        case 'datetime-local':
          unset($properties['#date_date_format'], $properties['#date_time_element'], $properties['#date_time_format'], $properties['#date_increment']);
          break;
        case 'none':
          unset($properties['#date_date_format'], $properties['#date_year_range']);
          break;
      }
    }

    // Remove hidden date properties.
    if (isset($properties['#date_time_element'])) {
      switch ($properties['#date_time_element']) {
        case 'time':
          unset($properties['#date_time_format']);
          break;
        case 'none':
          unset($properties['#date_time_format'], $properties['date_increment']);
          break;
      }
    }
    return $properties;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DateBase::afterBuild public static function After build handler for date elements. 1
DateBase::buildExportRecord public function Build an element's export row. Overrides WebformElementBase::buildExportRecord
DateBase::datetimeRangeYears protected static function Specifies the start and end year to use as a date range.
DateBase::formatDate protected static function Format custom date.
DateBase::formatTextItem protected function Format an element's value as text. Overrides WebformElementBase::formatTextItem
DateBase::getDateType protected function Get the type of date/time element.
DateBase::getItemDefaultFormat public function Get an element's default single value format name. Overrides WebformElementBase::getItemDefaultFormat
DateBase::getItemFormats public function Get an element's available single value formats. Overrides WebformElementBase::getItemFormats
DateBase::getTestValues public function Get test values for an element. Overrides WebformElementBase::getTestValues
DateBase::parseInputFormat protected function Parse GNU Date Input Format.
DateBase::prepareElementValidateCallbacks protected function Prepare an element's validation callbacks. Overrides WebformElementBase::prepareElementValidateCallbacks
DateBase::preValidateDate public static function Webform element pre validation handler for Date elements.
DateBase::setDefaultValue public function Set an element's default value using saved data. Overrides WebformElementBase::setDefaultValue 1
DateBase::setGnuDateInputFormatError protected function Set GNU date input format error.
DateBase::validateConfigurationForm public function Form validation handler. Overrides WebformElementBase::validateConfigurationForm 1
DateBase::validateDate public static function Webform element validation handler for date elements.
DateBase::validateGnuDateInputFormat protected function Validate GNU date input format.
DateTime::defineDefaultProperties protected function Define an element's default properties. Overrides DateBase::defineDefaultProperties
DateTime::defineTranslatableProperties protected function Define an element's translatable properties. Overrides WebformElementBase::defineTranslatableProperties
DateTime::form public function Gets the actual configuration webform array to be built. Overrides DateBase::form
DateTime::getConfigurationFormProperties public function Get an associative array of element properties from configuration webform. Overrides WebformElementBase::getConfigurationFormProperties
DateTime::getElementSelectorInputsOptions protected function Get an element's (sub)inputs selectors as options. Overrides WebformElementBase::getElementSelectorInputsOptions
DateTime::getElementSelectorInputValue public function Get an element's (sub)input selector value. Overrides WebformElementBase::getElementSelectorInputValue
DateTime::prepare public function Prepare an element to be rendered within a webform. Overrides DateBase::prepare
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TrustedCallbackInterface::THROW_EXCEPTION constant Untrusted callbacks throw exceptions.
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION constant Untrusted callbacks trigger silenced E_USER_DEPRECATION errors.
TrustedCallbackInterface::TRIGGER_WARNING constant Untrusted callbacks trigger E_USER_WARNING errors.
WebformCompositeFormElementTrait::preRenderWebformCompositeFormElement public static function Adds form element theming to an element if its title or description is set. 1
WebformElementBase::$configFactory protected property The configuration factory.
WebformElementBase::$currentUser protected property The current user.
WebformElementBase::$defaultProperties protected property An associative array of an element's default properties names and values.
WebformElementBase::$elementInfo protected property A element info manager.
WebformElementBase::$elementManager protected property The webform element manager.
WebformElementBase::$entityTypeManager protected property The entity type manager.
WebformElementBase::$librariesManager protected property The webform libraries manager.
WebformElementBase::$logger protected property A logger instance.
WebformElementBase::$submissionStorage protected property The webform submission storage.
WebformElementBase::$tokenManager protected property The token manager.
WebformElementBase::$translatableProperties protected property An indexed array of an element's translated properties.
WebformElementBase::alterForm public function Alter an element's associated form. Overrides WebformElementInterface::alterForm 1
WebformElementBase::build protected function Build an element as text or HTML. 4
WebformElementBase::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm 3
WebformElementBase::buildConfigurationFormTabs protected function Build configuration form tabs. 1
WebformElementBase::buildExportHeader public function Build an element's export header. Overrides WebformElementInterface::buildExportHeader 4
WebformElementBase::buildExportOptionsForm public function Get an element's export options webform. Overrides WebformElementInterface::buildExportOptionsForm 4
WebformElementBase::buildHtml public function Build an element as HTML element. Overrides WebformElementInterface::buildHtml 2
WebformElementBase::buildText public function Build an element as text element. Overrides WebformElementInterface::buildText 1
WebformElementBase::checkAccessRule protected function Checks an access rule against a user account's roles and id.
WebformElementBase::checkAccessRules public function Check element access (rules). Overrides WebformElementInterface::checkAccessRules
WebformElementBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 2
WebformElementBase::defineDefaultBaseProperties protected function Define default base properties used by all elements. 4
WebformElementBase::defineDefaultMultipleProperties protected function Define default multiple properties used by most elements. 1
WebformElementBase::displayDisabledWarning public function Display element disabled warning. Overrides WebformElementInterface::displayDisabledWarning 1
WebformElementBase::finalize public function Finalize an element to be rendered within a webform. Overrides WebformElementInterface::finalize 1
WebformElementBase::format protected function Format an element's value as HTML or plain text. 2
WebformElementBase::formatCustomItem protected function Format an element's item using custom HTML or plain text. 2
WebformElementBase::formatCustomItems protected function Format an element's items using custom HTML or plain text.
WebformElementBase::formatHtml public function Format an element's value as HTML. Overrides WebformElementInterface::formatHtml 2
WebformElementBase::formatHtmlItem protected function Format an element's value as HTML. 19
WebformElementBase::formatHtmlItems protected function Format an element's items as HTML. 2
WebformElementBase::formatTableColumn public function Format an element's table column value. Overrides WebformElementInterface::formatTableColumn 4
WebformElementBase::formatText public function Format an element's value as plain text. Overrides WebformElementInterface::formatText 2
WebformElementBase::formatTextItems protected function Format an element's items as text. 2
WebformElementBase::getAdminLabel public function Get an element's admin label (#admin_title, #title or #webform_key). Overrides WebformElementInterface::getAdminLabel
WebformElementBase::getConfigurationFormProperty protected function Get configuration property value. 1
WebformElementBase::getDefaultBaseProperties Deprecated protected function Get default base properties used by all elements.
WebformElementBase::getDefaultKey public function Gets the element's default key. Overrides WebformElementInterface::getDefaultKey 1
WebformElementBase::getDefaultMultipleProperties Deprecated protected function Get default multiple properties used by most elements.
WebformElementBase::getDefaultProperties public function Get default properties. Overrides WebformElementInterface::getDefaultProperties
WebformElementBase::getDefaultProperty public function Get an element's default property value. Overrides WebformElementInterface::getDefaultProperty
WebformElementBase::getElementInfoDefaultProperty protected function Get a render element's default property.
WebformElementBase::getElementProperty public function Get an element's property value. Overrides WebformElementInterface::getElementProperty
WebformElementBase::getElementSelectorOptions public function Get an element's selectors as options. Overrides WebformElementInterface::getElementSelectorOptions 11
WebformElementBase::getElementSelectorSourceValues public function Get an element's selectors source values. Overrides WebformElementInterface::getElementSelectorSourceValues 3
WebformElementBase::getElementStateOptions public function Get an element's supported states as options. Overrides WebformElementInterface::getElementStateOptions 1
WebformElementBase::getExportDefaultOptions public function Get an element's default export options. Overrides WebformElementInterface::getExportDefaultOptions 5
WebformElementBase::getFormElementClassDefinition public function Get the Webform element's form element class definition. Overrides WebformElementInterface::getFormElementClassDefinition
WebformElementBase::getFormInlineContainer protected function Get form--inline container which is used for side-by-side element layout.
WebformElementBase::getInfo public function Retrieves the default properties for the defined element type. Overrides WebformElementInterface::getInfo
WebformElementBase::getItemFormat public function Get element's single value format name by looking for '#format' property, global settings, and finally default settings. Overrides WebformElementInterface::getItemFormat 1
WebformElementBase::getItemsDefaultFormat public function Get an element's default multiple value format name. Overrides WebformElementInterface::getItemsDefaultFormat 2
WebformElementBase::getItemsFormat public function Get element's multiple value format name by looking for '#format' property, global settings, and finally default settings. Overrides WebformElementInterface::getItemsFormat
WebformElementBase::getItemsFormats public function Get an element's available multiple value formats. Overrides WebformElementInterface::getItemsFormats 2
WebformElementBase::getKey public function Get an element's key/name. Overrides WebformElementInterface::getKey
WebformElementBase::getLabel public function Get an element's label (#title or #webform_key). Overrides WebformElementInterface::getLabel
WebformElementBase::getOffCanvasWidth public function Get configuration form's off-canvas width. Overrides WebformElementInterface::getOffCanvasWidth 1
WebformElementBase::getPluginApiLink public function Get link to element's API documentation. Overrides WebformElementInterface::getPluginApiLink
WebformElementBase::getPluginApiUrl public function Get the URL for the element's API documentation. Overrides WebformElementInterface::getPluginApiUrl
WebformElementBase::getPluginCategory public function Gets the category of the plugin instance. Overrides WebformElementInterface::getPluginCategory
WebformElementBase::getPluginDescription public function Gets the description of the plugin instance. Overrides WebformElementInterface::getPluginDescription
WebformElementBase::getPluginLabel public function Gets the label of the plugin instance. Overrides WebformElementInterface::getPluginLabel 3
WebformElementBase::getRawValue public function Get an element's submission raw value. Overrides WebformElementInterface::getRawValue
WebformElementBase::getRelatedTypes public function Get related element types. Overrides WebformElementInterface::getRelatedTypes 6
WebformElementBase::getTableColumn public function Get element's table column(s) settings. Overrides WebformElementInterface::getTableColumn 4
WebformElementBase::getTranslatableProperties public function Get translatable properties. Overrides WebformElementInterface::getTranslatableProperties
WebformElementBase::getTypeName public function Gets the type name (aka id) of the plugin instance with the 'webform_' prefix. Overrides WebformElementInterface::getTypeName
WebformElementBase::getValue public function Get an element's submission value. Overrides WebformElementInterface::getValue 1
WebformElementBase::hasCompositeFormElementWrapper protected function Determine if the element has a composite field wrapper.
WebformElementBase::hasManagedFiles public function Determine if the element is or includes a managed_file upload element. Overrides WebformElementInterface::hasManagedFiles 2
WebformElementBase::hasMultipleValues public function Checks if the element value has multiple values. Overrides WebformElementInterface::hasMultipleValues 6
WebformElementBase::hasMultipleWrapper public function Checks if the element uses the 'webform_multiple' element. Overrides WebformElementInterface::hasMultipleWrapper 3
WebformElementBase::hasProperty public function Determine if the element supports a specified property. Overrides WebformElementInterface::hasProperty
WebformElementBase::hasValue public function Determine if an element's has a submission value. Overrides WebformElementInterface::hasValue 2
WebformElementBase::hasWrapper public function Checks if the element has a wrapper. Overrides WebformElementInterface::hasWrapper
WebformElementBase::hiddenElementAfterBuild public static function Webform element #after_build callback.
WebformElementBase::initialize public function Initialize an element to be displayed, rendered, or exported. Overrides WebformElementInterface::initialize 8
WebformElementBase::isComposite public function Checks if the element is a composite element. Overrides WebformElementInterface::isComposite
WebformElementBase::isContainer public function Checks if the element is a container that can contain elements. Overrides WebformElementInterface::isContainer 9
WebformElementBase::isDisabled public function Checks if the element is disabled. Overrides WebformElementInterface::isDisabled
WebformElementBase::isEmptyExcluded public function Checks if an empty element is excluded. Overrides WebformElementInterface::isEmptyExcluded 1
WebformElementBase::isEnabled public function Checks if the element is enabled. Overrides WebformElementInterface::isEnabled 1
WebformElementBase::isExcluded public function Checks if the element is excluded via webform.settings. Overrides WebformElementInterface::isExcluded
WebformElementBase::isHidden public function Checks if the element is hidden. Overrides WebformElementInterface::isHidden 2
WebformElementBase::isInput public function Checks if the element carries a value. Overrides WebformElementInterface::isInput 11
WebformElementBase::isMultiline public function Checks if the element value could contain multiple lines. Overrides WebformElementInterface::isMultiline 2
WebformElementBase::isRoot public function Checks if the element is a root element. Overrides WebformElementInterface::isRoot 3
WebformElementBase::postCreate public function Acts on a webform submission element after it is created. Overrides WebformElementInterface::postCreate 1
WebformElementBase::postDelete public function Delete any additional value associated with an element. Overrides WebformElementInterface::postDelete 5
WebformElementBase::postLoad public function Acts on loaded webform submission. Overrides WebformElementInterface::postLoad 1
WebformElementBase::postSave public function Acts on a saved webform submission element before the insert or update hook is invoked. Overrides WebformElementInterface::postSave 5
WebformElementBase::preCreate public function Changes the values of an entity before it is created. Overrides WebformElementInterface::preCreate 1
WebformElementBase::preDelete public function 1
WebformElementBase::prefixExportHeader protected function Prefix an element's export header.
WebformElementBase::prepareCompositeFormElement protected function Replace Core's composite #pre_render with Webform's composite #pre_render.
WebformElementBase::prepareElementPreRenderCallbacks protected function Prepare an element's pre render callbacks. 3
WebformElementBase::prepareMultipleWrapper protected function Set multiple element wrapper. 1
WebformElementBase::prepareWrapper protected function Set an elements #states and flexbox wrapper. 1
WebformElementBase::preRenderFixFlexboxWrapper public static function Fix flexbox wrapper.
WebformElementBase::preRenderFixStatesWrapper public static function Fix state wrapper.
WebformElementBase::preSave public function Acts on a webform submission element before the presave hook is invoked. Overrides WebformElementInterface::preSave 4
WebformElementBase::preview public function Generate a renderable preview of the element. Overrides WebformElementInterface::preview 37
WebformElementBase::replaceTokens public function Replace tokens for all element properties. Overrides WebformElementInterface::replaceTokens
WebformElementBase::setConfigurationFormDefaultValue protected function Set an element's configuration webform element default value. 2
WebformElementBase::setConfigurationFormDefaultValueRecursive protected function Set configuration webform default values recursively.
WebformElementBase::setElementDefaultCallback protected function Set element's default callback.
WebformElementBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm
WebformElementBase::supportsMultipleValues public function Checks if the element supports multiple values. Overrides WebformElementInterface::supportsMultipleValues 8
WebformElementBase::trustedCallbacks public static function Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface::trustedCallbacks 1
WebformElementBase::validateMinlength public static function Form API callback. Validate element #minlength value.
WebformElementBase::validateMultiple public static function Form API callback. Validate element #multiple > 1 value.
WebformElementBase::validateUnique public static function Form API callback. Validate element #unique value.
WebformElementBase::validateUniqueMultiple public static function Form API callback. Validate element #unique multiple values.
WebformElementBase::__construct public function Constructs a WebformElementBase object. Overrides PluginBase::__construct 2
WebformEntityInjectionTrait::$webform protected property The webform.
WebformEntityInjectionTrait::$webformSubmission protected property The webform submission.
WebformEntityInjectionTrait::getWebform public function Get the webform that this handler is attached to.
WebformEntityInjectionTrait::getWebformSubmission public function Set webform and webform submission entity.
WebformEntityInjectionTrait::resetEntities public function Reset webform and webform submission entity.
WebformEntityInjectionTrait::setEntities public function
WebformEntityInjectionTrait::setWebform public function Set the webform that this is handler is attached to.
WebformEntityInjectionTrait::setWebformSubmission public function Get the webform submission that this handler is handling.