mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
29a541724f
This has been generated running the following Sniff, part of the Moodle's CodeSniffer standard: - PSR2.Methods.MethodDeclaration It just ensures all the function declarations have the correct order for: - abstract and final. - visibility (public, protected, private). - static. So, all the lines modified by this commit are function declarations and the only changes are in the positions of those keywords.
99 lines
3.6 KiB
PHP
99 lines
3.6 KiB
PHP
<?php
|
|
// This file is part of Moodle - http://moodle.org/
|
|
//
|
|
// Moodle is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Moodle is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
/**
|
|
* XML format exporter class
|
|
*
|
|
* @package core_dtl
|
|
* @copyright 2008 Andrei Bautu
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
defined('MOODLE_INTERNAL') || die();
|
|
|
|
/**
|
|
* XML format exporter class.
|
|
* Provides logic for writing XML tags and data inside appropriate callbacks.
|
|
* Subclasses should define XML data sinks.
|
|
*/
|
|
abstract class xml_database_exporter extends database_exporter {
|
|
/**
|
|
* Generic output method. Subclasses should implement it with code specific
|
|
* to the target XML sink.
|
|
*/
|
|
abstract protected function output($text);
|
|
|
|
/**
|
|
* Callback function. Outputs open XML PI and moodle_database opening tag.
|
|
*
|
|
* @param float $version the version of the system which generating the data
|
|
* @param string $release moodle release info
|
|
* @param string $timestamp the timestamp of the data (in ISO 8601) format.
|
|
* @param string $description a user description of the data.
|
|
* @return void
|
|
*/
|
|
public function begin_database_export($version, $release, $timestamp, $description) {
|
|
$this->output('<?xml version="1.0" encoding="utf-8"?>');
|
|
//TODO add xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" and schema information
|
|
$this->output('<moodle_database version="'.$version.'" release="'.$release.'" timestamp="'.$timestamp.'"'.(empty ($description) ? '' : ' comment="'.htmlspecialchars($description, ENT_QUOTES, 'UTF-8').'"').'>');
|
|
}
|
|
|
|
/**
|
|
* Callback function. Outputs table opening tag.
|
|
*
|
|
* @param xmldb_table $table - XMLDB object for the exported table
|
|
* @return void
|
|
*/
|
|
public function begin_table_export(xmldb_table $table) {
|
|
$this->output('<table name="'.$table->getName().'" schemaHash="'.$table->getHash().'">');
|
|
}
|
|
|
|
/**
|
|
* Callback function. Outputs table closing tag.
|
|
*
|
|
* @param xmldb_table $table - XMLDB object for the exported table
|
|
*/
|
|
public function finish_table_export(xmldb_table $table) {
|
|
$this->output('</table>');
|
|
}
|
|
|
|
/**
|
|
* Callback function. Outputs moodle_database closing tag.
|
|
*/
|
|
public function finish_database_export() {
|
|
$this->output('</moodle_database>');
|
|
}
|
|
|
|
/**
|
|
* Callback function. Outputs record tag with field subtags and data.
|
|
*
|
|
* @param xmldb_table $table - XMLDB object of the table from which data was retrieved
|
|
* @param object $data - data object (fields and values from record)
|
|
* @return void
|
|
*/
|
|
public function export_table_data(xmldb_table $table, $data) {
|
|
$this->output('<record>');
|
|
foreach ($data as $key => $value) {
|
|
if (is_null($value)) {
|
|
$this->output('<field name="'.$key.'" value="null" />');
|
|
} else {
|
|
$this->output('<field name="'.$key.'">'.htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8').'</field>');
|
|
}
|
|
}
|
|
$this->output('</record>');
|
|
}
|
|
}
|