it-swarm-vi.com

Cách hiển thị Node Đếm số bình luận trong node.tpl?

Tôi đã có ý tưởng sáng sủa về việc thay đổi quyền người dùng của mình để khách có thể thấy các bình luận trên một nút. Tôi không có vấn đề gì với Lượt xem trên trang web của mình, vì họ có thể thấy rõ có ý kiến ​​về các nút và họ sẽ có xu hướng đăng ký nhiều hơn. Vấn đề dường như là khi họ đến trực tiếp trang web của tôi đến một nút, họ không thấy bất kỳ bình luận nào và nghĩ rằng "đó là một chút tào lao; chúng ta hãy đi."

Có cách nào tôi có thể hiển thị số lượng bình luận bên dưới một nút không?

15
Reg Gordon

Tôi khuyên bạn nên sử dụng template_pre process_node () .
[.__.] Đây là một ví dụ cơ bản cho D8

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

Và sau đó bạn có thể sử dụng nó trong tệp node.html.twig Như vậy:

{{ comment_count }}

Một ví dụ cơ bản trong D6 là bên dưới, bạn có thể tùy chỉnh nó theo ý thích của mình. Trong tệp template.php của bạn nằm trong thư mục chủ đề của bạn, hãy thêm một cái gì đó dọc theo dòng (thay thế YOUTHEME bằng tên của chủ đề của bạ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';
}

và lưu tập tin. Bây giờ trong node.tpl.php (hoặc bất kỳ khuôn mẫu tương đương nào, node-mycontenttype.tpl.php, v.v.) chỉ cần thêm:

<?php print $num_comments; ?>

Bất cứ nơi nào bạn muốn số lượng bình luận được đặt và lưu. Xóa bộ đệm và sau đó xem các thay đổi của bạn.

10
Laxman13

Bạn có thể dùng $comment_count in node.tpl.php .

$type: Node loại, tức là câu chuyện, trang, blog, v.v.
[.__.] $comment_count: Số lượng bình luận gắn liền với nút.

12
graceman9

Cập nhật, cho Drupal 7 truy vấn của bạn trên template.php sẽ giống như:

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

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

Bây giờ trong page.html.twig:

{{ comment_count }}

Xóa bộ nhớ cache và sau đó xem các thay đổi của bạn.

0
rpayanm

Trong Drupal 8 sử dụng trực tiếp trong mẫu nút của bạn:

{{ node.comment.comment_count }}

Lưu ý rằng để nó hoạt động, bạn cần có trường bình luận mặc định trong nút luôn được đặt tên là bình luận.

0
ipwa