我想仅针对单个节点更改每页的评论。让我们说一下内容类型的每页评论的默认数量"文章"是50,我想将此更改为10仅适用于nid = 171的文章。
$node = menu_get_object('node',1); if($node && $node->nid = 171) {......}
任何提示?感谢。
答案 0 :(得分:1)
如果您想控制各个页面上的评论数量,我建议您安装Views模块,以便轻松创建任何事物列表,包括评论。使用Views,您可以为任何节点创建包含注释的块,并使用该块而不是常规注释块。 此外,您可以使用具有不同注释数的多个不同块,并将任何块添加到任何节点。使用Context模块也会有所帮助,它允许将块和其他元素分配给具有比Drupal核心块管理更复杂的控件的页面。
答案 1 :(得分:0)
退房可以对您有所帮助:
https://drupal.stackexchange.com/questions/7450/comment-per-page-settings
因为它是一个表单,你必须改变它并从代码中更改注释号。
答案 2 :(得分:0)
即使有点粗鲁,我也找到了解决方案。要禁用节点的默认注释,我在subtheme的template.php文件中使用了预处理函数,并且在comment-wrapper.tpl.php模板中使用了$content['comments']
变量:
function MYSUBTHEMENAME_preprocess_comment_wrapper(&$vars){
$node = menu_get_object();
if($node):
if($node->type === 'forum' && $node->nid == 171):
unset($vars['content']['comments']);
endif;
endif;
}
请注意,我为评论包装变量/模板而不是节点vfariables /模板执行此操作,以便取消设置注释,但保留注释表单。
然后我创建了一个注释视图块,其中包含注释节点nid的过滤器。 这适用于我的目的,但如果你找到一个更优雅的方式让我知道。 :)
答案 3 :(得分:0)
我花了一些时间查看comment.module并在comment_form_node_type_form_alter
$form['comment']['comment_default_per_page'] = array(
'#type' => 'select',
'#title' => t('Comments per page'),
'#default_value' => variable_get('comment_default_per_page_' . $form['#node_type']->type, 50),
'#options' => _comment_per_page(),
);
所以我把它放在我的template.php
中function THEMENAME_preprocess_page(&$variables){
if (isset($variables['node']->type)) {
if ($variables['node']->type == 'forum') {
variable_set('comment_default_per_page_' . 'forum', 4);
}
}
}
它对我有用,我希望它有所帮助。