Saya menggunakan Drupal 7. Saat ini, saya memiliki navigasi menu utama dan Pengalih bahasa yang ada di header situs web saya. Saya menempatkan mereka di sana dengan pergi ke CMS> Struktur> Blok dan kemudian menyeret blok ke wilayah header.
Bagaimana cara saya menempatkan secara sistematis blok ini di header?
block_example_block_info()
dan nilai 'wilayah' bisa berguna untuk diuji.Jawaban:
Untuk mengubah wilayah tempat blok yang ditentukan oleh modul lain ditempatkan, Anda dapat menerapkan hook_block_info_alter () , yang menerima argumen berikut:
$blocks
(disahkan oleh referensi): array yang berisi definisi blok, dikunci oleh modul, dan delta$theme
: tema di mana blok didefinisikan$code_blocks
: blok seperti yang didefinisikan darihook_block_info()
implementasi, sebelum nilainya ditimpa oleh nilai yang diperoleh dari databasesumber
Adalah sah untuk menambahkan array yang dapat di render ke wilayah halaman manapun di hook_page_build (). Drupal 7 contoh untuk menambahkan minipanel ke wilayah footer.
Ini adalah teknik yang sama yang menggunakan modul konteks.
Catatan: Anda tidak perlu mengaktifkan block.module agar ini berfungsi.
sumber
Pada D6 pada dasarnya
Di D7 saya pikir itu
tapi saya masih mendapatkan kecepatan pada D7.
sumber
drupal_add_region_content()
adalah jalan buntu karena ini dimaksudkan untuk menginstal / meningkatkan halaman.Jika Anda menambahkan blok khusus, Anda melakukan ini menggunakan hook_block_info, mengatur opsi status ke 1 dan opsi wilayah ke wilayah Anda ingin blok ditempatkan.
Contoh:
Jika Anda ingin mengubah blok yang sudah ada, Anda akan menggunakan hook_block_info_alter () sebagai gantinya, memperbarui opsi yang sama telah ditunjukkan di bawah ini.
Contoh:
Untuk informasi lebih lanjut, lihat https://api.drupal.org/api/drupal/modules%21block%21block.api.php/function/hook_block_info/7
sumber
Kode ini didasarkan pada @ jonhattan's, tetapi kode-nya tidak membuat HTML kontainer blok atau tautan kontekstual. Saya juga menyediakan cara sederhana untuk menentukan semua blok dan wilayah di satu tempat.
Catatan: Tidak seperti kode-nya, Anda DO perlu block.module diinstal.
sumber
Ini bukan bentuk terbaik, tetapi Anda dapat secara manual menempatkan konten ke dalam array halaman seperti ini ...
Meskipun Anda harus tetap menggunakan Konteks atau hanya blok inti. Membuat plugin baru tidak separah kelihatannya. Cukup beri nama file dengan benar, siapkan pemicu dan tes. contoh .
sumber
Anda juga dapat menyesuaikan blok di tema Anda seperti:
sumber