99 lines
3.8 KiB
PHP
99 lines
3.8 KiB
PHP
<?php // $Id$
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// NOTICE OF COPYRIGHT //
|
|
// //
|
|
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
|
|
// http://moodle.com //
|
|
// //
|
|
// Copyright (C) 2001-3001 Martin Dougiamas http://dougiamas.com //
|
|
// (C) 2001-3001 Eloy Lafuente (stronk7) http://contiento.com //
|
|
// //
|
|
// This program 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 2 of the License, or //
|
|
// (at your option) any later version. //
|
|
// //
|
|
// This program 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: //
|
|
// //
|
|
// http://www.gnu.org/copyleft/gpl.html //
|
|
// //
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
/// This class will load every XML file to memory if necessary
|
|
|
|
class load_xml_files extends XMLDBAction {
|
|
|
|
/**
|
|
* Init method, every subclass will have its own
|
|
*/
|
|
function init() {
|
|
parent::init();
|
|
/// Set own core attributes
|
|
$this->can_subaction = ACTION_NONE;
|
|
//$this->can_subaction = ACTION_HAVE_SUBACTIONS;
|
|
|
|
/// Set own custom attributes
|
|
|
|
/// Get needed strings
|
|
$this->loadStrings(array(
|
|
/// 'key' => 'module',
|
|
));
|
|
}
|
|
|
|
/**
|
|
* Invoke method, every class will have its own
|
|
* returns true/false on completion, setting both
|
|
* errormsg and output as necessary
|
|
*/
|
|
function invoke() {
|
|
parent::invoke();
|
|
|
|
$result = true;
|
|
|
|
/// Set own core attributes
|
|
$this->does_generate = ACTION_NONE;
|
|
//$this->does_generate = ACTION_GENERATE_HTML;
|
|
|
|
/// These are always here
|
|
global $CFG, $XMLDB;
|
|
|
|
/// Do the job, setting $result as needed
|
|
|
|
/// Iterate over $XMLDB->dbdirs, loading their XML data to memory
|
|
if ($XMLDB->dbdirs) {
|
|
$dbdirs =& $XMLDB->dbdirs;
|
|
foreach ($dbdirs as $dbdir) {
|
|
/// Set some defaults
|
|
$dbdir->xml_exists = false;
|
|
$dbdir->xml_writeable = false;
|
|
$dbdir->xml_loaded = false;
|
|
///Only if the directory exists
|
|
if (!$dbdir->path_exists) {
|
|
continue;
|
|
}
|
|
$xmldb_file = new XMLDBFile($dbdir->path . '/install.xml');
|
|
/// Set dbdir as necessary
|
|
if ($xmldb_file->fileExists()) {
|
|
$dbdir->xml_exists = true;
|
|
}
|
|
if ($xmldb_file->fileWriteable()) {
|
|
$dbdir->xml_writeable = true;
|
|
}
|
|
/// Load the XML contents to structure
|
|
$loaded = $xmldb_file->loadXMLStructure();
|
|
if ($loaded && $xmldb_file->isLoaded()) {
|
|
$dbdir->xml_loaded = true;
|
|
}
|
|
$dbdir->xml_file = $xmldb_file;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
}
|
|
?>
|