diff --git a/core/modules/system/system.install b/core/modules/system/system.install index a0849b1..fc5d99a 100644 --- a/core/modules/system/system.install +++ b/core/modules/system/system.install @@ -340,8 +340,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'); @@ -360,23 +358,39 @@ 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')->formatTimeDiffSince($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'); + + // Create inline Twig template. + $template = <<<'TWIG' + {%- set space = ' ' %} + {%- if run_warning %} + {%- trans %}Cron has not run recently.{% endtrans %}{{ space }} + {%- trans %}For more information, see the online handbook entry for configuring cron jobs.{% endtrans %}{{ space }} + {%- endif %} + {%- trans %}You can run cron manually.{% endtrans %}{{ space }} + {%- trans %}To run cron from outside the site, go to {{ cron_outside|passthrough }}.{% endtrans %} +TWIG; + + // Create cron description. + $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)), + ), + ); + // Set cron requirements. $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') {