Esiste un modo per impostare la visibilità dei blocchi a livello di codice senza utilizzare il modulo Filtro PHP?


11

Abilitando il modulo principale PHP Filter, posso usare il codice PHP per impostare la visibilità di un blocco nella pagina di configurazione del blocco.

Ma non voglio abilitare il modulo filtro PHP per misure di sicurezza. Quindi c'è un modo per farlo nel modulo personalizzato ? Non riesco a trovare un gancio per farlo. E un hook ravvicinato hook_block_view_alterpuò solo modificare il contenuto del blocco.

Risposte:


13

Sì. Se si imposta il contenuto dei blocchi su false, questo verrà nascosto dal display e verrà nascosta la regione se non sono presenti altri blocchi. Immagino che avresti bisogno di una configurazione simile alla seguente:

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

...

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

2
non mostrerebbe comunque un blocco con contenuto vuoto?
Gilzero,

1
funziona alla grande. grazie.
Gilzero,

@gilzero, no non lo sarebbe.
WM,

1

Il modulo di visibilità del blocco Regole è un'altra alternativa disponibile ... che non richiede l'abilitazione del filtro PHP . Ecco una citazione dalla sua pagina del progetto:

Il modulo Visibilità del blocco regole consente di utilizzare i componenti delle regole per controllare la visibilità del blocco. Ciò fornisce agli amministratori e agli sviluppatori di Drupal un'estrema flessibilità nel controllare quando i blocchi dovrebbero essere visualizzati sui loro siti Web, oltre alle opzioni di visibilità predefinite fornite da Drupal.

L'idea generale è che se puoi farlo con le Regole, puoi usarlo per controllare la visibilità dei blocchi, quindi le possibilità sono illimitate.

Devi mostrare un blocco solo per gli utenti registrati più di un mese fa?

Forse hai un blocco che deve essere mostrato solo tra le 8:00 e le 17:00 nei giorni feriali?

Che dire di mostrare o nascondere un blocco in base alle condizioni meteorologiche attuali?

Tutto ciò può essere fatto utilizzando la visibilità del blocco Regole.

Inoltre, come da " se riesci a farlo con le Regole, puoi usarlo per controllare la visibilità dei blocchi " sopra, hai il potere delle Regole disponibili per implementare ogni tipo di logica personalizzata (cfr. La parte "modulo programmaticamente / personalizzato" della tua domanda).

Per un'illustrazione di come utilizzare questo modulo, consultare la mia risposta a " Come interrompere la visualizzazione di un blocco Views agli amministratori, come utente / 1? ".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.