在 Drupal 8 中提交评论时打印用户角色
Print user role when submitting comments in Drupal 8
在我的 Drupal 站点中,用户配置文件包含用户名、角色和组分类术语。有一个文章内容类型设置来接受用户的评论。每当有用户评论时,我想显示为:
Submitted by: username, role, group
我尝试通过 template_preprocess 函数读取角色和类别字段,如下所示:
function bartik_preprocess_comment(array &$variables) {
if (isset($variables['elements']['#view_mode'])) {
$variables['view_mode'] = $variables['elements']['#view_mode'];
}
else {
$variables['view_mode'] = 'default';
}
dd($variables);
}
但是转储不显示“组”字段。不确定 missing.Rightnow 是什么,只显示用户名。我的 comments.html.twig 如下所示:
<div class="author-comments">
<p class="comment-submitted">{{ submitted }}</p>
<div{{ content_attributes.addClass('content') }}>
{% if title %}
{{ title_prefix }}
<h3{{ title_attributes }}>{{ title }}</h3>
{{ title_suffix }}
{% endif %}
{{ content }}
</div>
</div>
关于如何提取角色和类别字段并插入 Twig 模板的任何帮助?谢谢!
好的,我能解决这个问题。以下是我的回答:
在 mytheme.theme 文件中:
/**
* Implements hook_preprocess_HOOK() for comment.html.twig.
*/
function mytheme_preprocess_comment(array &$variables) {
$user = \Drupal::currentUser();
$user_entity = \Drupal::entityTypeManager()
->getStorage('user')
->load($user->id());
$roles = $user->getRoles();
$variables['user_roles'] = $roles ;
}
此变量可以在 comment.html.twig 上打印为:{{ user_roles }}
根据需要。
在我的 Drupal 站点中,用户配置文件包含用户名、角色和组分类术语。有一个文章内容类型设置来接受用户的评论。每当有用户评论时,我想显示为:
Submitted by: username, role, group
我尝试通过 template_preprocess 函数读取角色和类别字段,如下所示:
function bartik_preprocess_comment(array &$variables) {
if (isset($variables['elements']['#view_mode'])) {
$variables['view_mode'] = $variables['elements']['#view_mode'];
}
else {
$variables['view_mode'] = 'default';
}
dd($variables);
}
但是转储不显示“组”字段。不确定 missing.Rightnow 是什么,只显示用户名。我的 comments.html.twig 如下所示:
<div class="author-comments">
<p class="comment-submitted">{{ submitted }}</p>
<div{{ content_attributes.addClass('content') }}>
{% if title %}
{{ title_prefix }}
<h3{{ title_attributes }}>{{ title }}</h3>
{{ title_suffix }}
{% endif %}
{{ content }}
</div>
</div>
关于如何提取角色和类别字段并插入 Twig 模板的任何帮助?谢谢!
好的,我能解决这个问题。以下是我的回答:
在 mytheme.theme 文件中:
/**
* Implements hook_preprocess_HOOK() for comment.html.twig.
*/
function mytheme_preprocess_comment(array &$variables) {
$user = \Drupal::currentUser();
$user_entity = \Drupal::entityTypeManager()
->getStorage('user')
->load($user->id());
$roles = $user->getRoles();
$variables['user_roles'] = $roles ;
}
此变量可以在 comment.html.twig 上打印为:{{ user_roles }}
根据需要。