web-gelistirme-sc.com

İçerik alanlarını farklı bölgelere bölme

Durumum şu şekildedir: A, B ve C alanlarına sahip bir içerik türü Semineri var. Üstbilgi, Altbilgi, İçerik ve Kenar Çubuğu Kaldı. Seminerde İçerik bölgesinde değil, Kenar Çubuğu Sol bölgesinde de görüntülenmesini istediğim bazı alanlar var.

Bunu nasıl yapabilirim? Bu daha önce cevaplanmışsa özür dileriz. Ben bir geliştiriciyim ve kanca ve önişlemci işlevlerine dalmakta tereddüt etmiyorum. Views modülü yüklü, ancak hiç kullanmadım (bu benim ilk Drupal site, söyleyemiyorsanız: P).

Şerefe.

EDIT: Bu Drupal 7 içindir.

11
Lester Peabody

Düğümün içeriğini sayfadaki farklı bölgelere eklemenin kolay yolu yoktur. Bu sorunu çözmenin birçok yolu vardır.

Kodlama yapmayan yol: Görünümler ve Bloklar

Bir görünüm oluşturun

  • Tür: Blok
  • İçeriğe Dayalı Filtre: İçerik: Nid
    • varsayılan değer: geçerli sayfadan yakala
  • Alanlar: Hangisini istersen
  • Filtre:
    • İçerik Türü: Seminer

(artı istediğiniz ek ayarlar)

Ardından, yönetici engelleme sayfasına gidin Yeni oluşturulan görünüm bloğunu, görüntülenmesini istediğiniz bölgeye taşıyın. Yalnızca seminer düğümü sayfalarında görüntülenmelidir.

Tüm bölgeler için tekrarlayın

theme_preprocess_region ile kodlama yolu ():

kod böyle bir şey olurdu

MYTHEME_preprocess_region(&$variables) {
  if (isset($node) && ($node->type == 'seminar' )) {
     //add new variable here.     
  }
}

Bu Drupal 7 içindir. Artık bölgenizde kullanılabilir. Tpl.php).

11
iStryker

Display Suite modülü bunu yapmanızı sağlar. Tema bölgelerini düğüm bileşenleri için hedef olarak göstermek için Display Suite Extras modülünü etkinleştirmeniz gerekir. Bunun nasıl yapılacağı hakkında bilgi, Display Suite belgelerinin Bir bloğa alan ekleme sayfasında bulunabilir.

7
jhedstrom

Aynı sorunu yaşadım. Çözüm oldukça kolaydır. Drupal 7) içinde sadece TAM ve ÖLÇER'i değil (en eski sürümlerden bildiğimiz gibi) kendi görünüm_odumuzu tanımlayabileceğimiz gerçeğini temel alabilirsiniz. Dolayısıyla, bölgenizde kullanmak için başka bir görünüm_odu tanımlayın: örneğin, LEFTHAND. Drupal içerik bölgesinde TAM görünüm_modu görüntüler. Bu nedenle, = SOL/Sol Kenar çubuğunda LEFTHAND görüntülemek için = Drupal) demeniz gerekir.

  1. Template_preprocess_page () içinde

    if ($vars['node']) {
    $vars['page']['sidebar_left'][] = node_view($vars['node'], 'lefthand');
    }

  2. Node.tpl.php dosyasına soldan görünüm modu için yeni bir ekran ekleyin

    if ($view_mode == 'lefthand') {
    // render content fields here
    }

5
Patrik Lucan

Display Suite ihtiyaçlarınız için çok fazla görünüyorsa (Harika bir modül, ancak sadece birkaç alanı yeniden konumlandırmanız gerekiyorsa aşırıya kaçabilir) sadece bu amaçla bir modül var -> CCK Blokları =.

Ben 'CCK' blokları denir biliyorum, ama Drupal 7 (CCK işlevselliği çekirdeğe getirdi) ile çalışır.

3
Chance G

@Patrik Lucan'ın cevabında hafif bir değişiklik oldu, if ($vars['node']) düğüm olmayan sayfalarda bana sorun çıkarıyordu, ör. blok veya görünüm sayfası içeren özel ön sayfa.

Değiştirildi:

if (array_key_exists('node', $vars))

Hangi sorunu çözmüş gibi görünüyor.

1
Dominic Woodman

Bu arada bunun için bir modül var. Modül sayfasından:

Blok Olarak Alan , geçerli düğümün bir veya daha fazla alanını bir blokta görüntülemek için kolay bir yol sağlar.

Bu modül, Paneller ve Display Suite gibi modüllere hafif bir alternatif olmayı veya yalnızca bir alanı alan bir blok tanımlamak için Görünümleri kullanmayı amaçlamaktadır.

0
phils