class GroupMembershipController in Group 2.0.x
Same name and namespace in other branches
- 8 src/Controller/GroupMembershipController.php \Drupal\group\Controller\GroupMembershipController
Provides group membership route controllers.
This only controls the routes that are not supported out of the box by the plugin base \Drupal\group\Plugin\Group\Relation\GroupRelationBase.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, RedirectDestinationTrait, StringTranslationTrait
- class \Drupal\group\Controller\GroupMembershipController
Expanded class hierarchy of GroupMembershipController
File
- src/
Controller/ GroupMembershipController.php, line 18
Namespace
Drupal\group\ControllerView source
class GroupMembershipController extends ControllerBase {
/**
* The current user.
*
* @var \Drupal\Core\Session\AccountInterface
*/
protected $currentUser;
/**
* The entity form builder.
*
* @var \Drupal\Core\Entity\EntityFormBuilderInterface
*/
protected $entityFormBuilder;
/**
* Constructs a new GroupMembershipController.
*
* @param \Drupal\Core\Session\AccountInterface $current_user
* The current user.
* @param \Drupal\Core\Entity\EntityFormBuilderInterface $entity_form_builder
* The entity form builder.
*/
public function __construct(AccountInterface $current_user, EntityFormBuilderInterface $entity_form_builder) {
$this->currentUser = $current_user;
$this->entityFormBuilder = $entity_form_builder;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('current_user'), $container
->get('entity.form_builder'));
}
/**
* Provides the form for joining a group.
*
* @param \Drupal\group\Entity\GroupInterface $group
* The group to join.
*
* @return array
* A group join form.
*/
public function join(GroupInterface $group) {
/** @var \Drupal\group\Plugin\Group\Relation\GroupRelationInterface $plugin */
$plugin = $group
->getGroupType()
->getContentPlugin('group_membership');
// Pre-populate a group membership with the current user.
$group_content = GroupContent::create([
'type' => $plugin
->getContentTypeConfigId(),
'gid' => $group
->id(),
'entity_id' => $this->currentUser
->id(),
]);
return $this->entityFormBuilder
->getForm($group_content, 'group-join');
}
/**
* The _title_callback for the join form route.
*
* @param \Drupal\group\Entity\GroupInterface $group
* The group to join.
*
* @return string
* The page title.
*/
public function joinTitle(GroupInterface $group) {
return $this
->t('Join group %label', [
'%label' => $group
->label(),
]);
}
/**
* Provides the form for leaving a group.
*
* @param \Drupal\group\Entity\GroupInterface $group
* The group to leave.
*
* @return array
* A group leave form.
*/
public function leave(GroupInterface $group) {
$group_content = $group
->getMember($this->currentUser)
->getGroupContent();
return $this->entityFormBuilder
->getForm($group_content, 'group-leave');
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function | Returns a redirect response object for the specified route. | |
ControllerBase:: |
protected | function | Returns the state storage service. | |
GroupMembershipController:: |
protected | property |
The current user. Overrides ControllerBase:: |
|
GroupMembershipController:: |
protected | property |
The entity form builder. Overrides ControllerBase:: |
|
GroupMembershipController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
GroupMembershipController:: |
public | function | Provides the form for joining a group. | |
GroupMembershipController:: |
public | function | The _title_callback for the join form route. | |
GroupMembershipController:: |
public | function | Provides the form for leaving a group. | |
GroupMembershipController:: |
public | function | Constructs a new GroupMembershipController. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |