Tam içerik görünümünde özet (teaser) gövde üzerinde nasıl görüntülenir?


11

Aşağıdaki "tam içerik" düzeninde olduğu gibi başlık altındaki her makalenin üstünde bir teaser görüntülemek istiyorum:

  1. Başlık
  2. Fragman (makale özeti)
  3. görüntü
  4. Vücut

Ayrıca, teaser'ın kendi biçimlendirmesi olmalıdır (örneğin italik ve daha büyük bir yazı tipi)

Tpl dosyalarını veya çekirdek dosyalarını düzenlemeden bunu yapmanın bir yolunu bulamadım.

Çözüm, içerik türüme yeni bir "article_teaser" alanı eklemek, ardından düzenimi "Tam içerik" görünümünde almak için görüntüyü yönetmek olacaktır. Bu işe yarıyor, ancak girdi içeriği formumda iki teaser alanı olmasını sevmiyorum, çünkü aynı metni iki kez yazmalıyım.

Görünüşe göre tarla gövdesini “metin” ve “özet” kısımlarına ayıramıyorum, ama sadece birini ya da diğerini görüntüleyebiliyorum ama ikisini birden gösteremiyorum!

Bunu yapmanın herhangi bir yolu var mı (modül?)?

(Ortamım: Zen alt temalı Drupal 7.)

Yanıtlar:


10

Bunu Views ile yapabilirsiniz. İçerik türünüz için yolları geçersiz kılan bir görünüm oluşturun. Ekranı Alanlar olarak ayarlayın ve sonra gövde alanını iki kez ekleyin; ilk örneği teaser'ı görüntülemek için ikinci örneği ve gövdeyi görüntülemek için ikinci örneği ayarlayın. Aradaki görüntüleri ekleyebilirsiniz. Görünümler ayrıca teaser / gövde alanlarının CSS'sini kolayca özelleştirmenize olanak tanır (varsayılan olarak Views bir dizi sınıf sağlar ve gerekirse ek sınıflar ekleyebilirsiniz).

Referans için: Node One, Views kullanımıyla ilgili bir dizi video görüntüsü


Çok teşekkür ederim. Bağlantı çok faydalıdır ve görüşler hakkında çok şey öğreniyorum: İşleri yapan bir görüşüm var. Ancak görünümler düğümlerin listesini gösterirken içerik türüm (kitap sayfası) tek bir sayfadır: tek bir kitap sayfasını (düğüm) düğüm listesiyle (oluşturduğum görünüm) nasıl geçersiz kılabilirim? Muhtemelen görünümler hakkında bir şey eksik, belki varsayılan kitap sayfasını kendi ile nasıl geçersiz kılabilirim.
Gingo

@gingo Tüm kitap sayfalarını geçersiz kılmak için, görünüm yolunu özel bir şekilde yapılandırmanız gerekir. Örnek olarak, Görünümler tarafından varsayılan olarak sağlanan (devre dışı) Sınıflandırma terimi görünümüne bakın . Yol /taxonomy/term/%; bu görünümü düzenlerseniz, ekranı sınıflandırma terimleri için düzenlemenize olanak sağlamak üzere bağımsız değişkenlerin (bağlamsal filtreler) nasıl çekildiğini görebilirsiniz. Sitenizdeki kitap sayfaları için benzer bir şey ayarlayabilirsiniz.
Patrick Kenny

bağlamsal filtrelerde daha derinlere bakmalıyım ama bence doğru yoldayım. teşekkür ederim.
gingo

3

Görüşler kesinlikle işi yapabilir. Ama bence bu gereklilik biraz abartılı.

Bunu başarmanın başka bir yolu da özel modülünüzde hook_field_extra_fields () ve hook_node_view () yöntemlerini uygulamaktır.

/**
 * Implements hook_field_extra_fields().
 */
function mymodule_field_extra_fields() {
  // Put the content type you want to display summary field here.
  $content_type = 'page';

  $extra['node'][$content_type]['display']['body_summary'] = array(
    'label' => t('Body summary'),
    'description' => t('Display body summary.'),
    'weight' => 0,
  );

  return $extra;
}

