class DefaultController in Custom Contextual Links 8
Same name in this branch
- 8 src/Controller/DefaultController.php \Drupal\ccl\Controller\DefaultController
- 8 ccl_actions/src/Controller/DefaultController.php \Drupal\ccl_actions\Controller\DefaultController
Default controller for the ccl module.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\ccl\Controller\DefaultController
Expanded class hierarchy of DefaultController
File
- src/
Controller/ DefaultController.php, line 13 - Contains \Drupal\ccl\Controller\DefaultController.
Namespace
Drupal\ccl\ControllerView source
class DefaultController extends ControllerBase {
public function ccl_admin() {
$result = db_query("SELECT * FROM {ccl}");
if ($result
->rowCount()) {
// Get content type names.
$cts = node_type_get_names();
// Prepare table header.
$header = [
t('Title'),
t('URL'),
t('Type'),
t('Options'),
t('Operation'),
];
$rows = [];
foreach ($result as $record) {
$options = [
'desc' => '',
'op' => '',
];
// Prepeare the options display.
if ($record->type == 'node') {
$link_options = unserialize($record->options);
switch ($link_options['node_options']) {
case 'global':
$options['desc'] = t('Attached to all nodes.');
break;
case 'ct':
$options['desc'] = t('Attached to all nodes of the content type %ct.', [
'%ct' => $cts[$link_options['node_type']],
]);
break;
case 'node':
$node_title = db_query('SELECT title FROM {node} WHERE nid = :nid', [
':nid' => $link_options['node_id'],
])
->fetchField();
$options['desc'] = t('Attached to %node_title [NID: !nid].', [
'%node_title' => $node_title,
'!nid' => $link_options['node_id'],
]);
break;
}
// @FIXME
// l() expects a Url object, created from a route name or external URI.
// $options['op'] = l(t('Edit'), 'admin/config/user-interface/ccl/' . $record->clid . '/edit') . ' | ' . l(t('Delete'), 'admin/config/user-interface/ccl/' . $record->clid . '/delete');
}
else {
foreach (\Drupal::moduleHandler()
->getImplementations('ccl_link_info') as $module) {
$options = \Drupal::moduleHandler()
->invoke($module, 'ccl_link_info', [
$record,
]);
if (!empty($options)) {
break;
}
}
}
// Prepare table row.
$rows[] = [
$record->title . ' <small>[ID: ' . $record->clid . ']</small>',
$record->link,
$record->type,
$options['desc'],
$options['op'],
];
}
// @FIXME
// theme() has been renamed to _theme() and should NEVER be called directly.
// Calling _theme() directly can alter the expected output and potentially
// introduce security issues (see https://www.drupal.org/node/2195739). You
// should use renderable arrays instead.
//
//
// @see https://www.drupal.org/node/2195739
// return theme('table', array('header' => $header, 'rows' => $rows));
}
else {
// @FIXME
// url() expects a route name or an external URI.
// return array(
// 'empty_text' => array(
// '#type' => 'markup',
// '#markup' => '<p>' . t('No custom contextual links have been added yet. <a href="@add-page">Add a link here</a>.', array('@add-page' => url('admin/config/user-interface/ccl/add'))) . '</p>',
// ),
// );
}
}
public function ccl_node_autocomplete($string = '') {
$matches = [];
if ($string) {
$result = db_select('node', 'n')
->fields('n', [
'title',
'nid',
])
->condition('title', db_like($string) . '%', 'LIKE')
->range(0, 10)
->execute();
foreach ($result as $node) {
$matches[\Drupal\Component\Utility\Html::escape($node->title) . ' [nid:' . $node->nid . ']'] = \Drupal\Component\Utility\Html::escape($node->title);
}
}
drupal_json_output($matches);
}
}
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. | |
DefaultController:: |
public | function | ||
DefaultController:: |
public | function | ||
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. |