Node.tpl'de Düğüm Yorum Sayısını Gösterme


15

Misafirlerin bir düğümdeki yorumları görememesi için kullanıcı izinlerimi değiştirme konusunda parlak bir fikrim var. Düğümler hakkında yorumlar olduğunu açıkça görebildikleri için sitemin etrafındaki Görünümlerle ilgili sorunum yok ve kaydolmaya daha meyilli olacaklar. Sorun, siteme doğrudan bir düğüme geldiklerinde, herhangi bir yorum görmediklerinde ve "bu biraz saçmalık; hadi gidelim" diye düşünüyor gibi görünüyor.

Bir düğümün altındaki yorum miktarını gösterebilmemin bir yolu var mı?

Yanıtlar:


10

Template_preprocess_node () yöntemini kullanmanızı öneririm .
Bu, D8 için temel bir örnektir

function YOUR_THEME_preprocess_node(&$variables) {
  $variables['comment_count'] = $variables['node']->get('YOUR_COMMENT_FIELD')->comment_count;
}

Ve sonra bunu node.html.twigdosyanızda şu şekilde kullanabilirsiniz :

{{ comment_count }}

D6'daki temel bir örnek aşağıdadır, beğeninize göre özelleştirebilirsiniz. Tema dizininizde bulunan template.php dosyanıza, satırlarına bir şey ekleyin (YOURTHEME yerine temanızın adını yazın):

function YOURTHEME_preprocess_node(&$variables) {
  $nid = $variables['node']->nid;
  $variables['num_comments'] = db_result(db_query('SELECT COUNT(cid) AS count FROM {comments} WHERE nid = %d', $nid)) . ' comment(s) on this node';
}

ve dosyayı kaydedin. Şimdi node.tpl.php (veya herhangi bir eşdeğer şablon, node-mycontenttype.tpl.php, vb.)

<?php print $num_comments; ?>

Yorum sayısının nerede olmasını ve kaydedilmesini istersiniz. Önbelleği temizleyin ve ardından değişikliklerinizi görüntüleyin.


Kodunuzu drupal 7 için template_preprocess_node için adapte etmeye çalıştım ama bu hatayı alıyorum Uyarı: Tanımsız değişken: include () num_comments (satır 116
Alexander

Uyarlarken neyi değiştirdiniz? Veritabanı sorgunuz @doterobcn tarafından verilene benziyor mu?
Laxman13

12

Sen kullanabilirsiniz $comment_countiçinde node.tpl.php .

$type: Düğüm türü, yani hikaye, sayfa, blog vb
$comment_count.: Düğüme eklenen yorum sayısı.


$comment_countKullanıcı için görünür yorum sayısını sayar sanırım ; geçerli kullanıcı yorumları göremezse, bu değişken sıfıra ayarlanır.
kiamlaluno

1
Evet. Ve daha doğrudan$node->comment_count
artfulrobot

4

Güncelleme, Drupal 7 için template.php'deki sorgunuz şöyle görünmelidir:

$vars['num_comments'] = db_query("SELECT COUNT(cid) AS count FROM {comment} WHERE nid =:nid",array(":nid"=>$vars['nid']))->fetchField();

0

Drupal 8 için:

function YOURTHEME_preprocess_node(&$variables) {
  $nid = $variables['node']->nid->value;
  $num_comment = db_query('SELECT comment_count FROM {comment_entity_statistics} WHERE entity_id = ' . $nid)->fetchAssoc();
  $variables['comment_count'] = $num_comment['comment_count'];
}

Şimdi page.html.twig'de:

{{ comment_count }}

Önbelleği temizleyin ve ardından değişikliklerinizi görüntüleyin.


Drupal API kullanarak doine çok daha basit bir şey için db böyle sorgulamak gerçekten kötü pratik: $ variable ['node'] -> get ('comment') -> comment_count;
ipwa

@ ipwa yorum alanı adını biliyorsanız, aksi takdirde bir çözüm değildir
golddragon007

0

Drupal 8'de bunu doğrudan düğüm şablonunuzda kullanın:

{{ node.comment.comment_count }}

Çalışması için, düğümünüzde her zaman comment adlı varsayılan yorum alanına sahip olmanız gerektiğini unutmayın.

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.