Situasi saya adalah sebagai berikut: Saya memiliki tipe konten Seminar, dengan bidang A, B, dan C. Saya memiliki daerah Header, Footer, Content, dan Sidebar Kiri. Ada beberapa bidang dalam Seminar yang ingin saya tampilkan di wilayah Konten, tetapi juga di wilayah Sidebar Kiri.
Bagaimana cara saya melakukan ini? Mohon maaf jika ini sudah dijawab sebelumnya. Saya seorang pengembang dan tidak ragu untuk terjun ke fungsi hook dan preprocessor. Saya memiliki modul Views yang diinstal, tetapi belum pernah menggunakannya (ini adalah situs Drupal pertama saya, jika Anda tidak tahu: P).
Bersulang.
EDIT: Ini untuk Drupal 7 .
Jawaban:
Tidak ada cara mudah di luar kotak untuk menambahkan konten sebuah simpul ke berbagai wilayah pada halaman. Ada beberapa cara untuk mengatasi masalah ini.
Cara nonkode: Tampilan & Blok
Buat tampilan
(ditambah pengaturan tambahan apa pun yang Anda inginkan)
Lalu pergi ke halaman blokir administrator. Pindahkan blok tampilan yang baru dibuat, ke wilayah yang Anda inginkan ditampilkan. Seharusnya hanya ditampilkan pada halaman simpul seminar.
Ulangi untuk semua wilayah
Cara Pengodean dengan theme_preprocess_region ():
kode akan terlihat seperti ini
Ini hanya untuk Drupal 7. Sekarang tersedia di region.tpl.php Anda.
sumber
The Tampilan Suite modul memungkinkan Anda untuk melakukan hal ini. Anda harus mengaktifkan modul Display Suite Extras untuk mengekspos kawasan tema sebagai target untuk komponen node. Informasi tentang cara melakukan ini dapat ditemukan di bidang Tambah ke halaman blok dokumentasi Display Suite
sumber
Saya memiliki masalah yang sama. Solusinya cukup mudah. Anda dapat mendasarkan fakta bahwa dalam Drupal 7 kita dapat mendefinisikan view_mode kita sendiri, tidak hanya FULL dan TEASER (seperti yang kita ketahui dari versi tertua). Jadi, tentukan view_mode lain untuk digunakan di wilayah Anda: mis. LEFTHAND. Drupal menampilkan view_mode LENGKAP di wilayah konten. Jadi, Anda harus mengatakan kepada Drupal untuk menampilkan LEFTHAND di wilayah Sidebar Left.
Di template_preprocess_page ()
Dalam node.tpl.php tambahkan tampilan baru untuk mode tampilan kiri
sumber
if (array_key_exists('block_14',$vars['page']['main_content'])){}
membuatnya hanya muncul di halaman dengan blok tertentu.Jika Display Suite sepertinya terlalu banyak untuk kebutuhan Anda (Ini adalah modul yang hebat, tetapi mungkin berlebihan jika Anda hanya perlu memindahkan beberapa bidang) ada modul untuk tujuan ini saja -> Blok CCK .
Saya tahu ini disebut blok 'CCK', tetapi bekerja dengan Drupal 7 (yang membawa fungsionalitas CCK ke inti).
sumber
Sedikit perubahan pada jawaban @Patrik Lucan,
if ($vars['node'])
menyebabkan masalah pada halaman yang bukan node, misalnya halaman depan khusus dengan blok atau halaman tampilan.Diubah menjadi:
if (array_key_exists('node', $vars))
Yang sepertinya telah menyelesaikan masalah.
sumber
Sementara itu ada modul untuk ini. Dari halaman modul:
sumber