Modul saya menyediakan blok sederhana yang perlu berisi daftar tidak terurut dengan beberapa gambar. Dari fungsi blok, saya mengembalikan array yang dapat diulang:
$block['content'] = array(
'list' => array(
'#theme' => 'item_list',
'#type' => 'ul',
'#attributes' => array('class' => 'foo1'),
'#items' => array(
/* ... what should go here? */
),
),
);
Saya ingin memiliki beberapa array yang dapat di render sebagai item dalam daftar item, tetapi saya tampaknya tidak dapat memasukkan array apa pun ke dalam #items
array.
The Drupal 7 API theme_item_list docs mengatakan:
item: Array item yang akan ditampilkan dalam daftar. Jika item adalah string, maka item itu digunakan apa adanya. Jika item adalah array, maka elemen "data" dari array digunakan sebagai konten dari item daftar. Jika item adalah array dengan elemen "anak-anak", anak-anak tersebut ditampilkan dalam daftar bersarang. Semua elemen lain diperlakukan sebagai atribut elemen item daftar.
Saya mencoba menggunakan elemen "data" dan "anak-anak", tetapi saya mendapatkan data kosong <li>
atau ada kata Array
di dalamnya.
Apa cara yang tepat untuk melakukan ini? Apakah theme_item_list solusi yang tepat / terbaru?
'#items' => array('data' => 'my data')
tampaknya tidak benar-benar melakukan apa pun lebih dari'#items' => 'my data'
(lihat kode untuk theme_item_list ).'children'
digunakan khusus untuk membuat daftar bersarang. Saya tidak yakin mengapa ini diatur dengan cara ini.Jawaban:
Sesuatu seperti ini:
sumber
Saya mengalami masalah yang sama persis ini. Dari apa yang saya tahu membaca kode sumber untuk
theme_item_list()
itu tidak dapat menggunakan array yang dapat di render sebagai item untuk daftar. Saya akhirnya melewati array yang dapat diulang dengan semua gambar ke fungsi tema saya sendiri untuk menampilkan daftar. Pada dasarnya Anda dapat mengambil kode Anda saat ini dan mengubah#theme
properti ke fungsi tema khusus Anda dan menambahkan array yang dapat diurai sebagai anak-anak darilist
array Anda . Untuk membuat fungsi Anda lebih mudah, Anda dapat menambahkan<li>
dan</li>
tag sebagai#prefix
dan#suffix
masing - masing ke array render gambar Anda dan memanggildrupal_render_children()
array Anda, maka Anda hanya membungkusnya dalam<ul>
dan barang Anda.sumber
Saya menggunakan kode berikut dan membuat daftar setelah panggilan ajax
perbedaan utama adalah "#", jika Anda membaca kode fungsi di fungsi Drupal API theme_item_list , Anda akan melihat tidak ada hash untuk variabel
sumber