以节点的语言过滤评论
Filter Comments in the language of the node
我把评论放在节点上,但我对评论没有按语言过滤这一事实感到困惑。我没有找到解决方案。
当我在法语页面上时,我得到了法语评论和中文评论。
此外,当您 post 在中文页面上发表新评论时,声明该评论是中文的,则会重定向到节点的默认语言(此处为法语)。我用钩子解决了这个问题...
但无论语言节点是什么,我的内容仍然是混合语言。我尝试了不同的挂钩(hook_comment_view_alter 或 hook_comment_load),我在呈现之前看到了评论,但我无法删除我所在页面的不同语言的评论。那么有没有办法过滤基本Drupal8评论系统上的评论?
我使用 hook_query_TAG_alter 找到了解决方案(所以 hook_query_comment_filter_alter 用于评论)。
我在这里的完整解决方案:
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".
剥离命名空间
我把评论放在节点上,但我对评论没有按语言过滤这一事实感到困惑。我没有找到解决方案。
当我在法语页面上时,我得到了法语评论和中文评论。
此外,当您 post 在中文页面上发表新评论时,声明该评论是中文的,则会重定向到节点的默认语言(此处为法语)。我用钩子解决了这个问题...
但无论语言节点是什么,我的内容仍然是混合语言。我尝试了不同的挂钩(hook_comment_view_alter 或 hook_comment_load),我在呈现之前看到了评论,但我无法删除我所在页面的不同语言的评论。那么有没有办法过滤基本Drupal8评论系统上的评论?
我使用 hook_query_TAG_alter 找到了解决方案(所以 hook_query_comment_filter_alter 用于评论)。
我在这里的完整解决方案:
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".
剥离命名空间