Belirli özel içerik türü girişi için aday sayfa şablonu dosya adı


11

Bir Drupal 7 web sitesinde çalışıyorum. Çalışmalar için özel içerik türü oluşturdum. Birçok alan var ve bazıları her giriş için belirli sayfa bg gibi sayfa düzeni ile ilgilidir. Bu yüzden bu belirli içerik türü için özel page.tpl'ye ihtiyacım var.

Bu yüzden Tema Geliştirici modülünü etkinleştirip açtım ve bu belirli içerik türü sayfa girişi için aday adı almak üzere gövde alanını tıkladım. ve bu bana bir şey ifade etmez aşağıdaki ekran verir: / Düğüm alanı tıkladığımda, sorun değil, düğüm - work.tpl.php verir, ama sayfa gerekir. "Page - work.tpl.php" denedim, işe yaramadı.

Neyi kaçırıyorum?

resim açıklamasını buraya girin

Yanıtlar:


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

Makine tarafından okunabilir içerik türü adınızın "iş" olduğunu varsayarsak, page - work.tpl.php çalışır.

Daha fazla bilgi için bu konuya bakın .


Vaov! harika çalıştı! Ben sayfaya çalışabilirim - work.tpl.php şimdi :) iyi çalışıyor olsa da, d.pr/EaMa olarak bir hata mesajı var Googled ve çözmeye çalıştım, hala çalışıyor ... herhangi bir fikir? zaman ayırdığınız için çok teşekkürler !!
Drupal adam

oh Sanırım Tema Geliştirici modülü yüzünden. Modülü devre dışı bıraktım ve hata gitti :) çok teşekkürler!
Drupal adam

2

Template.php dosyasına şunu ekleyin:

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);
  }
}

Atlayabilirsiniz str_replace(); Sizin için en iyi olan sürümü test edin.

Ardından, dosya adı sayfa –- [content_type] .tpl.php olan bir şablon dosyası oluşturun. ([Content_type] öğesini içerik türü makine adıyla değiştirin.)

Bkz. Http://drupal.org/node/1089656#comment-4426790 .


1

Düğüm kimliğini de istemeniz durumunda bunu kullanın.

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

Her içerik türü için farklı bir şablona sahip olmak, Drupal'daki çocuklara göre iyi bir uygulama değildir. page--work.tpl.phpAday şablon dosya listesinde bulamamanızın nedeni budur . Yalnızca düğüm şablonu dosyalarının farklı olması gerektiğini düşünüyorlar. Ancak hacklemek istiyorsanız, devam edin.

İçerik türüne göre bir yol ayarlamak için yol takma adını kullanın. Ve sonra bu kodu ekleyin

 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;
      }
    }
  }

içine phptemplate_preprocess_page(&$vars)işlevin template.phptema klasöründe.

Daha verimli hale getirmek için kodu biraz değiştirebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.