Problema passaggio di parametri tema

3 contenuti / 0 new
Ultimo contenuto
Problema passaggio di parametri tema

Ciao a tutti. Sto sviluppando un modulo che crea un nuovo contenuto oltre a quello normale creato da un node. Il mio problema è che quando richiamo la funzione theme. A questa funzione passo il node e poi mi serve passare alcuni parametri. Il problema è che dal secondo parametro in poi non mi viene passato nulla. Adesso posto il codice, in modo che possiate capire. Vi ringrazio. Un saluto!

Nel file .module ho questo:

<?php
   
/**
    * Implementation of hook_view()
    */
   
function dresdevent_view($node, $teaser = FALSE, $page = FALSE){
       
$node = node_prepare($node,$teaser);
       
$begin_date = check_plain($node->begin_date);
       
$end_date = check_markup($node->end_date);
       
//Theme Stuff
       
$node->content['dresdevent_info'] = array(
           
'#value' => theme('dresdevent_info', $begin_date, $end_date),
           
'#weight' => 1,
        );
        return
$node;
    }
   
/**
    * Implementation of hook_theme
    */
   
function dresdevent_theme(){
        return array(
           
'dresdevent_info' => array(
               
'template' => 'dresdevent_info',
               
'arguments' => array(
                   
'begin_date' => NULL,
                   
'end_date' => NULL,
                ),
            ),
        );
    }
?>

Mentre nel file .tpl.php ho questo:
<?php
   
//$Id$
    /**
    * Template to display dresdevent nodes
    */
?>

<div class = "dresdevent_info">
<h2><?php print 'Begin Date';?>:</h2>
<?php print $begin_date;?>
<h2><?php print 'End Date';?>:</h2>
<?php print $end_date;?>
</div>

Ti ho risistemato il posto, usate i pulsanti (o i tag) appositi per rendere più leggibili i vostri messaggi, aiuterà chi vi vuole aiutare a capire il problema più facilmente.

Prova a controllare che il tuo theme_* sia stato registrato (quell'hook viene chiamato solo all'installazione), quindi se lo hai aggiunto dopo il sistema non lo trova e non fa l'output correttamente...
poi, se non ricordo male, ci sarebbe da passare un array di valori, quindi qualche cosa del tipo:

<?php
theme
('dresdevent_info', array('begin_date'=>$begin_date, 'end_date' => $end_date));
?>

ma controlla che potrei essermi confuso con il preprocess :D

Ciao
Marco
--
My blog
Working at @agavee

Grazie per la risposta. Perdona se non ho postato correttamente tutto il codice. Per quanto riguarda il problema penso sia dovuto alla registrazione (come da te suggerito). Infatti dopo aver controllato è partito il tutto. Per quanto riguarda l'array non so dirti se la tua soluzione è corretta. Lasciando come ho messo nel codice postato funziona correttamente. Ciao
Roberto