Чи є спосіб встановити видимість блоку програмно без використання модуля фільтра PHP?


11

Увімкнувши основний модуль фільтра PHP, я можу використовувати PHP-код для встановлення видимості блоку на сторінці налаштування блоку.

Але я не хочу вмикати модуль фільтру PHP для міри безпеки. Так чи є спосіб це зробити в спеціальному модулі ? Я не можу знайти гачок, роблячи це. А тісний гачок hook_block_view_alterможе лише змінити вміст блоку.

Відповіді:


13

Так. Якщо встановити вміст блоків неправдивим, він приховає його від дисплея та приховає область, якщо інших блоків немає. Я думаю, вам потрібна інсталяція, подібна до таких:

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

...

function _my_module_custom_block(){
    if( HIDE_CONDITION )
        return false;
}

2
хіба це все ще не відображатиме блок із порожнім вмістом?
gilzero

1
працює, чудово. Дякую.
gilzero

@gilzero, ні це не буде.
WM

1

Блок видимості правил модуль є ще однією альтернативою доступні ... яка не вимагає PHP фільтр повинен бути включений . Ось цитата зі сторінки проекту:

Модуль видимості блоку Правил дозволяє використовувати компоненти Правил для управління видимістю блоку. Це забезпечує адміністраторам та розробникам Drupal надзвичайну гнучкість у контролі, коли блоки повинні відображатися на їх веб-сайтах, на додаток до параметрів видимості за замовчуванням, які надає Drupal.

Загальна ідея полягає в тому, що якщо ви можете це зробити за допомогою Правил, ви можете використовувати його для управління видимістю блоку, тому можливості є безмежними.

Потрібно показати блок лише для користувачів, зареєстрованих більше місяця тому?

Можливо, у вас є блок, який потрібно показувати лише між 8:00 та 17:00 у будні дні?

Що з відображенням або приховуванням блоку на основі поточних погодних умов?

Все це можна зробити, використовуючи Правила блоку видимості.

Більше того, згідно з " якщо ви можете це зробити за допомогою Правил, ви можете використовувати його для управління видимістю блоку " вище, у вас є сила Правил, доступних для реалізації всілякої користувацької логіки (пор. Частина "програмно / користувацький модуль" частина вашого питання).

Для ілюстрації того, як використовувати цей модуль, зверніться до моєї відповіді в розділі " Як запобігти показу блоку Views на адміністраторів, таких як user / 1? ".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.