class NodeTypeCountController in Node Type count 8
Controller routines for page example routes.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\node_type_count\Controller\NodeTypeCountController
Expanded class hierarchy of NodeTypeCountController
File
- src/
Controller/ NodeTypeCountController.php, line 17 - Contains \Drupal\node_type_count\Controller\NodeTypeCountController.
Namespace
Drupal\node_type_count\ControllerView source
class NodeTypeCountController extends ControllerBase {
/**
* Constructs a page with descriptive content.
*
* Our router maps this method to the path 'admin/reports/node-type-count'.
*/
public function nodeTypeCountPublished() {
// We are going to output the results in a table with a nice header.
$header = array(
t('Title'),
t('Type'),
t('Published'),
t('UnPublished'),
);
$result = node_type_get_names();
if (is_array($result)) {
foreach ($result as $node_type_machine_name => $content_type_title) {
// Get the value as key and value pair.
$result_arr['title'] = check_plain($content_type_title);
$result_arr['machine_name'] = $node_type_machine_name;
$result_arr['published'] = NodeTypeCountController::nodeCountState(NODE_PUBLISHED, $node_type_machine_name);
$result_arr['unpublished'] = NodeTypeCountController::nodeCountState(NODE_NOT_PUBLISHED, $node_type_machine_name);
$result_final[$node_type_machine_name] = $result_arr;
}
}
$rows = array();
foreach ($result_final as $row) {
// Normally we would add some nice formatting to our rows
// but for our purpose we are simply going to add our row
// to the array.
$rows[] = array(
'data' => (array) $row,
);
}
// Build the table for the nice output.
$build = array(
'#markup' => '<p>' . t('The layout here is a themed as a table
that is sortable by clicking the header name.') . '</p>',
);
$build['tablesort_table'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
);
return $build;
}
/**
* This code (noted in the callback above) creates the.
*
* Contents of the page for User count.
*/
public function userRoleCount() {
// We are going to output the results in a table with a nice header.
$header = array(
t('Role Name'),
t('Role Machine Name'),
t('Number of Users'),
);
$results = user_role_names();
if (is_array($results)) {
foreach ($results as $user_role_machine_name => $content_type_title) {
// Get the value as key and value pair.
$result_arr['title'] = check_plain($content_type_title);
$result_arr['machine_name'] = $user_role_machine_name;
$result_arr['count'] = NodeTypeCountController::userCountByRole($user_role_machine_name);
$result_final[$user_role_machine_name] = $result_arr;
}
}
$rows = array();
foreach ($result_final as $row) {
// Normally we would add some nice formatting to our rows
// but for our purpose we are simply going to add our row
// to the array.
$rows[] = array(
'data' => (array) $row,
);
}
// Build the table for the nice output.
$build = array(
'#markup' => '<p>' . t('The layout here is a themed as a table
that is sortable by clicking the header name.') . '</p>',
);
$build['tablesort_table'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
);
return $build;
}
/**
* This is the helper function for nodeCountState() to get the count.
*
* Of the published or unpublished content of particular content type.
*
* @param bool $status
* Node status.
* @param string $type
* Machine name of the content type.
*
* @return numeric
* Returns the count of node published or unpublished in the Content Type.
*/
public function nodeCountState($status, $type) {
$query = \Drupal::entityQuery('node')
->condition('status', $status)
->condition('type', $type);
$result = $query
->count()
->execute();
return $result;
}
/**
* Count User Role.
*/
public function userCountByRole($role_type_machine_name) {
$query = db_select('user__roles', 'ur')
->fields('ur', array(
'entity_id',
))
->condition('roles_target_id', $role_type_machine_name);
$results = $query
->countQuery()
->execute()
->fetchField();
return $results;
}
}
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. | |
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. | |
NodeTypeCountController:: |
public | function | This is the helper function for nodeCountState() to get the count. | |
NodeTypeCountController:: |
public | function | Constructs a page with descriptive content. | |
NodeTypeCountController:: |
public | function | Count User Role. | |
NodeTypeCountController:: |
public | function | This code (noted in the callback above) creates the. | |
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. |