class DevelMailLoggerController in Devel Mail Logger 8
Class DevelMailLoggerController.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\devel_mail_logger\Controller\DevelMailLoggerController
Expanded class hierarchy of DevelMailLoggerController
File
- src/
Controller/ DevelMailLoggerController.php, line 17
Namespace
Drupal\devel_mail_logger\ControllerView source
class DevelMailLoggerController extends ControllerBase {
/**
* Drupal\Core\Database\Connection definition.
*
* @var \Drupal\Core\Database\Connection
*/
protected $database;
/**
* Drupal\Core\Datetime\DateFormatterInterface definition.
*
* @var \Drupal\Core\Datetime\DateFormatterInterface
*/
protected $dateFormatter;
/**
* Drupal\Core\Form\FormBuilderInterface definition.
*
* @var \Drupal\Core\Form\FormBuilderInterface
*/
protected $formBuilder;
/**
* Drupal\Core\Mail\MailManagerInterface definition.
*
* @var \Drupal\Core\Mail\MailManagerInterface
*/
protected $pluginManagerMail;
/**
* Constructs a new DevelMailLoggerController object.
*/
public function __construct(Connection $database, DateFormatterInterface $date_formatter, FormBuilderInterface $form_builder, MailManagerInterface $plugin_manager_mail) {
$this->database = $database;
$this->dateFormatter = $date_formatter;
$this->formBuilder = $form_builder;
$this->pluginManagerMail = $plugin_manager_mail;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('database'), $container
->get('date.formatter'), $container
->get('form_builder'), $container
->get('plugin.manager.mail'));
}
/**
* Show a list of mails from db.
*/
public function listMails() {
$header = [
[
'data' => $this
->t('Date'),
'field' => 'm.timestamp',
'sort' => 'desc',
'class' => [
RESPONSIVE_PRIORITY_MEDIUM,
],
],
[
'data' => $this
->t('To'),
'field' => 'm.recipient',
'class' => [
RESPONSIVE_PRIORITY_MEDIUM,
],
],
[
'data' => $this
->t('Subject'),
'field' => 'm.subject',
'class' => [
RESPONSIVE_PRIORITY_LOW,
],
],
];
$query = $this->database
->select('devel_mail_logger', 'm')
->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
->extend('\\Drupal\\Core\\Database\\Query\\TableSortExtender');
$results = $query
->fields('m', [
'id',
'timestamp',
'subject',
'recipient',
])
->limit(50)
->orderByHeader($header)
->execute();
$rows = [];
foreach ($results as $result) {
$rows[] = [
'data' => [
$this
->t($this->dateFormatter
->format($result->timestamp, 'short')),
$result->recipient,
Link::createFromRoute($result->subject, 'devel_mail_logger.mail', [
'id' => $result->id,
]),
],
];
}
$build = [
'form' => $this->formBuilder
->getForm('Drupal\\devel_mail_logger\\Form\\DevelMailLoggerDeleteForm'),
'mail_table' => [
'#type' => 'table',
'#header' => $header,
'#rows' => $rows,
'#attributes' => [
'id' => 'admin-dblog',
'class' => [
'admin-dblog',
],
],
'#empty' => $this
->t('No debug mails available.'),
],
'pager' => [
'#type' => 'pager',
],
];
return $build;
}
/**
* Show a single mail.
*/
public function showMail($id) {
$build = [];
$mail_log = $this->database
->query('SELECT * FROM {devel_mail_logger} m WHERE m.id = :id', [
':id' => $id,
])
->fetchObject();
$mail = json_decode($mail_log->message);
$rows = [];
foreach ($mail->headers as $key => $value) {
$rows[] = [
[
'data' => $key,
'header' => TRUE,
],
$value,
];
}
$build['headers'] = [
'#type' => 'details',
'#title' => 'Headers',
];
$build['headers']['table'] = [
'#type' => 'table',
'#rows' => $rows,
'#attributes' => [
'class' => [
'table table__header',
],
],
];
$rows = [
[
[
'data' => $this
->t('To: '),
'header' => TRUE,
],
$mail->to,
],
[
[
'data' => $this
->t('Subject: '),
'header' => TRUE,
],
$mail->subject,
],
[
[
'data' => $this
->t('Body: '),
'header' => TRUE,
],
Markup::create(nl2br(is_array($mail->body) ? implode('', $mail->body) : $mail->body)),
],
];
$build['mail_table'] = [
'#type' => 'table',
'#rows' => $rows,
'#attributes' => [
'class' => [
'table table__content',
],
],
];
return $build;
}
/**
* Send a test mail to current user.
*
* @return [type] [description]
*/
public function sendMail() {
$module = 'devel_mail_logger';
$key = 'send_test';
$to = \Drupal::currentUser()
->getEmail();
$params['message'] = 'body';
$params['subject'] = 'subject';
$langcode = \Drupal::currentUser()
->getPreferredLangcode();
$send = TRUE;
$result = $this->pluginManagerMail
->mail($module, $key, $to, $langcode, $params, NULL, $send);
return [
'#markup' => t('Mail sent.'),
];
}
}
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 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 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. | |
DevelMailLoggerController:: |
protected | property | Drupal\Core\Database\Connection definition. | |
DevelMailLoggerController:: |
protected | property | Drupal\Core\Datetime\DateFormatterInterface definition. | |
DevelMailLoggerController:: |
protected | property |
Drupal\Core\Form\FormBuilderInterface definition. Overrides ControllerBase:: |
|
DevelMailLoggerController:: |
protected | property | Drupal\Core\Mail\MailManagerInterface definition. | |
DevelMailLoggerController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
DevelMailLoggerController:: |
public | function | Show a list of mails from db. | |
DevelMailLoggerController:: |
public | function | Send a test mail to current user. | |
DevelMailLoggerController:: |
public | function | Show a single mail. | |
DevelMailLoggerController:: |
public | function | Constructs a new DevelMailLoggerController object. | |
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. |