class SocialCoreController in Open Social 10.1.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 8 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 8.2 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 8.3 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 8.4 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 8.5 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 8.6 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 8.7 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 8.8 modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 10.3.x modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 10.0.x modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
- 10.2.x modules/social_features/social_core/src/Controller/SocialCoreController.php \Drupal\social_core\Controller\SocialCoreController
Returns responses for social_core module routes.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, RedirectDestinationTrait, StringTranslationTrait
- class \Drupal\social_core\Controller\SocialCoreController uses ViewsBulkOperationsFormTrait
Expanded class hierarchy of SocialCoreController
File
- modules/
social_features/ social_core/ src/ Controller/ SocialCoreController.php, line 18
Namespace
Drupal\social_core\ControllerView source
class SocialCoreController extends ControllerBase {
use ViewsBulkOperationsFormTrait;
/**
* The tempstore service.
*
* @var \Drupal\Core\TempStore\PrivateTempStoreFactory
*/
protected $tempStoreFactory;
/**
* Views Bulk Operations action processor.
*
* @var \Drupal\views_bulk_operations\Service\ViewsBulkOperationsActionProcessorInterface
*/
protected $actionProcessor;
/**
* SocialGroupController constructor.
*
* @param \Drupal\Core\TempStore\PrivateTempStoreFactory $tempStoreFactory
* Private temporary storage factory.
* @param \Drupal\views_bulk_operations\Service\ViewsBulkOperationsActionProcessorInterface $actionProcessor
* Views Bulk Operations action processor.
*/
public function __construct(PrivateTempStoreFactory $tempStoreFactory, ViewsBulkOperationsActionProcessorInterface $actionProcessor) {
$this->tempStoreFactory = $tempStoreFactory;
$this->actionProcessor = $actionProcessor;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('tempstore.private'), $container
->get('views_bulk_operations.processor'));
}
/**
* Custom function for returning markup on the access denied page.
*/
public function accessDenied() {
// Get the front page URL.
$frontpage = $this
->config('system.site')
->get('page.front');
// Determine the message we want to set.
$text = $this
->t("<p>You have insufficient permissions to view the page you're trying to access. There could be several reasons for this:</p><ul><li>You are trying to edit content you're not allowed to edit.</li><li>You are trying to view content (from a group) you don't have access to.</li><li>You are trying to access administration pages.</li></ul><p>Click the back button of your browser to go back where you came from or click <a href=\":url\">here</a> to go to the homepage</p>", [
':url' => $frontpage,
]);
// Return the message in the render array.
return [
'#markup' => $text,
];
}
/**
* Empty page for the homepage.
*/
public function stream() {
$element = [
'#markup' => '',
];
return $element;
}
/**
* AJAX callback to update selection (multipage).
*
* @param string $view_id
* The current view ID.
* @param string $display_id
* The display ID of the current view.
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
*/
public function updateSelection($view_id, $display_id, Request $request) {
$view_data = $this
->getTempstoreData($view_id, $display_id);
if (empty($view_data)) {
throw new NotFoundHttpException();
}
// If the group id doesn't match.
// We reset the selection and update the group.
if ($view_id === 'group_manage_members') {
$group_id = $request->attributes
->get('group');
if (!empty($group_id) && !empty($view_data['group_id'])) {
if ($group_id !== $view_data['group_id']) {
$view_data['list'] = [];
$view_data['group_id'] = $group_id;
$view_data['total_results'] = 0;
}
}
}
// If the event id doesn't match.
// We reset the selection and update the group.
if ($view_id === 'event_manage_enrollments') {
// Get's overridden by GVBO in to the group argument.
$event_id = $request->attributes
->get('group');
if (!empty($event_id) && !empty($view_data['event_id'])) {
if ($event_id !== $view_data['event_id']) {
$view_data['list'] = [];
$view_data['event_id'] = $event_id;
$view_data['total_results'] = 0;
}
}
}
// All borrowed from ViewsBulkOperationsController.php.
$list = $request->request
->get('list');
$op = $request->request
->get('op', 'check');
// Reverse operation when in exclude mode.
if (!empty($view_data['exclude_mode'])) {
if ($op === 'add') {
$op = 'remove';
}
elseif ($op === 'remove') {
$op = 'add';
}
}
switch ($op) {
case 'add':
foreach ($list as $bulkFormKey) {
if (!isset($view_data['list'][$bulkFormKey])) {
$view_data['list'][$bulkFormKey] = $this
->getListItem($bulkFormKey);
}
}
break;
case 'remove':
foreach ($list as $bulkFormKey) {
if (isset($view_data['list'][$bulkFormKey])) {
unset($view_data['list'][$bulkFormKey]);
}
}
break;
case 'method_include':
unset($view_data['exclude_mode']);
$view_data['list'] = [];
break;
case 'method_exclude':
$view_data['exclude_mode'] = TRUE;
$view_data['list'] = [];
break;
}
$this
->setTempstoreData($view_data);
$count = empty($view_data['exclude_mode']) ? count($view_data['list']) : $view_data['total_results'] - count($view_data['list']);
$response = new AjaxResponse();
$response
->setData([
'count' => $count,
]);
return $response;
}
/**
* Redirects a user to the group or events invite page, or home if empty.
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
* Returns a redirect to the events of the currently logged in user.
*/
public function myInvitesUserPage() {
/** @var \Drupal\social_core\InviteService $core_invites */
$core_invites = \Drupal::service('social_core.invite');
// Only when there are actual Invite plugins enabled.
if (!empty($core_invites
->getInviteData('name'))) {
return $this
->redirect($core_invites
->getInviteData('name'), [
'user' => $this
->currentUser()
->id(),
]);
}
// If there are no invites found or no module enabled
// lets redirect user to their stream.
return $this
->redirect('social_user.user_home', [
'user' => $this
->currentUser()
->id(),
]);
}
/**
* The _title_callback for the node.add route.
*
* @param \Drupal\node\NodeTypeInterface $node_type
* The current node.
*
* @return string
* The page title.
*/
public function addPageTitle(NodeTypeInterface $node_type) {
// The node_types that have a different article than a.
$node_types = [
'event' => 'an',
];
// Make sure extensions can change this as well.
\Drupal::moduleHandler()
->alter('social_node_title_prefix_articles', $node_types);
if ($node_type !== NULL && array_key_exists($node_type
->id(), $node_types)) {
return $this
->t('Create @article @name', [
'@article' => $node_types[$node_type
->id()],
'@name' => $node_type
->label(),
]);
}
return $this
->t('Create a @name', [
'@name' => $node_type
->label(),
]);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
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. | |
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. | |
SocialCoreController:: |
protected | property | Views Bulk Operations action processor. | |
SocialCoreController:: |
protected | property | The tempstore service. | |
SocialCoreController:: |
public | function | Custom function for returning markup on the access denied page. | |
SocialCoreController:: |
public | function | The _title_callback for the node.add route. | |
SocialCoreController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
SocialCoreController:: |
public | function | Redirects a user to the group or events invite page, or home if empty. | |
SocialCoreController:: |
public | function | Empty page for the homepage. | |
SocialCoreController:: |
public | function | AJAX callback to update selection (multipage). | |
SocialCoreController:: |
public | function | SocialGroupController constructor. | |
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. | |
ViewsBulkOperationsFormTrait:: |
protected | property | The tempstore name. | |
ViewsBulkOperationsFormTrait:: |
protected | property | The tempstore object associated with the current view. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Add a cancel button into a VBO form. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Add data needed for entity list rendering. | |
ViewsBulkOperationsFormTrait:: |
public static | function | Calculates the bulk form key for an entity. | |
ViewsBulkOperationsFormTrait:: |
public | function | Submit callback to cancel an action and return to the view. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Deletes the current view user tempstore data. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Helper function to prepare data needed for proper form display. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Get an entity list item from a bulk form key. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Build selected entities list renderable. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Build the selection info element. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Get the selection info title. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Initialize the current view tempstore object. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Gets the current view user tempstore data. | |
ViewsBulkOperationsFormTrait:: |
protected | function | Sets the current view user tempstore data. |