Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 17 |
Container | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
12 | |
0.00% |
0 / 17 |
getInfo | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 12 |
|||
processContainer | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Render\Element\Container. | |
*/ | |
namespace Drupal\Core\Render\Element; | |
use Drupal\Component\Utility\Html as HtmlUtility; | |
use Drupal\Core\Form\FormStateInterface; | |
/** | |
* Provides a render element that wraps child elements in a container. | |
* | |
* Surrounds child elements with a <div> and adds attributes such as classes or | |
* an HTML ID. | |
* | |
* Usage example: | |
* @code | |
* $form['needs_accommodation'] = array( | |
* '#type' => 'checkbox', | |
* '#title' => 'Need Special Accommodations?', | |
* ); | |
* | |
* $form['accommodation'] = array( | |
* '#type' => 'container', | |
* '#attributes' => array( | |
* 'class' => 'accommodation', | |
* ), | |
* '#states' => array( | |
* 'invisible' => array( | |
* 'input[name="needs_accommodation"]' => array('checked' => FALSE), | |
* ), | |
* ), | |
* ); | |
* | |
* $form['accommodation']['diet'] = array( | |
* '#type' => 'textfield', | |
* '#title' => t('Dietary Restrictions'), | |
* ); | |
* @endcode | |
* | |
* @RenderElement("container") | |
*/ | |
class Container extends RenderElement { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getInfo() { | |
$class = get_class($this); | |
return array( | |
'#process' => array( | |
array($class, 'processGroup'), | |
array($class, 'processContainer'), | |
), | |
'#pre_render' => array( | |
array($class, 'preRenderGroup'), | |
), | |
'#theme_wrappers' => array('container'), | |
); | |
} | |
/** | |
* Processes a container element. | |
* | |
* @param array $element | |
* An associative array containing the properties and children of the | |
* container. | |
* @param \Drupal\Core\Form\FormStateInterface $form_state | |
* The current state of the form. | |
* @param array $complete_form | |
* The complete form structure. | |
* | |
* @return array | |
* The processed element. | |
*/ | |
public static function processContainer(&$element, FormStateInterface $form_state, &$complete_form) { | |
// Generate the ID of the element if it's not explicitly given. | |
if (!isset($element['#id'])) { | |
$element['#id'] = HtmlUtility::getUniqueId(implode('-', $element['#parents']) . '-wrapper'); | |
} | |
return $element; | |
} | |
} |