Seditio Source
Root |
./othercms/dotclear-2.22/plugins/maintenance/_services.php
<?php
/**
 * @brief maintenance, a plugin for Dotclear 2
 *
 * @package Dotclear
 * @subpackage Plugins
 *
 * @copyright Olivier Meunier & Association Dotclear
 * @copyright GPL-2.0-only
 */
if (!defined('DC_CONTEXT_ADMIN')) {
    return;
}

/**
@ingroup PLUGIN_MAINTENANCE
@nosubgrouping
@brief Maintenance plugin rest service class.

Serve maintenance methods via Dotclear's rest API
 */
class dcMaintenanceRest
{
   
/**
     * Serve method to do step by step task for maintenance.
     *
     * @param      dcCore     $core   dcCore instance
     * @param      array      $get    cleaned $_GET
     * @param      array      $post   cleaned $_POST
     *
     * @throws     Exception  (description)
     *
     * @return     xmlTag     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('Unknown 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;
    }
}