Apakah ada cara untuk mengatur visibilitas blok secara terprogram tanpa menggunakan modul Filter PHP?

11

Dengan mengaktifkan modul Filter PHP inti, saya dapat menggunakan kode PHP untuk mengatur visibilitas blok di halaman konfigurasi blok.

Tapi saya tidak ingin mengaktifkan modul filter PHP untuk langkah keamanan. Jadi apakah ada cara untuk melakukannya dalam modul khusus ? Saya tidak dapat menemukan kait melakukannya. Dan hook yang dekat hook_block_view_alterhanya dapat mengubah konten blokir.

gilzero
sumber

Jawaban:

13

Iya. Mengatur konten blok ke false akan menyembunyikannya dari tampilan dan akan menyembunyikan wilayah jika tidak ada blok lain. Saya membayangkan Anda akan membutuhkan pengaturan yang mirip dengan yang berikut:

$block['content'] = _my_module_custom_block();

...

function _my_module_custom_block(){
    if( HIDE_CONDITION )
        return false;
}
Sam152
sumber
2
bukankah masih menampilkan blok dengan konten kosong?
gilzero
1
bekerja, bagus. Terima kasih.
gilzero
@ Gillzero, tidak itu tidak akan.
WM
1

The Rules blok visibilitas modul lain alternatif yang tersedia ... yang tidak memerlukan filter PHP harus diaktifkan . Berikut ini kutipan dari halaman proyeknya:

Modul visibilitas blok Aturan memungkinkan komponen Aturan yang akan digunakan untuk mengontrol visibilitas blok. Ini memberikan administrator dan pengembang Drupal fleksibilitas ekstrim dalam mengontrol kapan blok harus ditampilkan di situs web mereka, di samping opsi visibilitas default yang disediakan oleh Drupal.

Gagasan umum adalah bahwa jika Anda bisa melakukannya dengan Aturan, Anda bisa menggunakannya untuk mengontrol visibilitas blok, sehingga kemungkinan tidak terbatas.

Perlu menunjukkan blok hanya untuk pengguna yang terdaftar lebih dari sebulan yang lalu?

Mungkin Anda memiliki blok yang harus ditampilkan hanya antara jam 8 pagi - 5 sore pada hari kerja?

Bagaimana dengan menampilkan atau menyembunyikan blok berdasarkan kondisi cuaca saat ini?

Semua ini dapat dilakukan dengan menggunakan visibilitas blok Aturan.

Selain itu, sesuai bagian " jika Anda dapat melakukannya dengan Aturan, Anda dapat menggunakannya untuk mengontrol visibilitas blok " di atas, Anda memiliki kekuatan Aturan yang tersedia untuk mengimplementasikan semua jenis logika kustom (cfr. Bagian "modul / modul kustom" dari pertanyaan Anda).

Untuk ilustrasi tentang cara menggunakan modul ini, lihat jawaban saya untuk " Bagaimana cara menghentikan tampilan blok untuk menampilkan ke admin, seperti pengguna / 1? ".

Pierre
sumber