You are here

class YamlFormTime in YAML Form 8

Same name in this branch
  1. 8 src/Element/YamlFormTime.php \Drupal\yamlform\Element\YamlFormTime
  2. 8 src/Plugin/YamlFormElement/YamlFormTime.php \Drupal\yamlform\Plugin\YamlFormElement\YamlFormTime

Provides a 'yamlform_time' element.

Plugin annotation


@YamlFormElement(
  id = "yamlform_time",
  label = @Translation("Time"),
  category = @Translation("Date/time elements"),
)

Hierarchy

Expanded class hierarchy of YamlFormTime

File

src/Plugin/YamlFormElement/YamlFormTime.php, line 17

Namespace

Drupal\yamlform\Plugin\YamlFormElement
View source
class YamlFormTime extends YamlFormElementBase {

  /**
   * {@inheritdoc}
   */
  public function getDefaultProperties() {
    return parent::getDefaultProperties() + [
      // Time settings.
      'time_format' => '',
      'min' => '',
      'max' => '',
      'step' => '',
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function formatText(array &$element, $value, array $options = []) {
    if (empty($value)) {
      return '';
    }
    $format = $this
      ->getFormat($element);
    if ($format == 'value') {
      $time_format = isset($element['#time_format']) ? $element['#time_format'] : 'H:i';
      return date($time_format, strtotime($value));
    }
    return parent::formatText($element, $value, $options);
  }

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

    // Append supported time input format to #default_value description.
    $form['general']['default_value']['#description'] .= '<br />' . $this
      ->t('Accepts any time in any <a href="https://www.gnu.org/software/tar/manual/html_chapter/tar_7.html#Date-input-formats">GNU Date Input Format</a>. Strings such as now, +2 hours, and 4:30 PM are all valid.');

    // Time.
    $form['time'] = [
      '#type' => 'fieldset',
      '#title' => $this
        ->t('Time settings'),
    ];
    $form['time']['time_format'] = [
      '#type' => 'yamlform_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. Time format is used to format the submitted value."),
      '#options' => [
        'g:i A' => $this
          ->t('12 hour (@time)', [
          '@time' => date('g:i A'),
        ]),
        'g:i:s A' => $this
          ->t('12 hour with seconds (@time)', [
          '@time' => date('g:i:s A'),
        ]),
        'H:i' => $this
          ->t('24 hour (@time)', [
          '@time' => date('H:i'),
        ]),
        'H:i:s' => $this
          ->t('24 hour with seconds (@time)', [
          '@time' => date('H:i:s'),
        ]),
      ],
      '#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>.'),
    ];
    $form['time']['min'] = [
      '#type' => 'yamlform_time',
      '#title' => $this
        ->t('Min'),
      '#description' => $this
        ->t('Specifies the minimum time.'),
    ];
    $form['time']['max'] = [
      '#type' => 'yamlform_time',
      '#title' => $this
        ->t('Max'),
      '#description' => $this
        ->t('Specifies the maximum time.'),
    ];
    $form['time']['step'] = [
      '#type' => 'yamlform_select_other',
      '#title' => $this
        ->t('Step'),
      '#description' => $this
        ->t('Specifies the minute intervals.'),
      '#options' => [
        '' => $this
          ->t('1 minute'),
        30 => $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.'),
    ];
    return $form;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
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.
YamlFormElementBase::$configFactory protected property The configuration factory.
YamlFormElementBase::$currentUser protected property The current user.
YamlFormElementBase::$elementInfo protected property A element info manager.
YamlFormElementBase::$elementManager protected property The form element manager.
YamlFormElementBase::$entityTypeManager protected property The entity type manager.
YamlFormElementBase::$logger protected property A logger instance.
YamlFormElementBase::$tokenManager protected property The token manager.
YamlFormElementBase::build protected function Build an element as text or HTML. 2
YamlFormElementBase::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm 1
YamlFormElementBase::buildExportHeader public function Build an element's export header. Overrides YamlFormElementInterface::buildExportHeader 3
YamlFormElementBase::buildExportOptionsForm public function Get an element's export options form. Overrides YamlFormElementInterface::buildExportOptionsForm 4
YamlFormElementBase::buildExportRecord public function Build an element's export row. Overrides YamlFormElementInterface::buildExportRecord 5
YamlFormElementBase::buildHtml public function Build an element as HTML element. Overrides YamlFormElementInterface::buildHtml 1
YamlFormElementBase::buildText public function Build an element as text element. Overrides YamlFormElementInterface::buildText 1
YamlFormElementBase::checkAccessRules public function Check element access (rules). Overrides YamlFormElementInterface::checkAccessRules
YamlFormElementBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
YamlFormElementBase::displayDisabledWarning public function Display element disabled warning. Overrides YamlFormElementInterface::displayDisabledWarning 1
YamlFormElementBase::formatHtml public function Format an element's value as HTML. Overrides YamlFormElementInterface::formatHtml 15
YamlFormElementBase::formatTableColumn public function Format an element's table column value. Overrides YamlFormElementInterface::formatTableColumn 2
YamlFormElementBase::getAdminLabel public function Get an element's admin label (#admin_title, #title or #yamlform_key). Overrides YamlFormElementInterface::getAdminLabel
YamlFormElementBase::getConfigurationFormProperties public function Get an associative array of element properties from configuration form. Overrides YamlFormElementInterface::getConfigurationFormProperties 2
YamlFormElementBase::getConfigurationFormProperty protected function Get configuration property value. 1
YamlFormElementBase::getDefaultBaseProperties protected function Get default base properties used by all elements.
YamlFormElementBase::getDefaultFormat public function Get an element's default format name. Overrides YamlFormElementInterface::getDefaultFormat 17
YamlFormElementBase::getElementSelectorInputsOptions protected function Get an element's (sub)inputs selectors as options. 7
YamlFormElementBase::getElementSelectorOptions public function Get an element's selectors as options. Overrides YamlFormElementInterface::getElementSelectorOptions 11
YamlFormElementBase::getElementStateOptions public function Get an element's supported states as options. Overrides YamlFormElementInterface::getElementStateOptions
YamlFormElementBase::getExportDefaultOptions public function Get an element's default export options. Overrides YamlFormElementInterface::getExportDefaultOptions 4
YamlFormElementBase::getFormat public function Get element's format name by looking for '#format' property, global settings, and finally default settings. Overrides YamlFormElementInterface::getFormat 1
YamlFormElementBase::getFormats public function Get an element's available formats. Overrides YamlFormElementInterface::getFormats 18
YamlFormElementBase::getInfo public function Retrieves the default properties for the defined element type. Overrides YamlFormElementInterface::getInfo
YamlFormElementBase::getKey public function Get an element's key/name. Overrides YamlFormElementInterface::getKey
YamlFormElementBase::getLabel public function Get an element's label (#title or #yamlform_key). Overrides YamlFormElementInterface::getLabel
YamlFormElementBase::getPluginApiLink public function Get link to element's API documentation. Overrides YamlFormElementInterface::getPluginApiLink
YamlFormElementBase::getPluginApiUrl public function Get the URL for the element's API documentation. Overrides YamlFormElementInterface::getPluginApiUrl
YamlFormElementBase::getPluginLabel public function Gets the label of the plugin instance. Overrides YamlFormElementInterface::getPluginLabel
YamlFormElementBase::getRelatedTypes public function Get related element types. Overrides YamlFormElementInterface::getRelatedTypes 3
YamlFormElementBase::getTableColumn public function Get element's table column(s) settings. Overrides YamlFormElementInterface::getTableColumn 3
YamlFormElementBase::getTestValue public function Get test value for an element. Overrides YamlFormElementInterface::getTestValue 7
YamlFormElementBase::getTranslatableProperties public function Get translatable properties. Overrides YamlFormElementInterface::getTranslatableProperties 7
YamlFormElementBase::getTypeName public function Gets the type name (aka id) of the plugin instance with the 'yamlform_' prefix. Overrides YamlFormElementInterface::getTypeName
YamlFormElementBase::hasMultipleValues public function Checks if element value has multiple values. Overrides YamlFormElementInterface::hasMultipleValues 3
YamlFormElementBase::hasProperty public function Determine if an element supports a specified property. Overrides YamlFormElementInterface::hasProperty
YamlFormElementBase::hasWrapper public function Checks if the element has a wrapper. Overrides YamlFormElementInterface::hasWrapper
YamlFormElementBase::initialize public function Initialize an element to be displayed, rendered, or exported. Overrides YamlFormElementInterface::initialize 1
YamlFormElementBase::isComposite public function Checks if element is a composite element. Overrides YamlFormElementInterface::isComposite
YamlFormElementBase::isContainer public function Checks if element is a container that can contain elements. Overrides YamlFormElementInterface::isContainer 3
YamlFormElementBase::isDisabled public function Checks if element is disabled. Overrides YamlFormElementInterface::isDisabled
YamlFormElementBase::isEnabled public function Checks if element is enabled. Overrides YamlFormElementInterface::isEnabled 1
YamlFormElementBase::isHidden public function Checks if element is hidden. Overrides YamlFormElementInterface::isHidden
YamlFormElementBase::isInput public function Checks if the element carries a value. Overrides YamlFormElementInterface::isInput 5
YamlFormElementBase::isMultiline public function Checks if element value could contain multiple lines. Overrides YamlFormElementInterface::isMultiline 3
YamlFormElementBase::isRoot public function Checks if element is a root element. Overrides YamlFormElementInterface::isRoot 1
YamlFormElementBase::postCreate public function Acts on a form submission element after it is created. Overrides YamlFormElementInterface::postCreate 1
YamlFormElementBase::postDelete public function Delete any additional value associated with an element. Overrides YamlFormElementInterface::postDelete 2
YamlFormElementBase::postLoad public function Acts on loaded form submission. Overrides YamlFormElementInterface::postLoad 1
YamlFormElementBase::postSave public function Acts on a saved form submission element before the insert or update hook is invoked. Overrides YamlFormElementInterface::postSave 2
YamlFormElementBase::preCreate public function Changes the values of an entity before it is created. Overrides YamlFormElementInterface::preCreate 1
YamlFormElementBase::preDelete public function 1
YamlFormElementBase::prefixExportHeader protected function Prefix an element's export header.
YamlFormElementBase::prepare public function Prepare an element to be rendered within a form. Overrides YamlFormElementInterface::prepare 18
YamlFormElementBase::prepareWrapper protected function Set an elements Flexbox and #states wrapper. 1
YamlFormElementBase::preSave public function Acts on a form submission element before the presave hook is invoked. Overrides YamlFormElementInterface::preSave 2
YamlFormElementBase::setConfigurationFormDefaultValue protected function Set an element's configuration form element default value. 2
YamlFormElementBase::setConfigurationFormDefaultValueRecursive protected function Set configuration form default values recursively.
YamlFormElementBase::setDefaultValue public function Set an element's default value using saved data. Overrides YamlFormElementInterface::setDefaultValue 8
YamlFormElementBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm
YamlFormElementBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm 3
YamlFormElementBase::validateUnique public static function Form API callback. Validate #unique value.
YamlFormElementBase::__construct public function Constructs a Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct
YamlFormTime::form public function Gets the actual configuration form array to be built. Overrides YamlFormElementBase::form
YamlFormTime::formatText public function Format an element's value as plain text. Overrides YamlFormElementBase::formatText
YamlFormTime::getDefaultProperties public function Only a few elements don't inherit these default properties. Overrides YamlFormElementBase::getDefaultProperties