/** * Serve method to do step by step task for maintenance. * * @param core <b>dcCore</b> dcCore instance * @param get <b>array</b> cleaned $_GET * @param post <b>array</b> cleaned $_POST * * @return <b>xmlTag</b> XML representation of response */ public static function step($core, $get, $post) { if (!isset($post['task'])) { throw new Exception('No task ID'); } if (!isset($post['code'])) { throw new Exception('No code ID'); } $maintenance = new dcMaintenance($core); if (($task = $maintenance->getTask($post['task'])) === null) { throw new Exception('Unknow task ID'); } $task->code((int) $post['code']); if (($code = $task->execute()) === true) { $maintenance->setLog($task->id()); $code = 0; } $rsp = new xmlTag('step'); $rsp->code = $code; $rsp->title = html::escapeHTML($task->success()); return $rsp; }
if (!defined('DC_CONTEXT_ADMIN')) { return; } // Set env $core->blog->settings->addNamespace('maintenance'); $maintenance = new dcMaintenance($core); $tasks = $maintenance->getTasks(); $headers = ''; $p_url = $core->adminurl->get('admin.plugin.maintenance'); $task = null; $expired = array(); $code = empty($_POST['code']) ? null : (int) $_POST['code']; $tab = empty($_REQUEST['tab']) ? '' : $_REQUEST['tab']; // Get task object if (!empty($_REQUEST['task'])) { $task = $maintenance->getTask($_REQUEST['task']); if ($task === null) { $core->error->add('Unknow task ID'); } $task->code($code); } // Execute task if ($task && !empty($_POST['task']) && $task->id() == $_POST['task']) { try { $code = $task->execute(); if (false === $code) { throw new Exception($task->error()); } if (true === $code) { $maintenance->setLog($task->id()); dcPage::addSuccessNotice($task->success());