| Server IP : 165.22.154.248 / Your IP : 216.73.217.0 [ Web Server : Apache/2.4.29 (Ubuntu) System : Linux droplet-integra 4.15.0-197-generic #208-Ubuntu SMP Tue Nov 1 17:23:37 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 7.2.24-0ubuntu0.18.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/avanza-lms.old.bak9874115/report/customsql/ |
Upload File : |
<?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/>.
/**
* Script to download the CSV version of a SQL report.
*
* @package report_customsql
* @copyright 2009 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once(dirname(__FILE__) . '/../../config.php');
require_once(dirname(__FILE__) . '/locallib.php');
require_once($CFG->libdir . '/filelib.php');
require_once($CFG->libdir . '/dataformatlib.php');
$id = required_param('id', PARAM_INT);
$csvtimestamp = required_param('timestamp', PARAM_INT);
$dataformat = optional_param('dataformat', '', PARAM_ALPHA);
$report = $DB->get_record('report_customsql_queries', array('id' => $id));
if (!$report) {
print_error('invalidreportid', 'report_customsql', report_customsql_url('index.php'), $id);
}
require_login();
$context = context_system::instance();
if (!empty($report->capability)) {
require_capability($report->capability, $context);
}
list($csvfilename) = report_customsql_csv_filename($report, $csvtimestamp);
$handle = fopen($csvfilename, 'r');
if ($handle === false) {
print_error('unknowndownloadfile', 'report_customsql',
report_customsql_url('view.php?id=' . $id));
}
$fields = fgetcsv($handle);
$rows = new ArrayObject([]);
while ($row = fgetcsv($handle)) {
$rows->append($row);
}
fclose($handle);
$filename = clean_filename($report->displayname);
download_as_dataformat($filename, $dataformat, $fields, $rows->getIterator(), function(array $row) use ($dataformat) {
// HTML export content will need escaping.
if (strcasecmp($dataformat, 'html') === 0) {
$row = array_map(function($cell) {
return s($cell);
}, $row);
}
return $row;
});