diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 66308e3..faf9787 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -331,8 +331,6 @@ function system_requirements($phase) {
$threshold_warning = $cron_config->get('threshold.requirements_warning');
// Cron error threshold defaults to two weeks.
$threshold_error = $cron_config->get('threshold.requirements_error');
- // Cron configuration help text.
- $help = t('For more information, see the online handbook entry for configuring cron jobs.', array('@cron-handbook' => 'https://www.drupal.org/cron'));
// Determine when cron last ran.
$cron_last = \Drupal::state()->get('system.cron_last');
@@ -351,23 +349,31 @@ function system_requirements($phase) {
// Set summary and description based on values determined above.
$summary = t('Last run !time ago', array('!time' => \Drupal::service('date.formatter')->formatInterval(REQUEST_TIME - $cron_last)));
- $description = '';
- if ($severity != REQUIREMENT_INFO) {
- $description = t('Cron has not run recently.') . ' ' . $help;
- }
- $description .= ' ' . t('You can run cron manually.', array('@cron' => \Drupal::url('system.run_cron')));
- $description .= '
' . t('To run cron from outside the site, go to !cron', array('!cron' => \Drupal::url('system.cron', array('key' => \Drupal::state()->get('system.cron_key'), array('absolute' => TRUE)))));
+ // Get cron key.
+ $cron_key = \Drupal::state()->get('system.cron_key');
+
+ $template = <<<'TWIG'
+{% if run_warning %}{% trans %}Cron has not run recently. For more information, see the online handbook entry for configuring cron jobs.{% endtrans %}{% endif %} {% trans %}You can run cron manually.{% endtrans %}
+{% trans %}To run cron from outside the site, go to {{ cron_outside|passthrough }}.{% endtrans %}
+TWIG;
+
+ $description = array(
+ '#type' => 'inline_template',
+ '#template' => $template,
+ '#context' => array(
+ 'run_warning' => $severity != REQUIREMENT_INFO,
+ 'cron_handbook' => 'https://www.drupal.org/cron',
+ 'cron_inside' => \Drupal::url('system.run_cron'),
+ 'cron_outside' => \Drupal::url('system.cron', array('key' => $cron_key), array('absolute' => TRUE)),
+ ),
+ );
$requirements['cron'] = array(
'title' => t('Cron maintenance tasks'),
'severity' => $severity,
'value' => $summary,
- // @todo This string is concatenated from t() calls, safe drupal_render()
- // output, whitespace, and
tags, so is safe. However, as a best
- // practice, we should not use SafeMarkup::set() around a variable. Fix
- // in: https://www.drupal.org/node/2296929.
- 'description' => SafeMarkup::set($description),
+ 'description' => $description,
);
}
if ($phase != 'install') {