2010-11-27 6 views
0

le code i mis dans mythème template.php6 ----- pourquoi drupal thème() ne peut pas émettre

function mytheme_theme(){ 
    return array(
     'mytheme_example' => 'example', 
     'argument' => array('myvar' => null), 
    ); 
    } 

le code que je mets dans le node.tpl.php

<?php 
$html = ""; 
$myvar = "hello,world"; 
$html .= theme('mytheme_example', myvar); 

    return $html; 
?> 

le code que je mets dans le example.tpl.php

<div> 
    here is the <b><?php print myvar; ?></b>being created. 
    </div> 

j'ai effacé le cache, mais sur la page de l'article de nœud, il n'y a pas une sortie à propos de Bonjour tout le monde. Ps: quels fichiers je peux utiliser le fichier hook_theme, template.php, module. y at-il des fichiers que je peux utiliser ce crochet?

Répondre

0

Il semble que vous ayez déclaré votre hook_theme correctement dans template.php, donc je ne pense pas que ce soit le problème.

Je l'ai fait repérer un problème de syntaxe avec votre node.tpl.php, devrait-il pas:

<?php 
    $vars = array('myvar' => 'hello, world'); 
    $html = theme('mytheme_example', $vars); 
    return $html; 
?> 

Notez le tableau associé, avec le « myvar » (la variable déclarée en hook_theme), est passé en tant que clé.

Un autre point, il est de pratique courante de nommer le fichier template de la même manière que le nom du hook, donc je suggère d'appeler le template mytheme-example.tpl.php.

Voir drupal.org pour plus d'informations

+0

J'ai modifié l'erreur que vous avez pointée, mais je ne peux toujours pas afficher la valeur de $ myvar. – runeveryday

+0

Avoir mis à jour la solution pour refléter un tableau associé, car je crois que c'est le problème – wiifm

0

Je ne sais pas si vous avez résolu cette question encore.

Je voudrais essayer de déclarer mon thème de cette façon:

function mytheme_theme(){ 
    return array(
     'mytheme_example' => array(
     'arguments' => array('arguments'=>array()), 
     'template' => 'example', 
     ), 
    } 

Voilà comment je le fais habituellement et cela fonctionne très bien sur moi.

+0

J'ai essayé votre code, mais il n'y a toujours pas de sortie. Vous pouvez tester mon code sur votre environnement local. Je vous remercie. – runeveryday

Questions connexes