Frage

Hat jemand Ideen, wie ich eine Region in eine Ansicht einbetten könnte .tpl.php -Datei?

Ich erledige es leicht genug in einem Knoten .tpl.php, indem ich so etwas hinzufügt theme_preproces_node():

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

Überhaupt kein Problem. Es gibt jedoch offensichtlich keine theme_preprocess_view() Funktion, und ich erhalte Speicherfehler, wenn ich versuche, dasselbe Snippet hinzuzufügen theme_preprocess().

Fataler Fehler: Ermöglichte Speichergröße von 104857600 Bytes erschöpft (versucht, 523800 Bytes zuzuweisen) in /Users/cpharmston/sites/projects/theespot/neh01/includes/database.mysqli.inc in Zeile 42

Ich bin ratlos. Irgendwelche Ideen?

Vielen Dank!

War es hilfreich?

Lösung

'Schnell und schmutziger' Weg: Sie könnten das einfach setzen theme('blocks', [region_name]) Rufen Sie direkt in die Ansichten .tpl.php -Datei an.

Während die Vorverarbeitungsfunktionen auf eine bessere Trennung der "Business" -Logik vs. "Anzeige" -Logik abzielen, sind sie in keiner Weise erforderlich, sodass Sie trotzdem benutzerdefinierten Code in eine .TPL.PHP -Datei auf eine Weise einfügen können, die Sie möchten.

'Richtige Weg: Dort sind Vorverarbeitungsfunktionen für Ansichten, nur mehr als eins. Schauen Sie sich die thema.inc -Datei des Views -Moduls an. Dort finden Sie verschiedene Vorverarbeitungsfunktionen für die verschiedenen Vorlagen, die möglicherweise von einer Ansicht verwendet werden (z. B. "unformatiert" vs. 'Tabelle' vs. 'Liste' usw.). Sie müssen nur die für die Ansichtsvorlage relevante finden, die die neue Variable injizieren möchte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top