2010-10-29 4 views
2

J'ai un module personnalisé qui renvoie des données d'un appel de service Web. Il revient d'une réponse XML que je convertis en tableau.Fonction Drupal theme() et modèle personnalisé

Une fois que je le tableau, je fais:

$output = theme('search_srs_results', $data); 
return $output; 

mais je reçois un écran blanc. Aucune erreur apache/php/watchdog.

Je l'ai déjà fait dans un autre module sans aucune difficulté. Mon crochet de thème est défini et pointe vers un fichier de modèle, en passant l'argument $ data. Si je sauvegarde la sortie $ avant qu'elle ne soit retournée, c'est NULL.

$ data a définitivement un tableau peuplé avant d'être thématisé.

Si je fais le thème ('item_list', $ data) ;, il rend, pas d'écran blanc.

J'ai essayé de relire les docs sur hook_theme et theme() mais je n'ai pas l'air de faire quelque chose de mal.

Voici les fonctions thématiques:

/** 
* Implementation of hook_theme() 
*/ 

function srs_finder_theme() { 
    return array(
    'search_srs_results' => array(
     'template' => 'srs-finder-results', 
     'arguments' => array('data' => null), 
    ), 
); 
} 

/** 
* Implementation of hook_preprocess() 
*/ 

function srs_finder_preprocess_search_srs_results(&$vars) { 
    $data = $vars['data']; 
} 

Ce qui est manquant?

+0

Avez-vous effacé le cache dans la page Perfomance? – Nikit

+0

Oui, pendant que je développe ceci, j'ai cache_clear_all() dans le _init(). Est-ce que ce n'est pas suffisant? – Kevin

+2

où est le theme_search_srs_results? – Nikit

Répondre

3

Je ne comprends pas pourquoi vous avez besoin de hook_preprocess() fonction du tout. $data devrait être automatiquement disponible pour srs-finder-results.tpl.php. C'est parce que vous passez cette variable dans l'appel theme('src_src_results', $data) et le fait que vous avez déclaré qu'il y a 1 argument dans hook_theme(). Le fichier doit se trouver dans le dossier du module src_finder. Vous devez implémenter le code pour ça! (En variante, comme nikit a commenté ci-dessus, fournir une fonction theme_search_srs_results Dans ce cas, vous devrez supprimer l'entrée du tableau template.)

[Note: Si d'autres utilisateurs du module veulent remplacer ce modèle de thème, ils peuvent toujours donner leur propre implémentation de srs-finder-results.tpl.php dans le dossier de thème du thème actif.]

+0

Déjà fait tout cela. Je suppose que c'était le problème de mise en cache Drupal, il a commencé à fonctionner après s'être assuré qu'il était éteint et l'effacement quelques fois. – Kevin

Questions connexes