नोड में टिप्पणी कैसे दिखाएँ?


15

मेरे पास मेरी उपयोगकर्ता अनुमतियाँ बदलने का उज्ज्वल विचार है, ताकि मेहमान एक नोड पर टिप्पणी नहीं देख सकें। मुझे अपनी साइट के आसपास के दृश्यों से कोई समस्या नहीं है, क्योंकि वे स्पष्ट रूप से देख सकते हैं कि नोड्स पर टिप्पणियां हैं, और वे पंजीकरण के लिए अधिक इच्छुक होंगे। समस्या तब लगती है जब वे मेरी साइट पर सीधे एक नोड पर पहुंचते हैं, वे कोई टिप्पणी नहीं देखते हैं, और सोचते हैं "यह थोड़ा बकवास है; चलो चलें।"

क्या कोई तरीका है जिससे मैं एक नोड के नीचे टिप्पणियों की मात्रा दिखा सकता हूं?

जवाबों:


10

मेरा सुझाव है कि आप 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 }}

डी 6 में एक मूल उदाहरण नीचे है, आप इसे अपनी पसंद के अनुसार अनुकूलित कर सकते हैं। अपनी थीम डायरेक्टरी में स्थित अपने टेम्पलेट.फैप फ़ाइल में, अपनी पंक्तियों के साथ कुछ जोड़ें (अपने विषय के नाम के साथ अपना स्थान बदलें):

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

और फ़ाइल सहेजें। अब बस नि: शुल्क में net.tpl.php (या कोई समतुल्य टेम्पलेट, नोड- mycontenttype.tpl.php, आदि):

<?php print $num_comments; ?>

आप जहां भी चाहें टिप्पणी को स्थित और सहेज सकते हैं। कैश साफ़ करें और फिर अपने बदलाव देखें।


मैंने टेम्प्लेट_परप्रोसेसर_नोड के लिए ड्रूपल 7 के लिए आपके कोड को अनुकूलित करने की कोशिश की है, लेकिन मुझे यह त्रुटि नोटिस मिल रही है: अपरिभाषित चर: संख्या में शामिल () (पंक्ति 116
अलेक्जेंडर

आदत डालते समय आपने क्या बदला है? क्या आपकी डेटाबेस क्वेरी नीचे दिए गए @doterobcn जैसी दिखती है?
लक्ष्मण 13

12

आप node.tpl.php$comment_count में उपयोग कर सकते हैं ।

$type: नोड प्रकार, अर्थात कहानी, पृष्ठ, ब्लॉग, आदि
$comment_count: नोड से जुड़ी टिप्पणियों की संख्या।


मुझे लगता है कि $comment_countउपयोगकर्ता को दिखाई जाने वाली टिप्पणियों की संख्या को गिना जाता है; यदि वर्तमान उपयोगकर्ता टिप्पणियों को नहीं देख सकता है, तो वह चर शून्य पर सेट हो जाएगा।
kiamlaluno

1
हाँ। और अधिक सीधे$node->comment_count
artfulrobot

4

Drupal 7 के लिए खाका, टेम्प्लेट पर अपनी क्वेरी अपडेट करें।

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

0

ड्रुपल 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 }}

कैश साफ़ करें और फिर अपने बदलाव देखें।


यह वास्तव में बुरा है प्रैक्टिकल यो क्वेरी डीबी की तरह है कि कुछ के लिए है कि Drupal एपीआई का उपयोग कर बहुत सरल हो सकता है: $ चर ['नोड'] -> ('टिप्पणी') -> comment_count;
22

@ipwa अगर आपको कमेंट फील्ड का नाम पता है, तो इसका कोई हल नहीं है
Golddragon007

0

Drupal 8 में सीधे अपने नोड टेम्पलेट में इसका उपयोग करें:

{{ node.comment.comment_count }}

ध्यान दें कि इसे काम करने के लिए आपको अपने नोड में डिफ़ॉल्ट टिप्पणी फ़ील्ड की आवश्यकता होती है जिसे हमेशा टिप्पणी नाम दिया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.