Come rendere compresso il set di campi personalizzato per impostazione predefinita in Drupal 8


12

In Drupal 7 c'era l'opzione di rendere il fieldset comprimibile o meno e di limitare lo stato predefinito di questo elemento del modulo (compresso o non compresso). Esempio:

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

Ora, in Drupal 8 non riesco a trovare gli attributi #collapsiblee #collapseddentro Drupal\Core\Render\Element\Fieldset. Nella documentazione ufficiale dell'elemento Fieldset non è menzionato alcun nuovo elemento, che dovrebbe sostituire l'elemento Fieldset.

Inoltre non esiste una panoramica degli elementi API Form per Drupal 8, come per Drupal 7. Devi cercare manualmente tutta la definizione di Render Elements nel codice, il che richiede più tempo (soprattutto quando desideri vedere la panoramica degli elementi e confrontarli) .

Risposte:


25

Tutti i set di campi comprimibili sono stati sostituiti con elementi di dettagli HTML5.

Fieldset e legand sono molto difficili da modellare e non è più consigliabile utilizzarli con Drupal 8. Invece viene sostituito con un altro modo cross-browser, ovvero i tag Dettagli e Riepilogo HTML5.

'#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.
);

2
Grazie per la risposta Ma ancora una volta, sono molto frustrato dal fatto che questa (non piccola) modifica è descritta solo in alcune pagine "record di modifica" e non è aggiornata alle pagine di documentazione ufficiale ... Vedi: Online documentation: Not done...
Juraj Nemec

1
I record di modifica sono il luogo perfetto per cercare come è cambiata la cosa X in Druapl 8. Sono facilmente ricercabili e contengono sempre esempi prima / dopo. Sia il codice che la documentazione sono scritti principalmente nel tempo libero delle persone. Non lamentarti, aiuta a migliorarlo.
Berdir,

@Berdir Sì, conosco la documentazione scritta nel tempo libero e lo apprezzo :) Ma personalmente non penso che i record di modifica siano facilmente ricercabili (tranne che da Google). Primario, come sviluppatore, cerchi nella documentazione (o documentazione API), quindi sarebbe sufficiente un semplice riferimento di link a record di modifica specifici (e non richiede tanto tempo quanto scrivere quegli esempi nei record di modifica). A parte questo, devo ammettere che gli esempi di codice nei record di modifica sono molto buoni.
Juraj Nemec,

Dove si inserisce questo codice nei file drupal 8?
DavSev,

0

Esempio di utilizzo della notazione HereDoc per memorizzare la descrizione HTML:

$desc_html = <<<HTML
<p>
  <strong>Put the HTML to be displayed when open in here.</strong>
<p>
HTML;

$form['advanced'] = array(
  '#type' => 'details',
  '#title' => t('Advanced settings'),
  '#description' => t($desc_html),
  '#open' => TRUE, // Controls the HTML5 'open' attribute. Defaults to FALSE.
);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.