2009-10-05 19 views
2

Quelqu'un at-il des idées sur la façon dont je pourrais incorporer une région dans un fichier .tpl.php de vue?Drupal6: Incorporation d'une région dans une vue .tpl.php

J'assouvirai assez facilement dans un .tpl.php de nœud en ajoutant quelque chose comme ceci à theme_preproces_node():

$vars['promos'] = theme('blocks', 'promos'); 

Pas de problème du tout. Cependant, il n'y a évidemment pas de fonction theme_preprocess_view(), et j'obtiens des erreurs de mémoire lorsque j'essaie d'ajouter le même fragment à theme_preprocess().

Fatal error: Allowed memory size of 104857600 bytes exhausted (tried to allocate 523800 bytes) in /Users/cpharmston/Sites/Projects/Threespot/neh01/includes/database.mysqli.inc on line 42

Je suis perplexe. Des idées?

Merci!

Répondre

2

'Rapide et sale': Vous pouvez simplement mettre l'appel theme('blocks', [region_name]) directement dans le fichier .tpl.php de vues. Bien que les fonctions de prétraitement visent à une meilleure séparation entre la logique métier et la logique d'affichage, elles ne sont absolument pas obligatoires. Vous pouvez donc toujours placer du code personnalisé dans un fichier .tpl.php comme vous le souhaitez. comme.

façon « correcte »: Il sont fonctions pour prétraiter vues, un peu plus d'un titre. Jetez un oeil sur le fichier theme.inc du module views. Vous y trouverez différentes fonctions de prétraitement pour les différents modèles éventuellement utilisés par une vue (par exemple, «non formaté» par opposition à «table» par opposition à «liste», etc.). Vous avez juste besoin de trouver celui qui est pertinent pour le modèle de vue que vous voulez injecter la nouvelle variable.

+0

Déposer celui-ci sous le "DOH!" Catégorie. J'étais si profondément dans la séparation des affaires et de la logique d'affichage que j'ai négligé l'évidence. Merci pour l'aide :) –

+1

+1 montrant la bonne façon Drupal – googletorp