drupal主题开发

取得drupal评论个数

日期:2017-04-04 阅读:2405

dmandwp系统 - wordpress系统和DM系统区块建站>>


进入网易云课堂播放
    |    更多视频教程>

drupal列表那节课里,我们如何取得评论个数呢?

在显示模式里,有一个链接的字段,但它把readmore和评论混在一起了。
 如果要分开来。就要学会取得评论个数.

如何取得评论个数:

在tvtheme.theme里: 

function tvtheme_preprocess_node(&$variables) {
	$node = $variables ['elements']['#node'];
	$id = $node->id();
	// Create comment count variable for template
	$count = tvtheme_comment_count($id);
	$variables['comment_count'] = tvtheme_plural($count, 'Comment',
	'Comments');
}

function tvtheme_comment_count($id) {
	$count = db_query("SELECT comment_count FROM
	comment_entity_statistics WHERE entity_id = :id",
	array(':id' => $id))->fetchField();
	return empty($count) ? '0' : $count;
}
function tvtheme_plural($count, $singular, $plural) {
	if ( $count == 1 )
	return $count . ' ' . $singular;
	else
	return $count . ' ' . $plural;
}

-------------

如果是中文,可以用

  $variables['comment_count'] = $count.'个评论';

取代

$variables['comment_count'] = tvtheme_plural($count, 'Comment',	'Comments');

即不用tvtheme_plural函数。

---------------

然后要输出: <a href="{{ url }}/#comments">{{ comment_count }}</a>

--------------------------

上而比较复杂的做法,后面我发现还有更简单的做法,就是node.html.twig里,可以这样来得到评论个数:

{{  node.comment.comment_count }} --这样即可。

如果要做些判断,可以这样:

<a href="{{ url }}/#comments"> 
  {% if node.comment.comment_count==0 %}
         暂无评论 
        {% else %}
        {{node.comment.comment_count}}条评论
        {% endif %}
   </a>
                                              

-------------------

具体请看视频教程。

 

<<点击返回

Drupal8主题开发视频教程 (进入专题>)