Funzione module_invoke

6 contenuti / 0 new
Ultimo contenuto
Funzione module_invoke

Ragazzi sono su drupal 5 e sto provando a studiare la funzione invoke,per recuperare un blocco e stamparlo in una page-front.tpl

Bene la funzione primaria dovrebbe essere questa:

<?php $block = module_invoke('block', 'block', 'view', 4);print $block['content'];?>

Dove il primo 'block' definisce il modulo che crea il blocco
il 'view' dovrebbe definire il tipo di output
e il '4' è il delta del blocco che voglio stampare... fino a qua tutto ok no ?

Ora,io ho dei blocchi che nn hanno delta ma hanno id a stringa e quindi ho provato a modificare il delta in:

<?php $block = module_invoke('block', 'block', 'view', 'block-search-0');print $block['content'];?>

In realtà se vado a vedere la pagina,non visualizza nulla di piu di un N/D ... se invece metto il delta numerico la funzione restituisce perfettamente il mio blocco... dove sbaglio ? :s

block-search-0

Vuol dire il blocco del modulo search con ID = 0

Correttamente dovrebbe essere:

<?php
$block
= module_invoke('block', 'block', 'view', 0);print $block['content'];
?>

Ciao
Marco
--
My blog
Working at @agavee

Si si avevo capito che il delta era lo 0..Il mio problema è che ho dei blocchi che nn hanno alcun delta numerico ma solo delta a stringhe di caratteri..
esempio: block-block-view-nomemiaview

Se imposto anche come modulo creante la "view",poi cosa metto al posto del delta?..Ho provato decine di possibilità mettendo il tutto tra gli apici (altrimenti nn formatta il codice) ma in quel modo se visualizzo la pagina,mi restituisce un bel N/D..quindi l'invoke funziona ma sembra nn capisca quale blocco recuperare...

devi mettere il nome del blocco, quindi:

<?php
$block
= module_invoke('block', 'block', 'view', 'nomemiaview');print $block['content'];
?>

non ho controllato ma dovrebbe andare.

Ciao
Marco
--
My blog
Working at @agavee

non funge mavimo

<?php $block = module_invoke('block' ,'block', 'view', 3); print $block['content']; ?>

Questo è per i blocchi... il 3 è il delta del tuo blocco...

per le views invece usa questo:

<?php print views_embed_view('View Name');?>