forms – Cómo hacer que el conjunto de campos personalizado se contraiga de forma predeterminada en Drupal 8

Pregunta:

En Drupal 7 había la opción de hacer que el conjunto de campos fuera plegable o no, y restringir el estado predeterminado de este elemento de formulario (contraído o no contraído). Ejemplo:

$form['contact_data'] = array(
        '#title' => t("Contact data"),
        '#type' => 'fieldset',
        '#collapsible' => TRUE,
        '#collapsed' => FALSE,
);

Ahora, en Drupal 8 no puedo encontrar atributos #collapsible y #collapsed en Drupal\Core\Render\Element\Fieldset . En la documentación oficial del elemento Fieldset no se menciona ningún elemento nuevo, que debería sustituir al elemento Fieldset.

Además, no hay una descripción general de los elementos de la API de formulario para Drupal 8, como para Drupal 7. Debe buscar manualmente todas las definiciones de Render Elements en el código, lo que lleva más tiempo (especialmente cuando desea ver una descripción general de los elementos y compararlos) .

Respuesta:

Todos los conjuntos de campos plegables se han reemplazado con elementos de detalles HTML5.

Fieldset y legand son muy difíciles de diseñar y ya no se recomienda su uso con Drupal 8. En su lugar, se reemplaza con una forma más cruzada de navegador, que son las etiquetas HTML5 Details & Summary.

'#type' => 'details'

https://www.drupal.org/node/1852020

Drupal 7

$form['advanced'] = array(
  '#type' => 'fieldset',
  '#title' => t('Advanced settings'),
  '#collapsible' => TRUE,
  '#collapsed' => FALSE,
  '#description' => t('Lorem ipsum.'),
);

Drupal 8

$form['advanced'] = array(
  '#type' => 'details',
  '#title' => t('Advanced settings'),
  '#description' => t('Lorem ipsum.'),
  '#open' => TRUE, // Controls the HTML5 'open' attribute. Defaults to FALSE.
);

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım