Bagaimana cara membuat kawasan khusus dalam sebuah tema?
58
Saya ingin menambahkan area baru yang akan menjadi lebar situs. Jelaskan proses memasukkan wilayah baru ini ke dalam tema saya, jika mungkin menggeneralisasikannya untuk menambahkan wilayah kustom baru.
Anda menentukan wilayah dalam file .info tema Anda. Lihat: Struktur file .info
Anda kemudian harus meletakkan tag templat yang relevan di file page.tpl.php Anda.
Jadi misalnya jika Anda mendefinisikan wilayah sidebardi file tema .info Anda, Anda kemudian akan menambahkan: <?php print render($page['sidebar']); ?>ke tempat yang relevan di halaman Anda.tpl.php.
Untuk mengklarifikasi tentang hal ini: Jika Anda menentukan daerah Anda sendiri, Anda perlu mendefinisikan semua yang Anda gunakan, termasuk yang diperlukan. Dengan kata lain, Anda tidak bisa hanya mendefinisikan wilayah tambahan: Jika Anda mendefinisikan apa pun, Anda harus mendefinisikan semuanya.
Membuat wilayah untuk tema Drupal 7 tidak berbeda dengan membuat wilayah untuk wilayah Drupal 6; perbedaan antara Drupal 7 dan versi sebelumnya pada dasarnya:
Daerah tidak didefinisikan menggunakan mytheme_regions()fungsi seperti yang dilakukan dalam Drupal 5, tetapi mereka didefinisikan dalam mytheme.info menggunakan regions[]arahan, yang juga dilakukan dengan tema Drupal 6.
Wilayah diberikan menggunakan fungsi Drupal render(), alih-alih mencetak konten variabel.
Wilayah Drupal 7 default adalah yang berikut:
regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer
Tema inti Drupal 7 sekarang termasuk wilayah bernama 'disorot' yang menggunakan tampilan yang sama dengan area pernyataan misi di Drupal 6; mereka juga menyertakan wilayah bernama 'bantuan', yang secara default memiliki konten yang sama dari $helpvariabel yang digunakan oleh Drupal 6.
Wilayah tema didefinisikan dalam file .info tema Anda - lihat dokumen . Cukup tambahkan baris dengan regions[corner] = Corneruntuk mendapatkan wilayah Corner.
Maka Anda perlu mengedit file page.tpl.php dan menambahkan di <php print render($corner); ?>mana Anda ingin daerah itu muncul. Jika tema Anda tidak memiliki page.tpl.php, salin dari tema dasar atau dari modul sistem.
Perangkap umum:
Jika file theme.info tidak memiliki wilayah yang dideklarasikan, itu menggunakan wilayah default Drupal. Jika Anda ingin menambahkan, Anda harus mendeklarasikan ulang wilayah default. Anda dapat, tentu saja, menghapus wilayah mana pun tetapi tolong dukung wilayah yang diperlukan. Lihat dokumen lagi.
Perubahan pada file .info atau menambahkan file baru ke tema (seperti page.tpl.php) hanya akan terlihat setelah Anda menghapus cache.
Omega, tema dasar yang sangat populer, tidak akan memerlukan perubahan apa pun di page.tpl.php, hanya file .info. Tetapi Anda harus mengunjungi pengaturan tema di UI dan menetapkan wilayah Anda ke zona.
Apakah regions[content] = Contentsatu-satunya wilayah yang diperlukan di D7? drupal.org/node/171205#regions tampaknya menyiratkan ini, tapi kemudian drupal.org/node/171224 mengatakan bahwa daerah yang diperlukan adalah content, help, page_topdanpage_bottom
Jim Garrison
Saya tidak tahu apakah Drupal memeriksa salah satu wilayah, tetapi contentjelas sangat penting. helpdidukung oleh core (untuk menampilkan pesan bantuan), page_bottommungkin di mana js bawah dicetak dan page_toptampaknya digunakan untuk navbar seperti bilah alat inti.
Capi Etheriel
2
Ikuti langkah-langkah di bawah ini untuk membuat wilayah khusus di tema Anda:
Buka file theme.info Anda dan tambahkan baris ini.
regions[machine_name_of_your_region]=Name of your region
Meskipun Anda juga bisa memanggil blok wilayah di templat simpul, Anda umumnya akan menambahkan wilayah ke templat halaman tema. Ini biasanya page.tpl.php, atau jika Anda memiliki file templat khusus untuk halaman yang berbeda, edit juga. Wilayah baru hanya akan muncul di halaman yang dibangun di sekitar templat tempat Anda menambahkan wilayah baru. Rekatkan di mana pun Anda ingin daerah baru Anda muncul.
Jawaban:
Anda menentukan wilayah dalam file .info tema Anda. Lihat: Struktur file .info
Anda kemudian harus meletakkan tag templat yang relevan di file page.tpl.php Anda.
Jadi misalnya jika Anda mendefinisikan wilayah
sidebar
di file tema .info Anda, Anda kemudian akan menambahkan:<?php print render($page['sidebar']); ?>
ke tempat yang relevan di halaman Anda.tpl.php.sumber
Satu hal lain: Jangan lewatkan daerah yang dibutuhkan!
Lebih lanjut tentang ini dapat ditemukan di http://drupal.org/update/themes/6/7#closure .
Untuk mengklarifikasi tentang hal ini: Jika Anda menentukan daerah Anda sendiri, Anda perlu mendefinisikan semua yang Anda gunakan, termasuk yang diperlukan. Dengan kata lain, Anda tidak bisa hanya mendefinisikan wilayah tambahan: Jika Anda mendefinisikan apa pun, Anda harus mendefinisikan semuanya.
sumber
Membuat wilayah untuk tema Drupal 7 tidak berbeda dengan membuat wilayah untuk wilayah Drupal 6; perbedaan antara Drupal 7 dan versi sebelumnya pada dasarnya:
mytheme_regions()
fungsi seperti yang dilakukan dalam Drupal 5, tetapi mereka didefinisikan dalam mytheme.info menggunakanregions[]
arahan, yang juga dilakukan dengan tema Drupal 6.render()
, alih-alih mencetak konten variabel.Wilayah Drupal 7 default adalah yang berikut:
Tema inti Drupal 7 sekarang termasuk wilayah bernama 'disorot' yang menggunakan tampilan yang sama dengan area pernyataan misi di Drupal 6; mereka juga menyertakan wilayah bernama 'bantuan', yang secara default memiliki konten yang sama dari
$help
variabel yang digunakan oleh Drupal 6.sumber
Wilayah tema didefinisikan dalam file .info tema Anda - lihat dokumen . Cukup tambahkan baris dengan
regions[corner] = Corner
untuk mendapatkan wilayah Corner.Maka Anda perlu mengedit file page.tpl.php dan menambahkan di
<php print render($corner); ?>
mana Anda ingin daerah itu muncul. Jika tema Anda tidak memiliki page.tpl.php, salin dari tema dasar atau dari modul sistem.Perangkap umum:
Jika file theme.info tidak memiliki wilayah yang dideklarasikan, itu menggunakan wilayah default Drupal. Jika Anda ingin menambahkan, Anda harus mendeklarasikan ulang wilayah default. Anda dapat, tentu saja, menghapus wilayah mana pun tetapi tolong dukung wilayah yang diperlukan. Lihat dokumen lagi.
Perubahan pada file .info atau menambahkan file baru ke tema (seperti page.tpl.php) hanya akan terlihat setelah Anda menghapus cache.
Omega, tema dasar yang sangat populer, tidak akan memerlukan perubahan apa pun di page.tpl.php, hanya file .info. Tetapi Anda harus mengunjungi pengaturan tema di UI dan menetapkan wilayah Anda ke zona.
sumber
regions[content] = Content
satu-satunya wilayah yang diperlukan di D7? drupal.org/node/171205#regions tampaknya menyiratkan ini, tapi kemudian drupal.org/node/171224 mengatakan bahwa daerah yang diperlukan adalahcontent
,help
,page_top
danpage_bottom
content
jelas sangat penting.help
didukung oleh core (untuk menampilkan pesan bantuan),page_bottom
mungkin di mana js bawah dicetak danpage_top
tampaknya digunakan untuk navbar seperti bilah alat inti.Ikuti langkah-langkah di bawah ini untuk membuat wilayah khusus di tema Anda:
Buka file theme.info Anda dan tambahkan baris ini.
Meskipun Anda juga bisa memanggil blok wilayah di templat simpul, Anda umumnya akan menambahkan wilayah ke templat halaman tema. Ini biasanya page.tpl.php, atau jika Anda memiliki file templat khusus untuk halaman yang berbeda, edit juga. Wilayah baru hanya akan muncul di halaman yang dibangun di sekitar templat tempat Anda menambahkan wilayah baru. Rekatkan di mana pun Anda ingin daerah baru Anda muncul.
Konfigurasi - Kinerja - Hapus semua cache
sumber
Buat wilayah baru di Tema
Anda hanya perlu mendefinisikannya dalam dua file.
Info tema
Halaman.tpl.php
Sekarang render wilayah ini
Sekarang Kosongkan semua cache, Ini dia, Anda memiliki daerah baru di tema Anda. Anda dapat melihatnya di halaman konfigurasi blok Anda.
Untuk lebih lanjut kunjungi http://drupal.org/node/171205
sumber