/** * Check update requirements and report any errors. */ function update_check_requirements() { // Check the system module and update.php requirements only. $requirements = module_invoke('system', 'requirements', 'update'); $requirements += update_extra_requirements(); $severity = drupal_requirements_severity($requirements); // If there are issues, report them. if ($severity == REQUIREMENT_ERROR) { update_task_list('requirements'); drupal_set_title('Requirements problem'); $status_report = theme('status_report', $requirements); $status_report .= 'Please check the error messages and <a href="' . request_uri() . '">try again</a>.'; print theme('update_page', $status_report); exit; } }
/** * Check update requirements and report any errors. */ function update_check_requirements() { // Check requirements of all loaded modules. $requirements = module_invoke_all('requirements', 'update'); $requirements += update_extra_requirements(); $severity = drupal_requirements_severity($requirements); // If there are issues, report them. if ($severity == REQUIREMENT_ERROR) { update_task_list('requirements'); drupal_set_title('Requirements problem'); $status_report = theme('status_report', array('requirements' => $requirements)); $status_report .= 'Check the error messages and <a href="' . check_url(request_uri()) . '">try again</a>.'; print theme('update_page', array('content' => $status_report)); exit; } }
/** * Checks update requirements and reports errors and (optionally) warnings. * * @param $skip_warnings * (optional) If set to TRUE, requirement warnings will be ignored, and a * report will only be issued if there are requirement errors. Defaults to * FALSE. */ function update_check_requirements($skip_warnings = FALSE) { // Check requirements of all loaded modules. $requirements = module_invoke_all('requirements', 'update'); $requirements += update_extra_requirements(); $severity = drupal_requirements_severity($requirements); // If there are errors, always display them. If there are only warnings, skip // them if the caller has indicated they should be skipped. if ($severity == REQUIREMENT_ERROR || $severity == REQUIREMENT_WARNING && !$skip_warnings) { update_task_list('requirements'); drupal_set_title('Requirements problem'); $status_report = theme('status_report', array('requirements' => $requirements)); $status_report .= 'Check the error messages and <a href="' . check_url(drupal_requirements_url($severity)) . '">try again</a>.'; print theme('update_page', array('content' => $status_report)); exit; } }
function update_info_page() { // Change query-strings on css/js files to enforce reload for all users. _drupal_flush_css_js(); // Flush the cache of all data for the update status module. if (db_table_exists('cache_update')) { cache_clear_all('*', 'cache_update', TRUE); } update_task_list('info'); drupal_set_title('Drupal database update'); $token = drupal_get_token('update'); $output = '<p>Use this utility to update your database whenever a new release of Drupal or a module is installed.</p><p>For more detailed information, see the <a href="http://drupal.org/upgrade">upgrading handbook</a>. If you are unsure what these terms mean you should probably contact your hosting provider.</p>'; $output .= "<ol>\n"; $output .= "<li><strong>Back up your database</strong>. This process will change your database values and in case of emergency you may need to revert to a backup.</li>\n"; $output .= "<li><strong>Back up your code</strong>. Hint: when backing up module code, do not leave that backup in the 'modules' or 'sites/*/modules' directories as this may confuse Drupal's auto-discovery mechanism.</li>\n"; $output .= '<li>Put your site into <a href="' . base_path() . '?q=admin/settings/site-maintenance">maintenance mode</a>.</li>' . "\n"; $output .= "<li>Install your new files in the appropriate location, as described in the handbook.</li>\n"; $output .= "</ol>\n"; $output .= "<p>When you have performed the steps above, you may proceed.</p>\n"; $output .= '<form method="post" action="update.php?op=selection&token=' . $token . '"><p><input type="submit" value="Continue" /></p></form>'; $output .= "\n"; return $output; }
$redirect_url = $base_root . drupal_current_script_url(array('op' => 'results')); $output = update_batch($request->request->get('start'), $redirect_url, $batch_url); break; } case 'info': $regions['sidebar_first'] = update_task_list('info'); $output = update_info_page(); break; case 'results': $regions['sidebar_first'] = update_task_list(); $output = update_results_page(); break; // Regular batch ops : defer to batch processing API. // Regular batch ops : defer to batch processing API. default: $regions['sidebar_first'] = update_task_list('run'); $output = _batch_page($request); break; } } else { $output = update_access_denied_page(); } if (isset($output) && $output) { // Explicitly start a session so that the update.php token will be accepted. \Drupal::service('session_manager')->start(); // We defer the display of messages until all updates are done. $progress_page = ($batch = batch_get()) && isset($batch['running']); if ($output instanceof Response) { $output->send(); } else { drupal_add_http_header('Content-Type', 'text/html; charset=utf-8');