You are here

protected static function FormHelper::processStatesArray in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Form/FormHelper.php \Drupal\Core\Form\FormHelper::processStatesArray()

Helper function for self::rewriteStatesSelector().

Parameters

array $conditions: States conditions array.

string $search: A partial or entire jQuery selector string to replace in #states.

string $replace: The string to replace all instances of $search with.

1 call to FormHelper::processStatesArray()
FormHelper::rewriteStatesSelector in core/lib/Drupal/Core/Form/FormHelper.php
Rewrite #states selectors.

File

core/lib/Drupal/Core/Form/FormHelper.php, line 52
Contains \Drupal\Core\Form\FormHelper.

Class

FormHelper
Provides helpers to operate on forms.

Namespace

Drupal\Core\Form

Code

protected static function processStatesArray(array &$conditions, $search, $replace) {

  // Retrieve the keys to make it easy to rename a key without changing the
  // order of an array.
  $keys = array_keys($conditions);
  $update_keys = FALSE;
  foreach ($conditions as $id => $values) {
    if (strpos($id, $search) !== FALSE) {
      $update_keys = TRUE;
      $new_id = str_replace($search, $replace, $id);

      // Replace the key and keep the array in the same order.
      $index = array_search($id, $keys, TRUE);
      $keys[$index] = $new_id;
    }
    elseif (is_array($values)) {
      static::processStatesArray($conditions[$id], $search, $replace);
    }
  }

  // Updates the states conditions keys if necessary.
  if ($update_keys) {
    $conditions = array_combine($keys, array_values($conditions));
  }
}