You are here

class SubformState in Markdown 8.2

Same name in this branch
  1. 8.2 src/Form/SubformState.php \Drupal\markdown\Form\SubformState
  2. 8.2 src/BcSupport/SubformState.php \Drupal\markdown\BcSupport\SubformState

Markdown subform state.

Hierarchy

Expanded class hierarchy of SubformState

2 files declare their use of SubformState
CommonMark.php in src/Plugin/Markdown/CommonMark/CommonMark.php
FilterMarkdown.php in src/Plugin/Filter/FilterMarkdown.php

File

src/Form/SubformState.php, line 13

Namespace

Drupal\markdown\Form
View source
class SubformState extends CoreSubformState implements SubformStateInterface {
  use FormTrait {
    addElementState as traitAddElementState;
  }

  /**
   * {@inheritdoc
   */
  protected function __construct(array &$subform, array &$parent_form, FormStateInterface $parent_form_state) {
    $this->decoratedFormState = $parent_form_state;
    $this->parentForm =& $parent_form;
    $this->subform =& $subform;
  }

  /**
   * {@inheritdoc
   */
  public function conditionalElement(array $element, $state, $name, array $conditions) {
    $element += [
      '#type' => 'html_tag',
    ];
    if ($element['#type'] === 'container') {
      $element += [
        '#theme_wrappers' => [
          'container__markdown_conditional_element__' . $name,
        ],
      ];
    }
    if ($element['#type'] === 'html_tag') {
      $element += [
        '#tag' => 'span',
      ];
    }
    $element['#attributes']['class'][] = 'js-form-item';
    $this
      ->addElementState($element, $state, $name, $conditions);

    // Older versions of Drupal core do not have the necessary helper method:
    // \Drupal\Core\Form\FormHelper::processStates. Instead of completely
    // back-porting that entire class, we'll just do what it does here.
    // @todo Replace with FormHelper::processStates() in D9.
    $element['#attached']['library'][] = 'core/drupal.states';
    $element['#attributes']['data-drupal-states'] = Json::encode($element['#states']);
    return drupal_render($element);
  }

  /**
   * {@inheritdoc}
   */
  public static function createForSubform(array &$subform, array &$parent_form, FormStateInterface $parent_form_state) {

    // Attempt to construct #parents array based on passed values.
    if (!isset($subform['#parents']) && $parent_form_state instanceof SubformStateInterface && ($name = array_search($subform, $parent_form, TRUE))) {
      $subform['#parents'] = array_merge($parent_form_state
        ->getAllParents(), [
        $name,
      ]);
    }
    return parent::createForSubform($subform, $parent_form, $parent_form_state);
  }

  /**
   * {@inheritdoc}
   */
  public function addElementState(array &$element, $state, $name, array $conditions, array $parents = NULL) {
    if (!isset($parents)) {
      $parents = $this
        ->getAllParents();
    }
    static::traitAddElementState($element, $state, $name, $conditions, $parents);
  }

  /**
   * {@inheritdoc}
   */
  public function createParents($name = NULL, $property = '#parents') {
    $parents = $this
      ->getAllParents($property);
    if ($name) {
      $parents = array_merge($parents, (array) $name);
    }
    return $parents;
  }

  /**
   * {@inheritdoc}
   */
  public function getAllParents($property = '#parents') {
    if (!isset($this->parentForm[$property])) {
      throw new \RuntimeException(sprintf('The subform and parent form must contain the %s property, which must be an array. Try calling this method from a #process callback instead.', $property));
    }

    // Merge the parent form and subform's relative parents.
    return array_merge($this->parentForm[$property], $this
      ->getParents($property));
  }

