/** * 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 (!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()); http::redirect($p_url . '&task=' . $task->id() . '&tab=' . $tab . '#' . $tab); } } catch (Exception $e) { $core->error->add($e->getMessage()); } } // Save settings if (!empty($_POST['save_settings'])) { try { $core->blog->settings->maintenance->put('plugin_message', !empty($_POST['settings_plugin_message']), 'boolean', 'Display alert message of late tasks on plugin page', true, true); foreach ($tasks as $t) { if (!$t->id()) { continue; }