Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
// This file is part of Moodle - http://moodle.org/
3
//
4
// Moodle is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// Moodle is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
 
17
/**
18
 * @package    tool_xmldb
19
 * @copyright  2003 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
20
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
21
 */
22
 
23
/**
24
 * This class will will check all the db directories existing under the
25
 * current Moodle installation, sending them to the SESSION->dbdirs array
26
 *
27
 * @package    tool_xmldb
28
 * @copyright  2003 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
29
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
30
 */
31
class get_db_directories extends XMLDBAction {
32
 
33
    /**
34
     * Init method, every subclass will have its own
35
     */
36
    function init() {
37
        parent::init();
38
        // Set own core attributes
39
        $this->can_subaction = ACTION_NONE;
40
        //$this->can_subaction = ACTION_HAVE_SUBACTIONS;
41
 
42
        // Set own custom attributes
43
        $this->sesskey_protected = false; // This action doesn't need sesskey protection
44
 
45
        // Get needed strings
46
        $this->loadStrings(array(
47
            // 'key' => 'module',
48
        ));
49
    }
50
 
51
    /**
52
     * Invoke method, every class will have its own
53
     * returns true/false on completion, setting both
54
     * errormsg and output as necessary
55
     */
56
    function invoke() {
57
        parent::invoke();
58
 
59
        $result = true;
60
 
61
        // Set own core attributes
62
        $this->does_generate = ACTION_NONE;
63
        //$this->does_generate = ACTION_GENERATE_HTML;
64
 
65
        // These are always here
66
        global $CFG, $XMLDB;
67
 
68
        // Do the job, setting $result as needed
69
 
70
        // Lets go to add all the db directories available inside Moodle
71
        // Create the array if it doesn't exists
72
        if (!isset($XMLDB->dbdirs)) {
73
            $XMLDB->dbdirs = array();
74
        }
75
 
76
        // get list of all dirs and create objects with status
77
        $db_directories = get_db_directories();
78
        foreach ($db_directories as $path) {
79
            $dbdir = new stdClass;
80
            $dbdir->path = $path;
81
            if (!isset($XMLDB->dbdirs[$dbdir->path])) {
82
                $XMLDB->dbdirs[$dbdir->path] = $dbdir;
83
             }
84
            $XMLDB->dbdirs[$dbdir->path]->path_exists = file_exists($dbdir->path);  //Update status
85
         }
86
 
87
        // Sort by key
88
        ksort($XMLDB->dbdirs);
89
 
90
        // Return ok if arrived here
91
        return true;
92
    }
93
}
94