  /**
   * {@inheritdoc}
   */
  public function &getParentForm() {
    return $this->parentForm;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FormStateDecoratorBase::$decoratedFormState protected property The decorated form state.
FormStateDecoratorBase::addBuildInfo public function Adds a value to the build info. Overrides FormStateInterface::addBuildInfo
FormStateDecoratorBase::addCleanValueKey public function Adds a key to the array of form values that will be cleaned. Overrides FormStateInterface::addCleanValueKey
FormStateDecoratorBase::addRebuildInfo public function Adds a value to the rebuild info. Overrides FormStateInterface::addRebuildInfo
FormStateDecoratorBase::cleanValues public function Removes internal Form API elements and buttons from submitted form values. Overrides FormStateInterface::cleanValues
FormStateDecoratorBase::clearErrors public function Clears all errors against all form elements made by self::setErrorByName(). Overrides FormStateInterface::clearErrors
FormStateDecoratorBase::disableCache public function Prevents the form from being cached. Overrides FormStateInterface::disableCache
FormStateDecoratorBase::disableRedirect public function Prevents the form from redirecting. Overrides FormStateInterface::disableRedirect
FormStateDecoratorBase::get public function Gets any arbitrary property. Overrides FormStateInterface::get
FormStateDecoratorBase::getAlwaysProcess public function Determines if this form should always be processed. Overrides FormStateInterface::getAlwaysProcess
FormStateDecoratorBase::getBuildInfo public function Returns the build info for the form. Overrides FormStateInterface::getBuildInfo
FormStateDecoratorBase::getButtons public function Returns the submit and button elements for the form. Overrides FormStateInterface::getButtons
FormStateDecoratorBase::getCacheableArray public function Returns an array representation of the cacheable portion of the form state. Overrides FormStateInterface::getCacheableArray
FormStateDecoratorBase::getCleanValueKeys public function Gets the keys of the form values that will be cleaned. Overrides FormStateInterface::getCleanValueKeys
FormStateDecoratorBase::getCompleteForm public function Returns a reference to the complete form array. Overrides FormStateInterface::getCompleteForm
FormStateDecoratorBase::getError public function Returns the error message filed against the given form element. Overrides FormStateInterface::getError
FormStateDecoratorBase::getErrors public function Returns an associative array of all errors. Overrides FormStateInterface::getErrors
FormStateDecoratorBase::getFormObject public function Returns the form object that is responsible for building this form. Overrides FormStateInterface::getFormObject
FormStateDecoratorBase::getGroups public function Returns references to details elements to render them within vertical tabs. Overrides FormStateInterface::getGroups
FormStateDecoratorBase::getRebuildInfo public function Gets the rebuild info. Overrides FormStateInterface::getRebuildInfo
FormStateDecoratorBase::getRedirect public function Gets the value to use for redirecting after the form has been executed. Overrides FormStateInterface::getRedirect
FormStateDecoratorBase::getResponse public function Gets a response for this form. Overrides FormStateInterface::getResponse
FormStateDecoratorBase::getStorage public function Returns the entire set of arbitrary data. Overrides FormStateInterface::getStorage
FormStateDecoratorBase::getSubmitHandlers public function Gets the submit handlers. Overrides FormStateInterface::getSubmitHandlers
FormStateDecoratorBase::getTemporary public function Gets temporary data. Overrides FormStateInterface::getTemporary
FormStateDecoratorBase::getTemporaryValue public function Gets an arbitrary value from temporary storage. Overrides FormStateInterface::getTemporaryValue
FormStateDecoratorBase::getTriggeringElement public function Gets the form element that triggered submission. Overrides FormStateInterface::getTriggeringElement
FormStateDecoratorBase::getUserInput public function Returns the form values as they were submitted by the user. Overrides FormStateInterface::getUserInput
FormStateDecoratorBase::getValidateHandlers public function Gets the validate handlers. Overrides FormStateInterface::getValidateHandlers
FormStateDecoratorBase::has public function Determines if an arbitrary property is present. Overrides FormStateInterface::has
FormStateDecoratorBase::hasAnyErrors public static function Determines if any forms have any errors. Overrides FormStateInterface::hasAnyErrors
FormStateDecoratorBase::hasFileElement public function Returns whether this form has a file element. Overrides FormStateInterface::hasFileElement
FormStateDecoratorBase::hasInvalidToken public function Determines if the form has an invalid token. Overrides FormStateInterface::hasInvalidToken
FormStateDecoratorBase::hasTemporaryValue public function Determines if a temporary value is present. Overrides FormStateInterface::hasTemporaryValue
FormStateDecoratorBase::isBypassingProgrammedAccessChecks public function Determines if this form submission should bypass #access. Overrides FormStateInterface::isBypassingProgrammedAccessChecks
FormStateDecoratorBase::isCached public function Determines if the form should be cached. Overrides FormStateInterface::isCached
FormStateDecoratorBase::isExecuted public function Determines if the form was submitted and has been processed and executed. Overrides FormStateInterface::isExecuted
FormStateDecoratorBase::isMethodType public function Returns the HTTP form method. Overrides FormStateInterface::isMethodType
FormStateDecoratorBase::isProcessingInput public function Determines if the form input will be processed. Overrides FormStateInterface::isProcessingInput
FormStateDecoratorBase::isProgrammed public function Returns if this form was submitted programmatically. Overrides FormStateInterface::isProgrammed
FormStateDecoratorBase::isRebuilding public function Determines if the form should be rebuilt after processing. Overrides FormStateInterface::isRebuilding
FormStateDecoratorBase::isRedirectDisabled public function Determines if redirecting has been prevented. Overrides FormStateInterface::isRedirectDisabled
FormStateDecoratorBase::isSubmitted public function Determines if the form has been submitted. Overrides FormStateInterface::isSubmitted
FormStateDecoratorBase::isValidationComplete public function Determines if validation has been completed. Overrides FormStateInterface::isValidationComplete
FormStateDecoratorBase::isValidationEnforced public function Checks if validation is enforced. Overrides FormStateInterface::isValidationEnforced
FormStateDecoratorBase::loadInclude public function Ensures an include file is loaded whenever the form is processed. Overrides FormStateInterface::loadInclude
FormStateDecoratorBase::prepareCallback public function Converts support notations for a form callback to a valid callable. Overrides FormStateInterface::prepareCallback
FormStateDecoratorBase::set public function Sets a value to an arbitrary property. Overrides FormStateInterface::set
FormStateDecoratorBase::setAlwaysProcess public function Sets this form to always be processed. Overrides FormStateInterface::setAlwaysProcess
FormStateDecoratorBase::setBuildInfo public function Sets the build info for the form. Overrides FormStateInterface::setBuildInfo
FormStateDecoratorBase::setButtons public function Stores the submit and button elements for the form. Overrides FormStateInterface::setButtons
FormStateDecoratorBase::setCached public function Sets this form to be cached. Overrides FormStateInterface::setCached
FormStateDecoratorBase::setCleanValueKeys public function Sets the keys of the form values that will be cleaned. Overrides FormStateInterface::setCleanValueKeys
FormStateDecoratorBase::setCompleteForm public function Stores the complete form array. Overrides FormStateInterface::setCompleteForm
FormStateDecoratorBase::setError public function Flags an element as having an error. Overrides FormStateInterface::setError
FormStateDecoratorBase::setExecuted public function Sets that the form was submitted and has been processed and executed. Overrides FormStateInterface::setExecuted
FormStateDecoratorBase::setFormObject public function Sets the form object that is responsible for building this form. Overrides FormStateInterface::setFormObject
FormStateDecoratorBase::setFormState public function Sets the value of the form state. Overrides FormStateInterface::setFormState
FormStateDecoratorBase::setGroups public function Sets references to details elements to render them within vertical tabs. Overrides FormStateInterface::setGroups
FormStateDecoratorBase::setHasFileElement public function Sets that this form has a file element. Overrides FormStateInterface::setHasFileElement
FormStateDecoratorBase::setInvalidToken public function Flags the form state as having or not an invalid token. Overrides FormStateInterface::setInvalidToken
FormStateDecoratorBase::setMethod public function Sets the HTTP method to use for the form's submission. Overrides FormStateInterface::setMethod
FormStateDecoratorBase::setProcessInput public function Sets that the form should process input. Overrides FormStateInterface::setProcessInput
FormStateDecoratorBase::setProgrammed public function Sets that this form was submitted programmatically. Overrides FormStateInterface::setProgrammed
FormStateDecoratorBase::setProgrammedBypassAccessCheck public function Sets if this form submission should bypass #access. Overrides FormStateInterface::setProgrammedBypassAccessCheck
FormStateDecoratorBase::setRebuild public function Sets the form to be rebuilt after processing. Overrides FormStateInterface::setRebuild
FormStateDecoratorBase::setRebuildInfo public function Sets the rebuild info. Overrides FormStateInterface::setRebuildInfo
FormStateDecoratorBase::setRedirect public function Sets the redirect for the form. Overrides FormStateInterface::setRedirect
FormStateDecoratorBase::setRedirectUrl public function Sets the redirect URL for the form. Overrides FormStateInterface::setRedirectUrl
FormStateDecoratorBase::setRequestMethod public function Sets the HTTP method used by the request that is building the form. Overrides FormStateInterface::setRequestMethod
FormStateDecoratorBase::setResponse public function Sets a response for this form. Overrides FormStateInterface::setResponse
FormStateDecoratorBase::setStorage public function Sets the entire set of arbitrary data. Overrides FormStateInterface::setStorage
FormStateDecoratorBase::setSubmitHandlers public function Sets the submit handlers. Overrides FormStateInterface::setSubmitHandlers
FormStateDecoratorBase::setSubmitted public function Sets that the form has been submitted. Overrides FormStateInterface::setSubmitted
FormStateDecoratorBase::setTemporary public function Sets temporary data. Overrides FormStateInterface::setTemporary
FormStateDecoratorBase::setTemporaryValue public function Sets an arbitrary value in temporary storage. Overrides FormStateInterface::setTemporaryValue
FormStateDecoratorBase::setTriggeringElement public function Sets the form element that triggered submission. Overrides FormStateInterface::setTriggeringElement
FormStateDecoratorBase::setUserInput public function Sets the form values as though they were submitted by a user. Overrides FormStateInterface::setUserInput
FormStateDecoratorBase::setValidateHandlers public function Sets the validate handlers. Overrides FormStateInterface::setValidateHandlers
FormStateDecoratorBase::setValidationComplete public function Sets that validation has been completed. Overrides FormStateInterface::setValidationComplete
FormStateDecoratorBase::setValidationEnforced public function Enforces that validation is run. Overrides FormStateInterface::setValidationEnforced
FormStateValuesTrait::getValue public function Implements \Drupal\Core\Form\FormStateInterface::getValue()
FormStateValuesTrait::hasValue public function Implements \Drupal\Core\Form\FormStateInterface::hasValue()
FormStateValuesTrait::isValueEmpty public function Implements \Drupal\Core\Form\FormStateInterface::isValueEmpty()
FormStateValuesTrait::setValue public function Implements \Drupal\Core\Form\FormStateInterface::setValue()
FormStateValuesTrait::setValueForElement public function Implements \Drupal\Core\Form\FormStateInterface::setValueForElement()
FormStateValuesTrait::setValues public function Implements \Drupal\Core\Form\FormStateInterface::setValues()
FormStateValuesTrait::unsetValue public function Implements \Drupal\Core\Form\FormStateInterface::unsetValue()
FormTrait::$tokenModuleExists protected static property Flag indicating whether the token module exists.
FormTrait::addDataAttribute public static function Adds a data attribute to an element.
FormTrait::addDataAttributes public static function Adds multiple data attributes to an element.
FormTrait::addElementState public static function Adds a #states selector to an element. Aliased as: traitAddElementState
FormTrait::createElement public static function Creates an element, adding data attributes to it if necessary.
FormTrait::createInlineMessage public static function Creates an inline status message to be used in a render array.
FormTrait::createTokenBrowser public static function Creates a Token browser element for use when dealing with tokens.
FormTrait::getElementSelector public static function Retrieves the selector for an element.
FormTrait::resetToDefault public static function Allows a form element to be reset to its default value.
SubformState::$parentForm protected property The parent form.
SubformState::$subform protected property The subform.
SubformState::addElementState public function Adds a #states selector to an element. Overrides SubformStateInterface::addElementState
SubformState::conditionalElement public function {@inheritdoc Overrides SubformStateInterface::conditionalElement
SubformState::createForSubform public static function Creates a new instance for a subform. Overrides SubformState::createForSubform
SubformState::createParents public function Creates a new parents array for a given element. Overrides SubformStateInterface::createParents
SubformState::getAllParents public function Retrieves all parents for the form state up to this point. Overrides SubformStateInterface::getAllParents
SubformState::getCompleteFormState public function Gets the complete form state. Overrides SubformStateInterface::getCompleteFormState
SubformState::getLimitValidationErrors public function Retrieves the limited validation error sections. Overrides FormStateDecoratorBase::getLimitValidationErrors
SubformState::getParentForm public function Retrieves the parent form/element. Overrides SubformStateInterface::getParentForm
SubformState::getParents protected function Gets the subform's parents relative to its parent form.
SubformState::getValues public function Implements \Drupal\Core\Form\FormStateInterface::getValues() Overrides FormStateValuesTrait::getValues
SubformState::setErrorByName public function Files an error against a form element. Overrides FormStateDecoratorBase::setErrorByName
SubformState::setLimitValidationErrors public function Sets the limited validation error sections. Overrides FormStateDecoratorBase::setLimitValidationErrors
SubformState::__construct protected function {@inheritdoc Overrides SubformState::__construct