以节点语言过滤注释

时间:2017-07-04 10:06:52

标签: multilingual drupal-8

我把评论放在节点上,但我对这些评论没有按语言过滤的事实感到困惑。而且我找不到解决方案。

当我在法语页面上时,我收到了法语和中文的评论。

另外,当您在中文页面上发布新评论时,说明评论是中文的,那么重定向到节点的默认语言(这里是法语)。我用钩子修复了这个问题...

但无论语言节点是什么,我仍然有一种混合语言的内容。我尝试了不同的钩子(hook_comment_view_alter或hook_comment_load),我在渲染之前看到了注释,但是我无法删除我所在页面的不同语言的注释。那么有没有办法过滤基本Drupal8评论系统的评论?

2 个答案:

答案 0 :(得分:2)

我的完整解决方案:

function hook_query_comment_filter_alter(Drupal\Core\Database\Query\AlterableInterface $query) {
    $clangcode = \Drupal::service('language_manager')->getCurrentLanguage(\Drupal\Core\Language\LanguageInterface::TYPE_CONTENT);
    $query->condition('langcode', $clangcode->getId());
}

您可以使用“use”删除命名空间。

答案 1 :(得分:1)

我使用hook_query_TAG_alter找到了解决方案(所以请注意hook_query_comment_filter_alter)。

见这里: https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Database%21database.api.php/function/hook_query_TAG_alter/8.3.x