Saya sudah menjelajahi web dan sama sekali tidak jelas bagaimana tema menu kustom. Saya telah mencari selama berjam-jam dan belum menemukan satu posting pun yang menggambarkan proses, dari awal hingga selesai, membuat menu dan menyesuaikan hasilnya. Sepertinya ini adalah proses multi-tahap:
- Buat menu melalui antarmuka Drupal.
- Buat fungsi tema di
template.php
file Anda untuk tema output. - Paparkan menu ini ke file template (entah bagaimana) dengan menambahkannya sebagai variabel.
- Panggil
theme
fungsi pada menu di file templat.
1 cukup mudah untuk dilakukan, masalah yang saya hadapi adalah dengan 2, 3, dan 4. Melihat template halaman default, saya melihat bahwa ia mengekspos menu utama dalam variabel $main_menu
. Kemudian di bawah halaman Anda dapat melihat fungsi theme('links__system_main_menu', array('links' => $main_menu...
, yang berarti sedang mencari fungsi tema yang tepat di suatu tempat dan menggunakannya untuk menghasilkan output.
Saya tahu jika saya menempatkan function theme_links__system_main_menu(&$variables) {...}
file template.php saya, Drupal akan menggunakan fungsi itu sebagai lawan function theme_menu_links(&$variables) {...}
.
Yang tidak saya ketahui adalah bagaimana Drupal menautkan menu khusus yang saya buat dengan fungsi itu. Katakanlah misalnya saya membuat menu bernama My Menu
. Bisakah saya membuat fungsi berikut dalam template.php
file saya dan tema output untuk menu itu?function theme_links__system_my_menu(&$variables) {...}
Juga, bagaimana cara membuat menu khusus tersedia untuk file template? Bagaimana cara Drupal mengekspos $main_menu
variabel ke page.tpl.php?
Saya pikir kunci yang saya lewatkan di sini adalah bagaimana menanamkan variabel yang mewakili menu khusus saya ke halaman templat. Namun sebagian besar saya benar-benar bingung dengan apa yang harus dilakukan setelah membuat menu.
Terima kasih untuk bantuannya.
EDIT: Mungkin harus memposting apa yang saya lakukan. Per komentar saya untuk BetaRide di bawah ini, saya perlu menyuntikkan HTML khusus ke dalam <li>
elemen - elemen menu. Secara khusus, saya menambahkan ikon Bootstrap Twitter.
Anda mungkin ingin melihat modul Nice Menus . Berikut ini adalah kutipan tentang hal itu (dari halaman proyek modul):
sumber
Bergantung pada apa yang ingin Anda sesuaikan, pendekatan Anda sangat sulit. Biasanya saya membuat menu melalui antarmuka Drupal saat Anda menyarankan. Saya mengambil modul pengembang tema dan Firebug untuk mencari tahu templat mana, kait dan arahan CSS yang harus saya timpa untuk menyesuaikannya dengan kebutuhan saya.
Sebaiknya pertimbangkan membuat sub tema dari tema dasar yang Anda gunakan sebelum Anda mulai mengubah. Ini membuatnya lebih mudah untuk memperbarui tema dasar Anda.
sumber
di sini adalah kode pintar yang dapat mengakses semua item menu untuk level 2 atau 3 atau lebih
letakkan kode ini di dalam file tpl Anda jangan lupa untuk memanggil boostrap js dan css versi terakhir:
kode ini akan mengembalikan menu untuk kelas css Anda dapat menggunakan Anda sendiri saya menggunakan bootstrap dengan beberapa custom css
sumber