/**
 * Implements hook_node_view().
 */
function mymodule_node_view($node, $view_mode, $langcode) {
  // Put the content type you want to display summary field here.
  $content_type = 'page';

  if ($node->type == $content_type) {
    $summary = field_view_field('node', $node, 'body', array(
      'type' => 'text_summary_or_trimmed',
    ));

    $node->content['body_summary'] = array(
      '#markup' => $summary,
      '#weight' => 0,  
    );
  }
}

Önbelleği temizleyin ve "gövde özeti" alanını yerleştirmek için sürükleyip bırakmak üzere içerik türü "Görüntüyü yönet" ayarlarına gidebilirsiniz. Örneğin admin/structure/types/manage/page/display.


Hm bunun yakın olduğunu düşünüyorum, ancak alan içeriği görüntülenmiyor Array.
arjan

Hey @arjan, Array verilerini kontrol ettin ve buraya kopyaladın mı lütfen?
eric.chenchao

Değişken yaratmanın anlamı nedir, kullanıldığı tek yerin üstünde 1 satır, dizeyi if ifadesine
koy

Selam @Kiee, haklısın. Ancak bu snippet, yorumda örnek olarak kullanılmıştır;)
eric.chenchao

3

drupal 7'de:

Gövde alanında 'sonucu yeniden yaz' seçeneğini kullanabilir ve 'değiştirme örüntülerini' kullanabilirsiniz:

[body-summary]

ve bu tam özeti görüntüler.


Sen bir dahisin Javier, diğer tüm aşırı açıklamalar, seninki en iyi çalışıyor ve sooooooooooooo basit!
Bruno Vincent

0

İçerik türü yeniden tanımlaması için Panellere bakmanız gerekir, çünkü Panellerin işlevlerinden biri belirli İçerik Türlerinin (veya diğer seçim ölçütlerine dayalı bilgiler) temel görünümünü tam olarak yeniden tanımlamaktır.


0

Arjan'ın fark ettiği gibi Cityreader'ın snippet'i sonucu üretir, ancak düzgün bir şekilde görüntülenmez.

Bu varyasyon benim için çalıştı:

 /**
 * Implements hook_field_extra_fields().
 */
function mymodule_field_extra_fields() {
  // Put the content type you want to display summary field here.
  $content_type = 'page';

  $extra['node'][$content_type]['display']['body_summary'] = array(
    'label' => t('Body summary'),
    'description' => t('Display body summary.'),
    'weight' => 0,
  );

  return $extra;
}

/**
 * Implements hook_node_view().
 */
function mymodule_node_view($node, $view_mode, $langcode) {
  // Put the content type you want to display summary field here.
  $content_type = 'page';

  if ($node->type == $content_type) {
    $summary = field_view_field('node', $node, 'body', array(
      'type' => 'text_summary_or_trimmed',
    ));

    $node->content['body_summary'] = array(
      '#markup' => $summary['#items'][0]['safe_summary'],
      '#weight' => 0,  
    );
  }
}

0

Views ve Display Suite modülünü kullanarak kod içermeyen bir çözümle ilgileniyorsanız şunları yapabilirsiniz:

  1. Üzerinde özet alanı olan Görünümler bloğu oluşturun. Gelişmiş ayarlarda İçeriğe dayalı filtre seçeneği altında, URL'den İçerik Kimliği türüyle "Varsayılan değer ver" seçeneğini ayarlayabilirsiniz.

  2. İçerik Türleri -> [içerik türünüz] -> Görüntüyü yönet altında Özel alanlar seçeneğini (alttaki menü) seçin ve 1. adımda oluşturduğunuz Görünüm'den Özel engelleme alanı oluşturun.

  3. Kaydedildiğinde Özel alanı, hangi bölgede görüneceğini seçebileceğiniz düğüm türü alan listesinde görünecektir.

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.