Exemple #1
0
 /**
  * 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;
 }
Exemple #2
0
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;
            }