Devre dışı bırakmak istediğiniz tek bir öğeyi boş bir biçime dönüştürün <optgroup>
.
Artıları:
- Bu,
hook_form_alter
özel formunuzu oluştururken bir veya doğrudan yapılabilir, temanızda bir theme_select
işlev uygulamaya gerek yoktur .
Eksileri:
- Ortaya çıkan DOM'daki
value='title'
orijinalle ilişkilendirilen özelliği temsil etmenin bir yolu yoktur <option>
.
- Zaten bir optik grupla ilgili bir seçeneği devre dışı bırakmaya çalışıyorsanız YMMV. Yuvalanmış optgroups gerçekten işe yarayabilir, ancak bu test edilmemiştir ve doğrulanmamıştır.
Uygulama:
Drupal'daki optgroups, #options
dizinin içinde key => value
değerin kendisinin bir dizi olduğu herhangi bir çift olarak gösterilir .
Bu yüzden OP örneğindeki örneğe , değerini t('Titles only')
olmak key
ve daha sonra değeri boş bir dizi yapmak için hareket ettiririz.
$form['feed'] = array(
'#type' => 'select',
'#title' => t('Display of XML feed items'),
'#options' => array(
t('Titles only') => array(), // This one becomes disabled as an empty optgroup
'teaser' => t('Titles plus teaser'),
'fulltext' => t('Full text'),
),
'#description' => t('Global setting for the length of XML feed items that are output by default.'),
);
Ortaya çıkan HTML şöyle görünecektir:
<form>
<div>
<label>Display of XML feed items</label>
<select>
<optgroup>Titles only</optgroup>
<option value="teaser">Titles plus teaser</option>
<option value="fulltext">Full text</option>
</select>
</div>
</form>