Meine Situation ist wie folgt: Ich habe ein Inhaltstyp-Seminar mit den Feldern A, B und C. Ich habe Regionen Kopfzeile, Fußzeile, Inhalt und Seitenleiste links. Es gibt einige Felder in Seminar, die im Inhaltsbereich angezeigt werden sollen, aber auch im linken Bereich der Seitenleiste.
Wie mache ich das? Entschuldigung, wenn dies bereits zuvor beantwortet wurde. Ich bin Entwickler und zögere nicht, mich mit Hook- und Präprozessorfunktionen zu beschäftigen. Ich habe das Views-Modul installiert, es aber noch nie verwendet (dies ist meine erste Drupal-Site, wenn Sie nicht sagen können: P).
Prost.
EDIT: Dies ist für Drupal 7 .
Antworten:
Es ist nicht einfach, den Inhalt eines Knotens sofort zu verschiedenen Regionen auf der Seite hinzuzufügen. Es gibt mehrere Möglichkeiten, um dieses Problem anzugehen.
Nicht codierende Methode: Ansichten und Blöcke
Erstellen Sie eine Ansicht
(plus die gewünschten zusätzlichen Einstellungen)
Gehen Sie dann zur Seite Administratorblock. Verschieben Sie den neu erstellten Ansichtsblock in die Region, in der er angezeigt werden soll. Es sollte nur auf den Seiten des Seminarknotens angezeigt werden.
Wiederholen Sie dies für alle Regionen
Codierungsmethode mit theme_preprocess_region ():
Code würde ungefähr so aussehen
Dies ist nur für Drupal 7. Jetzt ist es in Ihrer Region verfügbar.tpl.php.
quelle
Mit dem Display Suite- Modul können Sie dies tun. Sie müssen das Modul "Display Suite-Extras" aktivieren, um Themenbereiche als Ziele für Knotenkomponenten verfügbar zu machen. Informationen dazu finden Sie in den Feldern Hinzufügen zu einer Blockseite der Display Suite-Dokumentation
quelle
Ich hatte das gleiche Problem. Die Lösung ist ganz einfach. Sie können die Tatsache begründen, dass wir in Drupal 7 unseren eigenen view_mode definieren können, nicht nur FULL und TEASER (wie wir aus den ältesten Versionen wissen). Definieren Sie also einen anderen view_mode für die Verwendung in Ihrer Region: z. B. LEFTHAND. Drupal zeigt FULL view_mode im Inhaltsbereich an. Sie müssen Drupal also sagen, dass LEFTHAND in der linken Seitenleiste angezeigt werden soll.
In template_preprocess_page ()
Fügen Sie in node.tpl.php eine neue Anzeige für den Ansichtsmodus für die linke Hand hinzu
quelle
if (array_key_exists('block_14',$vars['page']['main_content'])){}
habe ich es nur auf Seiten mit einem bestimmten Block angezeigt.Wenn Display Suite zu viel für Ihre Anforderungen zu sein scheint (es ist ein großartiges Modul, aber es könnte übertrieben sein, wenn Sie nur ein paar Felder verschieben müssen), gibt es ein Modul nur für diesen Zweck -> CCK-Blöcke .
Ich weiß, dass es 'CCK'-Blöcke heißt, aber es funktioniert mit Drupal 7 (was die Funktionalität von CCK auf den Kern gebracht hat).
quelle
Eine geringfügige Änderung der Antwort von @Patrik Lucan
if ($vars['node'])
verursachte Probleme auf Seiten, die keine Knoten waren, z. B. benutzerdefinierte Startseite mit Block- oder Ansichtsseite.Gewechselt zu:
if (array_key_exists('node', $vars))
Welches scheint das Problem gelöst zu haben.
quelle
Inzwischen gibt es dafür ein Modul. Von der Modulseite:
quelle