2016-08-08 21 views
2

Ich bin neu in Drupal und Lektüre durch Dokumente, aber ich hoffe, eine Erklärung für etwas zu bekommen.Inhalt der Drupal-Seite

Ich habe eine Seite namens page - type-home-page.tpl.php. Ein Teil dieser Seite druckt render ($ page ['content'])). Ich möchte etwas entfernen, das als Teil des Seiteninhalts von der Seite gerendert wird, aber nicht verstehen, woher es kommt und wo/wie es aussieht.

Danke!

+1

Bitte geben Sie an, ob es sich um Drupal 7 oder Drupal 6 handelt (Sie setzen beide Tags ein) – mgadrat

+0

Eine gute Funktion, um zu sehen, welche Variablen in einer Vorlage verfügbar sind, ist die Funktion 'get_defined_vars()'.Wenn Sie das Entwicklungsmodul aktiviert haben, könnten Sie in Ihrer Vorlage 'dpm (get_defined_vars);' aufrufen, um zu sehen, mit welchen Variablen Sie spielen müssen – 2pha

Antwort

0

Sie Angenommen reden Drupal-7

Nun, die $page['content'] eine Zeichenfolge enthält, die eine gerenderte Version von dem, was in den Inhaltsbereich Ihres Themas injiziert wird.

Standardmäßig ist der einzige Block in dieser Region der Block "Main page content", der vom Drupal-Core generiert wird. Viele Dinge können diesen Inhalt erzeugen, aber er passiert immer die Menü-API. Wenn Sie beispielsweise einen Knoten anzeigen, lautet die verwendete URL: node/12. Das Knotenmodul deklariert einen Menüeintrag für node/%node, dieser Menüeintrag enthält eine Callback-Funktion, die alles rendern wird, was das Modul rendern möchte. Das Modul kann dann eine andere Strategie verwenden, um seinen Inhalt von einer einfachen Funktion zu einer komplexen Verschachtelung von Vorlagen zu machen.

Der Schlüssel zu ändern, was in der Box ist, tut mir leid, was in der $page['content'] ist, zu wissen, was gerendert wird und zu verstehen, wie es gerendert wird.

Wenn es sich um einen Knoten handelt, möchten Sie zuerst prüfen, ob Sie Ihr Ziel über die Anzeigeeinstellungen des Inhaltstyps erreichen können. admin/structure/types/manage/page/display: Und das gilt für alle Entitäten (Benutzer, Kommentare, Taxonomiebegriff usw.) Da dies das erste ist, was das Modul dieser Entitäten zusammenstellt, wenn sie versuchen, Ihren Inhalt zu rendern.

Wenn dies nicht ausreicht, um Ihr Ziel zu erreichen, können Sie in das Modul schauen, das den Pfad rendert, um zu sehen, ob es keinen .tpl.php hat. Sie können es in Ihrem Design erneut verwenden. Sie sollten die Datei in Ihr Thema kopieren und einfügen und bearbeiten.

Wenn das Modul keine tpl Datei eine Vorlage Vorschlag außer Kraft zu setzen, versuchen: here's a list from Drupal.org

Ex: node--type.tpl.php

Wenn all dies nicht Ihr Bedürfnis nicht erfüllt, werden Sie in graben müssen preprocess functions; Mit diesen Funktionen können Sie ändern, was in den an .tpl.php Dateien übergebenen Variablen ist. Das ist etwas fortgeschrittener und ich empfehle Ihnen, this previous stackoverflow question/answer

0

einfach zu lesen, verwenden Sie nicht die $ page ['content'], die den gesamten Inhalt druckt, sondern stattdessen Ihren benutzerdefinierten Vorlagencode und separate Feldwerte, wo Sie brauchen sie mag:

<?php print render($content['your_field_name']); ?> 

https://drupal.stackexchange.com/questions/30063/how-to-print-fields-in-node-tpl-php

wenn Sie nur einfache Styling tun wollen, wie einige Feld ohne Sie Inhaltstyp Anzeigeoptionen verwenden können, wie mgadrat erklärt, aber wenn Sie einige komplexe Styling verwenden möchten, mit völlig benutzerdefinierte HTML diese Lösung ist einfacher.