it-swarm-id.com

Bagaimana Cara Menunjukkan Node Komentar Hitung dalam node.tpl?

Saya memiliki ide cemerlang untuk mengubah izin pengguna saya sehingga tamu tidak dapat melihat komentar pada sebuah node. Saya tidak memiliki masalah dengan Tampilan di sekitar situs saya, karena mereka dapat dengan jelas melihat ada komentar pada node, dan mereka akan lebih cenderung mendaftar. Masalahnya tampaknya ketika mereka tiba di situs saya langsung ke sebuah node, mereka tidak melihat komentar apa pun, dan berpikir "itu sedikit omong kosong; ayo pergi."

Apakah ada cara saya bisa menunjukkan jumlah komentar di bawah titik?

15
Reg Gordon

Saya sarankan Anda menggunakan template_preprocess_node () .
Ini adalah contoh dasar untuk D8

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

Dan kemudian Anda dapat menggunakannya dalam file node.html.twig Anda seperti:

{{ comment_count }}

Contoh dasar dalam D6 di bawah ini, Anda dapat menyesuaikannya sesuai dengan keinginan Anda. Di file template.php Anda yang terletak di direktori tema Anda, tambahkan sesuatu di sepanjang baris (ganti YourTHEME dengan nama tema Anda):

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

dan simpan file tersebut. Sekarang di node.tpl.php (atau template yang setara, node-mycontenttype.tpl.php, dll) cukup tambahkan:

<?php print $num_comments; ?>

Di mana pun Anda ingin penghitungan komentar dapat ditemukan dan disimpan. Bersihkan cache dan kemudian lihat perubahan Anda.

10
Laxman13

Kamu bisa menggunakan $comment_count di node.tpl.php .

$type: Node type, mis. Cerita, halaman, blog, dll.).
$comment_count: Jumlah komentar yang dilampirkan pada node.

12
graceman9

Perbarui, untuk Drupal 7 kueri Anda di template.php akan terlihat seperti:

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

Untuk Drupal 8:

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

Sekarang di page.html.twig:

{{ comment_count }}

Bersihkan cache dan kemudian lihat perubahan Anda.

0
rpayanm

Di Drupal 8 gunakan ini langsung di templat simpul Anda:

{{ node.comment.comment_count }}

Perhatikan bahwa agar berfungsi, Anda harus memiliki bidang komentar default di simpul Anda yang selalu bernama comment.

0
ipwa