bootstrap3-1.0.1/src/Plugin/Preprocess/Input.php
src/Plugin/Preprocess/Input.php
<?php
namespace Drupal\bootstrap3\Plugin\Preprocess;
use Drupal\bootstrap3\Utility\Element;
use Drupal\bootstrap3\Utility\Variables;
/**
* Pre-processes variables for the "input" theme hook.
*
* @ingroup plugins_preprocess
*
* @BootstrapPreprocess("input")
*/
class Input extends PreprocessBase implements PreprocessInterface {
/**
* {@inheritdoc}
*/
public function preprocessElement(Element $element, Variables $variables) {
// Remove name attribute if empty, for W3C compliance.
// @see template_preprocess_input().
if (isset($element['#attributes']['name']) && empty((string) $element['#attributes']['name'])) {
unset($element['#attributes']['name']);
}
// Autocomplete.
if ($route = $element->getProperty('autocomplete_route_name')) {
$variables['autocomplete'] = TRUE;
}
// Create variables for #input_group and #input_group_button flags.
$variables['input_group'] = $element->getProperty('input_group') || $element->getProperty('input_group_button');
// Map the element properties.
$variables->map([
'attributes' => 'attributes',
'icon' => 'icon',
'field_prefix' => 'prefix',
'field_suffix' => 'suffix',
'type' => 'type',
]);
// Ensure attributes are proper objects.
$this->preprocessAttributes();
}
}
