MDL-29029 move dbtransfer to admin tools
[moodle.git] / admin / tool / dbtransfer / database_transfer_form.php
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/>.
17 /**
18  * Transfer form
19  *
20  * @package    tool
21  * @subpackage dbtransfer
22  * @copyright  2008 Petr Skoda
23  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24  */
26 defined('MOODLE_INTERNAL') || die;
28 require_once $CFG->libdir.'/formslib.php';
30 class database_transfer_form extends moodleform {
32     function definition() {
33         $mform = $this->_form;
35         $mform->addElement('header', 'database', get_string('dbtransfer', 'tool_dbtransfer'));
37         $supported = array (
38             'mysqli/native',
39             'pgsql/native',
40             'mssql/native',
41             'oci/native',
42             'sqlite3/pdo',
43         );
44         $drivers = array();
45         foreach($supported as $driver) {
46             list($dbtype, $dblibrary) = explode('/', $driver);
47             $targetdb = moodle_database::get_driver_instance($dbtype, $dblibrary);
48             if ($targetdb->driver_installed() !== true) {
49                 continue;
50             }
51             $drivers[$driver] = $driver;
52         }
54         $mform->addElement('select', 'driver', get_string('dbtype', 'install'), $drivers);
55         $mform->addElement('text', 'dbhost', get_string('dbhost', 'install'));
56         $mform->addElement('text', 'dbname', get_string('database', 'install'));
57         $mform->addElement('text', 'dbuser', get_string('user'));
58         $mform->addElement('text', 'dbpass', get_string('password'));
59         $mform->addElement('text', 'prefix', get_string('dbprefix', 'install'));
61         $mform->addRule('dbhost', get_string('required'), 'required', null);
62         $mform->addRule('dbname', get_string('required'), 'required', null);
63         $mform->addRule('dbuser', get_string('required'), 'required', null);
64         $mform->addRule('dbpass', get_string('required'), 'required', null);
65         $mform->addRule('prefix', get_string('required'), 'required', null);
67         $this->add_action_buttons(false, get_string('transferdata', 'tool_dbtransfer'));
68     }
69 }