it-swarm.asia

كيف تظهر Node عدد التعليقات في node.tpl؟

لقد كان لدي فكرة مشرقة لتغيير أذونات المستخدم الخاصة بي حتى لا يتمكن الضيوف من رؤية التعليقات على العقدة. ليس لدي أي مشاكل مع طرق العرض حول موقعي ، حيث يمكنهم أن يروا بوضوح وجود تعليقات على العقد ، وسوف يكونون أكثر ميلًا للتسجيل. يبدو أن المشكلة تكمن في وصولهم إلى موقعي مباشرة إلى العقدة ، ولا يرون أي تعليق ، ويعتقدون أن "هذا هراء قليلاً ، فلنذهب".

هل هناك طريقة لإظهار مقدار التعليقات أسفل العقدة؟

15
Reg Gordon

أنصحك باستخدام template_preprocess_node () .
هذا مثال أساسي على D8

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

وبعد ذلك يمكنك استخدامه في ملف node.html.twig كالتالي:

{{ comment_count }}

فيما يلي مثال أساسي في D6 ، يمكنك تخصيصه حسب رغبتك. في ملف template.php الموجود في دليل السمة ، أضف شيئًا على غرار (استبدال YOURTHEME باسم السمة):

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

واحفظ الملف. الآن في node.tpl.php (أو أي قالب مكافئ ، node-mycontenttype.tpl.php ، إلخ) ما عليك سوى إضافة:

<?php print $num_comments; ?>

أينما تريد تحديد عدد التعليقات وحفظها. امسح ذاكرة التخزين المؤقت ثم قم بعرض التغييرات.

10
Laxman13

يمكنك استخدام $comment_count في node.tpl.php .

$type: Node type، ie story، page، blog، etc.
$comment_count: عدد التعليقات المرفقة بالعقدة.

12
graceman9

تحديث لـ Drupal 7 استعلامك على template.php يجب أن يبدو:

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

مقابل 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'];
}

الآن في page.html.twig:

{{ comment_count }}

امسح ذاكرة التخزين المؤقت ثم قم بعرض التغييرات.

0
rpayanm

في Drupal 8 استخدم هذا مباشرة في قالب العقدة الخاص بك:

{{ node.comment.comment_count }}

لاحظ أنه لكي يعمل ، يجب أن يكون لديك حقل التعليق الافتراضي في العقدة الذي يدعى دائمًا التعليق.

0
ipwa