Özel alan kümesi Drupal 8'de varsayılan olarak daraltılmış


13

Drupal 7'de, alan kümesinin daraltılabilir olup olmadığı ve bu form öğesinin (daraltılmış veya daraltılmamış) varsayılan durumunu kısıtlama seçeneği vardı. Misal:

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

Şimdi, Drupal 8'de ben attributtes bulamıyorum #collapsibleve #collapsediçinde Drupal\Core\Render\Element\Fieldset. Fieldset öğesinin resmi belgelerinde, Fieldset öğesinin yerine geçmesi gereken yeni bir öğeden bahsedilmez.

Ayrıca Drupal 7 gibi Drupal 8 için Form API öğelerine genel bakış yoktur . Koddaki tüm Render Öğeleri tanımını manuel olarak aramanız gerekir, bu da daha fazla zaman alır (özellikle öğelere genel bakış görmek ve bunları karşılaştırmak istediğinizde) .

Yanıtlar:


26

Daraltılabilir tüm alan kümeleri, HTML5 ayrıntıları öğeleriyle değiştirildi.

Fieldset ve bacağın şekillendirilmesi çok zordur ve artık Drupal 8 ile kullanılması önerilmez. Bunun yerine HTML5 Ayrıntıları ve Özet etiketleri olan daha fazla çapraz tarayıcı yolu ile değiştirildi.

'#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
Cevabınız için teşekkürler. Ama yine de, bu (küçük değil) değişikliğin sadece bazı "değişiklik kaydı" sayfasında açıklandığı ve resmi dokümantasyon sayfalarında güncellenmediği gerçeğinden çok sinirliyim ... Bakınız: Online documentation: Not done...
Juraj Nemec

1
Değişiklik kayıtları, Druapl 8'de X'in nasıl değiştiğini görmek için mükemmel bir yerdir. Kolayca aranabilir ve her zaman önce / sonra örnekler içerirler. Hem kod hem de dokümantasyon çoğunlukla insanların boş zamanlarında yazılır. Şikayet etmeyin, geliştirmeye yardımcı olun.
Berdir

@Berdir Evet, belgelerin boş zamanlarında yazılı olduğunu biliyorum ve bunu takdir ediyorum :) Ama kişisel olarak, değişiklik kayıtlarının kolayca aranabilir olduğunu (google hariç). Birincil, geliştirici olarak, belgelerde (veya API belgelerinde) arama yaparsınız, bu nedenle belirli değişiklik kaydına basit bağlantı referansı yeterli olacaktır (ve değişiklik kayıtlarına bu örnekleri yazmak kadar zaman almaz). Bunun dışında, itiraf etmeliyim ki, değişiklik kayıtlarındaki kod örnekleri çok iyi.
Juraj Nemec

Bu kodu drupal 8 dosyalarında nerede ilan ediyorsunuz?
DavSev

0

HTML Açıklamasını saklamak için HereDoc gösterimini kullanan örnek:

$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.
);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.