class FormHelper in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Form/FormHelper.php \Drupal\Core\Form\FormHelper
Provides helpers to operate on forms.
Hierarchy
- class \Drupal\Core\Form\FormHelper
Expanded class hierarchy of FormHelper
Related topics
3 files declare their use of FormHelper
- Field.php in core/
modules/ views/ src/ Plugin/ views/ field/ Field.php - Contains \Drupal\views\Plugin\views\field\Field.
- FilterPluginBase.php in core/
modules/ views/ src/ Plugin/ views/ filter/ FilterPluginBase.php - Contains \Drupal\views\Plugin\views\filter\FilterPluginBase.
- FormHelperTest.php in core/
tests/ Drupal/ Tests/ Core/ Form/ FormHelperTest.php - Contains \Drupal\Tests\Core\Form\FormHelperTest.
File
- core/
lib/ Drupal/ Core/ Form/ FormHelper.php, line 17 - Contains \Drupal\Core\Form\FormHelper.
Namespace
Drupal\Core\FormView source
class FormHelper {
/**
* Rewrite #states selectors.
*
* @param array $elements
* A renderable array element having a #states property.
* @param string $search
* A partial or entire jQuery selector string to replace in #states.
* @param string $replace
* The string to replace all instances of $search with.
*
* @see drupal_process_states()
*/
public static function rewriteStatesSelector(array &$elements, $search, $replace) {
if (!empty($elements['#states'])) {
foreach ($elements['#states'] as $state => $ids) {
static::processStatesArray($elements['#states'][$state], $search, $replace);
}
}
foreach (Element::children($elements) as $key) {
static::rewriteStatesSelector($elements[$key], $search, $replace);
}
}
/**
* Helper function for self::rewriteStatesSelector().
*
* @param array $conditions
* States conditions array.
* @param string $search
* A partial or entire jQuery selector string to replace in #states.
* @param string $replace
* The string to replace all instances of $search with.
*/
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));
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
FormHelper:: |
protected static | function | Helper function for self::rewriteStatesSelector(). | |
FormHelper:: |
public static | function | Rewrite #states selectors. |