public function GroupNode::getGroupOperations in Group 2.0.x
Provides a list of operations for a group.
These operations can be implemented in numerous ways by extending modules. Out of the box, Group provides a block that shows the available operations to a user visiting a route with a group in its URL.
Do not forget to specify cacheable metadata if you need to. This can be done in ::getGroupOperationsCacheableMetadata().
Parameters
\Drupal\group\Entity\GroupInterface $group: The group to generate the operations for.
Return value
array An associative array of operation links to show when in a group context, keyed by operation name, containing the following key-value pairs:
- title: The localized title of the operation.
- url: An instance of \Drupal\Core\Url for the operation URL.
- weight: The weight of the operation.
Overrides GroupRelationBase::getGroupOperations
See also
::getGroupOperationsCacheableMetadata()
File
- modules/
gnode/ src/ Plugin/ Group/ Relation/ GroupNode.php, line 40
Class
- GroupNode
- Provides a group relation for nodes.
Namespace
Drupal\gnode\Plugin\Group\RelationCode
public function getGroupOperations(GroupInterface $group) {
$account = \Drupal::currentUser();
$plugin_id = $this
->getPluginId();
$type = $this
->getEntityBundle();
$operations = [];
if ($group
->hasPermission("create {$plugin_id} entity", $account)) {
$route_params = [
'group' => $group
->id(),
'plugin_id' => $plugin_id,
];
$operations["gnode-create-{$type}"] = [
'title' => $this
->t('Add @type', [
'@type' => $this
->getNodeType()
->label(),
]),
'url' => new Url('entity.group_content.create_form', $route_params),
'weight' => 30,
];
}
return $operations;
}