芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/.trash/cepali/backup/util/ui/base_ui_stage.class.php
. /** * Backup user interface stages * * This file contains the classes required to manage the stages that make up the * backup user interface. * These will be primarily operated a {@link base_ui} instance. * * @package core_backup * @copyright 2010 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ /** * Abstract stage class * * This class should be extended by all backup stages (a requirement of many backup ui functions). * Each stage must then define two abstract methods * - process : To process the stage * - initialise_stage_form : To get a backup_moodleform instance for the stage * * @package core_backup * @copyright 2010 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ abstract class base_ui_stage { /** * The current stage * @var int */ protected $stage = 1; /** * The backuck UI object * @var base_ui */ protected $ui; /** * The moodleform for this stage * @var base_moodleform */ protected $stageform = null; /** * Custom form params that will be added as hidden inputs * @var array */ protected $params = null; /** * Constructor * * @param base_ui $ui * @param array $params */ public function __construct(base_ui $ui, array $params = null) { $this->ui = $ui; $this->params = $params; } /** * Returns the custom params for this stage * @return array|null */ final public function get_params() { return $this->params; } /** * The current stage * @return int */ final public function get_stage() { return $this->stage; } /** * The next stage * @return int */ public function get_next_stage() { return floor($this->stage * 2); } /** * The previous stage * @return int */ final public function get_prev_stage() { return floor($this->stage / 2); } /** * The name of this stage * @return string */ public function get_name() { return get_string('currentstage' . $this->stage, 'backup'); } /** * The backup id from the backup controller * @return string */ final public function get_uniqueid() { return $this->ui->get_uniqueid(); } /** * Displays the stage. * * By default this involves instantiating the form for the stage and the calling * it to display. * * @param core_backup_renderer $renderer * @return string HTML code to echo */ public function display(core_backup_renderer $renderer) { $form = $this->initialise_stage_form(); // A nasty hack follows to work around the sad fact that moodle quickforms // do not allow to actually return the HTML content, just to echo it. flush(); ob_start(); $form->display(); $output = ob_get_contents(); ob_end_clean(); return $output; } /** * Processes the stage. * * This must be overridden by every stage as it will be different for every stage * * @abstract * @param base_moodleform $form */ abstract public function process(base_moodleform $form = null); /** * Creates an instance of the correct moodleform properly populated and all * dependencies instantiated * * @abstract * @return backup_moodleform */ abstract protected function initialise_stage_form(); /** * Returns the base UI class * @return base_ui */ final public function get_ui() { return $this->ui; } /** * Returns true if this stage is the first stage. * @return bool */ public function is_first_stage() { return $this->stage == 1; } }