如何更改Drupal 7中单个节点每页的注释数?

如何更改Drupal 7中单个节点每页的注释数?,drupal,drupal-7,Drupal,Drupal 7,我只想更改单个节点的每页评论。假设内容类型“article”的每页评论的defaul数量是50,我只想将nid=171的文章的评论数量改为10 $node = menu_get_object('node',1); if($node && $node->nid = 171) {......} 有什么提示吗?谢谢。检查这对您有帮助吗: 由于这是一个表单,您必须更改它,并更改代码中的注释编号。如果您想控制单个页面上注释的数量,我建议安装模块,以便轻松创建任何内容列表,包括注释

我只想更改单个节点的每页评论。假设内容类型“article”的每页评论的defaul数量是50,我只想将nid=171的文章的评论数量改为10

$node = menu_get_object('node',1); if($node && $node->nid = 171) {......}

有什么提示吗?谢谢。

检查这对您有帮助吗:


由于这是一个表单,您必须更改它,并更改代码中的注释编号。

如果您想控制单个页面上注释的数量,我建议安装模块,以便轻松创建任何内容列表,包括注释。使用视图,可以为任何节点创建带有注释的块,并使用该块代替常规注释块。
此外,您可以有几个不同的块,它们具有不同数量的注释,并将任何块附加到任何节点。使用模块也会有所帮助,它允许使用比Drupal核心块管理更复杂的控件将块和其他元素分配给页面

即使有点粗鲁,我还是找到了解决办法。为了禁用节点的默认注释,我在子主题的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;
}
请注意,我是针对注释包装器变量/模板而不是节点vvariables/template这样做的,目的是取消注释,而是保留注释表单

然后,我为注释节点的nid创建了一个带有过滤器的注释视图块。
这对我来说很有效,但如果你找到更优雅的方式,请告诉我。:)

我花了一段时间查找comment.module,并在
comment\u form\u node\u type\u form\u 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);
     }
  }
}

这对我很有效,希望能有所帮助。

谢谢你的回答。据我所知,这些示例是更改内容类型而不是单个节点的每页评论数。这是我的第一个想法,我使用页面管理器和面板创建了该节点的变体,然后使用定制的寻呼机显示评论视图。不幸的是,由于其他原因,我不能使用这种方法。我需要在不使用面板的情况下实现这一点。我可以使用常规视图块,但如果不使用面板,我不知道如何防止显示节点的默认内容和注释。(节点类型是高级论坛模块的论坛主题)。要隐藏特定内容类型上显示的评论,您可以编辑内容类型设置并将评论设置为“隐藏”。这将影响此内容类型的所有新节点,但必须编辑已创建的所有内容并将其设置为comments=hidden。然后,您可以使用块(由视图生成)添加注释,而无需使用面板。