Nama file templat halaman kandidat untuk entri jenis konten khusus


11

Saya sedang mengerjakan situs web Drupal 7. Saya membuat jenis konten khusus untuk karya. Saya memiliki banyak bidang, dan beberapa di antaranya terkait dengan tata letak halaman seperti halaman tertentu bg untuk setiap entri. Jadi saya perlu page.tpl khusus untuk jenis konten khusus ini.

Jadi saya mengaktifkan dan membuka modul Pengembang Tema, dan mengklik area tubuh untuk mendapatkan nama kandidat untuk entri halaman jenis konten tertentu ini. dan itu memberi saya layar di bawah ini yang tidak berarti apa-apa bagi saya: / Ketika saya mengklik area simpul, itu baik-baik saja, itu memberikan simpul - work.tpl.php, tapi saya perlu untuk halaman. Saya mencoba "page - work.tpl.php", tidak berhasil.

Apa yang saya lewatkan?

masukkan deskripsi gambar di sini

Jawaban:


12
function mytheme_process_page(&$variables) {
    $variables['theme_hook_suggestions'][] = 'page__'. $variables['node']->type;
}

Dengan asumsi nama tipe konten yang dapat dibaca mesin Anda adalah "berfungsi", halaman - work.tpl.php akan berfungsi.

Lihat utas ini untuk info lebih lanjut.


Wow! itu bekerja dengan baik! Saya dapat alamat ke halaman - work.tpl.php sekarang :) walaupun berfungsi dengan baik, saya memiliki pesan kesalahan sebagai d.pr/EaMa saya googled dan mencoba untuk menyelesaikan, masih mencoba ... ada ide? terima kasih banyak atas waktu anda !!
Pria Drupal

oh saya kira itu karena modul Theme Developer. Saya menonaktifkan modul dan kesalahan sudah :) :) terima kasih banyak!
Pria Drupal

2

Dalam templat.php tambahkan:

function themeName_preprocess_page(&$vars) {
  if (isset($vars['node'])) {
    // If the node type is "blog" the template suggestion will be "page--blog.tpl.php".
    $vars['theme_hook_suggestions'][] = 'page__'. str_replace('_', '--',    $vars['node']->type);
  }
}

Anda bisa menghilangkan str_replace(); uji versi apa yang paling cocok untuk Anda.

Kemudian, buat file templat yang nama file-nya adalah halaman –- [content_type] .tpl.php. (Ganti [content_type] dengan nama jenis mesin konten.)

Lihat http://drupal.org/node/1089656#comment-4426790 .


1

Jika Anda menginginkan id node juga, gunakan ini.

function mytheme_process_page(&$variables) {
  if (isset($variables['node'])) { 
    $variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;
    $variables['theme_hook_suggestions'][] = 'page__node__' . $variables['node']->nid;
  }
}

0

Memiliki templat yang berbeda untuk setiap jenis konten bukanlah praktik yang baik menurut orang-orang di Drupal. Itulah alasan Anda tidak menemukan page--work.tpl.phpdalam daftar file templat kandidat. Mereka merasa hanya file templat simpul yang harus berbeda. Namun jika Anda ingin meretas, silakan.

Gunakan alias path untuk mengatur jalur berdasarkan pada tipe konten. Dan kemudian masukkan kode ini

 if (module_exists('path')) {
    $alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
    if ($alias != $_GET['q']) {
      $template_filename = 'page';
      foreach (explode('/', $alias) as $path_part) {
        $template_filename = $template_filename . '-' . $path_part;
        $vars['template_files'][] = $template_filename;
      }
    }
  }

ke dalam phptemplate_preprocess_page(&$vars)fungsi di template.phpdalam folder tema.

Anda dapat memodifikasi sedikit kode untuk membuatnya lebih efisien.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.