Node.tpl এ নোড মন্তব্য গণনা কীভাবে প্রদর্শিত হবে?


15

অতিথিরা কোনও নোডে মন্তব্যগুলি দেখতে না পারায় আমার ব্যবহারকারীর অনুমতিগুলি পরিবর্তন করার উজ্জ্বল ধারণা আমার ছিল। আমার সাইটের চারপাশের ভিউগুলিতে আমার কোনও সমস্যা নেই, কারণ তারা স্পষ্ট দেখতে পাচ্ছে নোডগুলিতে মন্তব্য রয়েছে এবং তারা নিবন্ধ করার জন্য আরও ঝুঁকবে। সমস্যাটি মনে হয় যখন তারা সরাসরি আমার নোডে পৌঁছে, তারা কোনও মন্তব্য দেখতে পায় না এবং মনে করে "এটি কিছুটা বকাবকি; আসুন!"

আমি নোডের নীচে মন্তব্যের পরিমাণ দেখানোর উপায় আছে কি?

উত্তর:


10

আমি আপনাকে টেম্পলেট_প্রসেস_নোড () ব্যবহার করার পরামর্শ দিচ্ছি ।
এটি ডি 8 এর একটি প্রাথমিক উদাহরণ

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

এবং ফাইলটি সংরক্ষণ করুন। এখন নোড.টিপিএলপিএফপি (বা কোনও সমতুল্য টেম্পলেট, নোড-মাইকনট্যান্টটাইপ.টিপিএল.পিপি, ইত্যাদি) এ কেবল যুক্ত করুন:

<?php print $num_comments; ?>

আপনি যেখানেই মন্তব্য গণনাটি অবস্থান করে সংরক্ষণ করতে চান। ক্যাশে সাফ করুন এবং তারপরে আপনার পরিবর্তনগুলি দেখুন।


আমি আপনার কোডটি টেমপ্লেট_প্রিয়সেস_নোডটি 7 টি ড্রুপাল হিসাবে অভিযোজিত করার চেষ্টা করেছি তবে আমি এই ত্রুটিটি পেয়েছি নোটিশ: অপরিজ্ঞাত পরিবর্তনশীল: নাম_কমেন্টস অন্তর্ভুক্ত () (লাইন 116
আলেকজান্ডার

অভিযোজন করার সময় আপনি কী পরিবর্তন করেছেন? আপনার ডাটাবেস ক্যোয়ারীটি কি নীচে @ ডটারব্যাকন দিয়ে দেওয়া মত দেখাচ্ছে?
লক্ষ্মণ 13

12

আপনি ব্যবহার করতে পারেন $comment_countমধ্যে node.tpl.php

$type: নোড টাইপ, যেমন গল্প, পৃষ্ঠা, ব্লগ, ইত্যাদি
$comment_count: নোড সংযুক্ত মন্তব্য সংখ্যা।


আমি মনে করি যে $comment_countব্যবহারকারীর কাছে দৃশ্যমান মন্তব্যের সংখ্যা গণনা করেছে; যদি বর্তমান ব্যবহারকারী মন্তব্যগুলি দেখতে না পান তবে সেই পরিবর্তনশীলটি শূন্যে সেট করা হবে।
কিমলালুনো

1
হ্যাঁ. এবং আরও সরাসরি$node->comment_count
আর্টফুলবোট

4

আপডেট করুন, ড্রুপাল 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'];
}

এখন পৃষ্ঠায় html.twig:

{{ comment_count }}

ক্যাশে সাফ করুন এবং তারপরে আপনার পরিবর্তনগুলি দেখুন।


এটি সত্যিই খারাপ প্র্যাকটিভ ইও ডিবিটির মতো কোয়েরি যেটি ড্রপাল এপিআই ব্যবহার করে ডাইন অনেক সহজ হতে পারে: $ ভেরিয়েবল ['নোড'] -> ('মন্তব্য') -> কমেন্ট_কাউন্ট;
আইপওয়া

@ আইপিওয়া যদি আপনি মন্তব্য ক্ষেত্রের নামটি জানেন, তা না হলে এটি সমাধান নয়
সোনারড্রাগন 7007

0

ড্রুপাল 8 এ সরাসরি আপনার নোড টেমপ্লেটে এটি ব্যবহার করুন:

{{ node.comment.comment_count }}

নোট করুন যে এটি কাজ করার জন্য আপনার নোডে ডিফল্ট মন্তব্য ক্ষেত্র থাকা উচিত যা সর্বদা মন্তব্যের নামযুক্ত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.