class DomainContentController in Domain Access 8
Controller routines domain content pages.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\domain_content\Controller\DomainContentController
Expanded class hierarchy of DomainContentController
File
- domain_content/
src/ Controller/ DomainContentController.php, line 14
Namespace
Drupal\domain_content\ControllerView source
class DomainContentController extends ControllerBase {
/**
* Builds the list of domains and relevant entities.
*
* @param array $options
* A list of variables required to build editor or content pages.
*
* @see contentlist()
*
* @return array
* A Drupal page build array.
*/
public function buildList(array $options) {
$account = $this
->getUser();
$build = [
'#theme' => 'table',
'#header' => [
$this
->t('Domain'),
$options['column_header'],
],
];
if ($account
->hasPermission($options['all_permission'])) {
$build['#rows'][] = [
Link::fromTextAndUrl($this
->t('All affiliates'), Url::fromUri('internal:/admin/content/' . $options['path'] . '/all_affiliates')),
$this
->getCount($options['type']),
];
}
// Loop through domains.
$domains = \Drupal::entityTypeManager()
->getStorage('domain')
->loadMultipleSorted();
$manager = \Drupal::service('domain_access.manager');
/** @var \Drupal\domain\DomainInterface $domain */
foreach ($domains as $domain) {
if ($account
->hasPermission($options['all_permission']) || $manager
->hasDomainPermissions($account, $domain, [
$options['permission'],
])) {
$row = [
Link::fromTextAndUrl($domain
->label(), Url::fromUri('internal:/admin/content/' . $options['path'] . '/' . $domain
->id())),
$this
->getCount($options['type'], $domain),
];
$build['#rows'][] = $row;
}
}
return $build;
}
/**
* Generates a list of content by domain.
*/
public function contentList() {
$options = [
'type' => 'node',
'column_header' => $this
->t('Content count'),
'permission' => 'publish to any assigned domain',
'all_permission' => 'publish to any domain',
'path' => 'domain-content',
];
return $this
->buildList($options);
}
/**
* Generates a list of editors by domain.
*/
public function editorsList() {
$options = [
'type' => 'user',
'column_header' => $this
->t('Editor count'),
'permission' => 'assign domain editors',
'all_permission' => 'assign editors to any domain',
'path' => 'domain-editors',
];
return $this
->buildList($options);
}
/**
* Counts the content for a domain.
*
* @param string $entity_type
* The entity type.
* @param \Drupal\domain\DomainInterface $domain
* The domain to query. If passed NULL, checks status for all affiliates.
*
* @return int
* The content count for the given domain.
*/
protected function getCount($entity_type = 'node', DomainInterface $domain = NULL) {
if (is_null($domain)) {
$field = DomainAccessManagerInterface::DOMAIN_ACCESS_ALL_FIELD;
$value = 1;
}
else {
$field = DomainAccessManagerInterface::DOMAIN_ACCESS_FIELD;
$value = $domain
->id();
}
// Note that we ignore node access so these queries work on any domain.
$query = \Drupal::entityQuery($entity_type)
->condition($field, $value)
->accessCheck(FALSE);
return count($query
->execute());
}
/**
* Returns a fully loaded user object for the current request.
*
* @return \Drupal\Core\Session\AccountInterface
* The current user object.
*/
protected function getUser() {
$account = $this
->currentUser();
// Advanced grants for edit/delete require permissions.
return \Drupal::entityTypeManager()
->getStorage('user')
->load($account
->id());
}
}
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 manager. | |
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:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
40 |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
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. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
DomainContentController:: |
public | function | Builds the list of domains and relevant entities. | |
DomainContentController:: |
public | function | Generates a list of content by domain. | |
DomainContentController:: |
public | function | Generates a list of editors by domain. | |
DomainContentController:: |
protected | function | Counts the content for a domain. | |
DomainContentController:: |
protected | function | Returns a fully loaded user object for the current request. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator 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. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
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. | 1 |
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. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |