public function CommentGroupContentFormatter::viewElements in Open Social 8.4
Same name and namespace in other branches
- 8.9 modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 8 modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 8.2 modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 8.3 modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 8.5 modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 8.6 modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 8.7 modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 8.8 modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 10.3.x modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 10.0.x modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 10.1.x modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
- 10.2.x modules/custom/group_core_comments/src/Plugin/Field/FieldFormatter/CommentGroupContentFormatter.php \Drupal\group_core_comments\Plugin\Field\FieldFormatter\CommentGroupContentFormatter::viewElements()
Builds a renderable array for a field value.
Parameters
\Drupal\Core\Field\FieldItemListInterface $items: The field values to be rendered.
string $langcode: The language that should be used to render the field.
Return value
array A renderable array for $items, as an array of child elements keyed by consecutive numeric indexes starting from 0.
Overrides CommentDefaultFormatter::viewElements
File
- modules/
custom/ group_core_comments/ src/ Plugin/ Field/ FieldFormatter/ CommentGroupContentFormatter.php, line 28
Class
- CommentGroupContentFormatter
- Plugin implementation of the 'comment_group_content' formatter.
Namespace
Drupal\group_core_comments\Plugin\Field\FieldFormatterCode
public function viewElements(FieldItemListInterface $items, $langcode) {
$output = parent::viewElements($items, $langcode);
$entity = $items
->getEntity();
// Exclude entities without the set id.
if (!empty($entity
->id())) {
$group_contents = GroupContent::loadByEntity($entity);
}
if (!empty($group_contents)) {
// Add cache contexts.
$output['#cache']['contexts'][] = 'group.type';
$output['#cache']['contexts'][] = 'group_membership';
$account = \Drupal::currentUser();
$group = reset($group_contents)
->getGroup();
$group_url = $group
->toUrl('canonical', [
'language' => $group
->language(),
]);
$access_post_comments = $this
->getPermissionInGroups('post comments', $account, $group_contents, $output);
if ($access_post_comments
->isForbidden()) {
$description = $this
->t('You are not allowed to comment on content in a group you are not member of. You can join the group @group_link.', [
'@group_link' => Link::fromTextAndUrl($this
->t('here'), $group_url)
->toString(),
]);
$output[0]['comment_form'] = [
'#prefix' => '<hr>',
'#markup' => $description,
];
}
$access_view_comments = $this
->getPermissionInGroups('access comments', $account, $group_contents, $output);
if ($access_view_comments
->isForbidden()) {
$description = $this
->t('You are not allowed to view comments on content in a group you are not member of. You can join the group @group_link.', [
'@group_link' => Link::fromTextAndUrl($this
->t('here'), $group_url)
->toString(),
]);
unset($output[0]);
$output[0]['comments'] = [
'#markup' => $description,
];
}
}
return $output;
}