Skip to content
Permalink
Browse files

MDL-15777 - whole database module export rejigged to use files api.

disabled ods and excel export for now until those libraries work with files api.
reverted a previous patch I had in this area.
  • Loading branch information...
mjollnir_
mjollnir_ committed Aug 11, 2008
1 parent 513e0be commit 1bf8c6b2cb034712bd151fdfbc925dcf4ad3b4fa
Showing with 22 additions and 34 deletions.
  1. +1 −0 lang/en_utf8/data.php
  2. +0 −1 lang/en_utf8/portfolio.php
  3. +1 −0 mod/data/export.php
  4. +2 −2 mod/data/export_form.php
  5. +18 −31 mod/data/lib.php
@@ -210,6 +210,7 @@
$string['participants'] = 'Participants';
$string['picture'] = 'Picture';
$string['pleaseaddsome'] = 'Please create some below or <a href=\"$a\">choose a predefined set</a> to get started.';
$string['portfolionotfile'] = 'Export to a portfolio rather than a file (csv only)';
$string['presetinfo'] = 'Saving as a preset will publish this template. Other users may be able to use it in their databases.';
$string['presets'] = 'Presets';
$string['radiobutton'] = 'Radio buttons';
@@ -44,7 +44,6 @@
$string['notexportable'] = 'Sorry, but the type of content you are trying to export is not exportable';
$string['nouploaddirectory'] = 'Could not create a temporary directory to package your data into';
$string['portfolio'] = 'Portfolio';
$string['portfolionotfile'] = 'Export to a portfolio rather than a file';
$string['portfolios'] = 'Portfolios';
$string['plugin'] = 'Portfolio Plugin';
$string['plugincouldnotpackage'] = 'Failed to package up your data for export';
@@ -74,6 +74,7 @@
if (array_key_exists('portfolio', $formdata) && !empty($formdata['portfolio'])) {
// fake portfolio callback stuff and redirect
$formdata['id'] = $cm->id;
$formdata['exporttype'] = 'csv'; // force for now
$url = portfolio_fake_add_url($formdata['portfolio'], 'data_portfolio_caller', '/mod/data/lib.php', $formdata);
redirect($url);
}
@@ -53,12 +53,12 @@ function definition() {
}
$this->add_checkbox_controller(1, null, null, 1);
require_once($CFG->libdir . '/portfoliolib.php');
if (false) { // @todo penny replace with permissions check
if (true) { // @todo penny replace with permissions check
if ($portfoliooptions = portfolio_instance_select(
portfolio_instances(),
call_user_func(array('data_portfolio_caller', 'supported_formats')),
'data_portfolio_caller', '', true, true)) {
$mform->addElement('header', 'notice', get_string('portfolionotfile', 'portfolio') . ':');
$mform->addElement('header', 'notice', get_string('portfolionotfile', 'data') . ':');
$portfoliooptions[0] = get_string('none');
ksort($portfoliooptions);
$mform->addElement('select', 'portfolio', get_string('portfolio', 'portfolio'), $portfoliooptions);
@@ -2281,7 +2281,7 @@ function data_supports($feature) {
default: return null;
}
}
function data_export_csv($export, $delimiter_name, $dataname, $count, $todir=false) {
function data_export_csv($export, $delimiter_name, $dataname, $count, $return=false) {
global $CFG;
require_once($CFG->libdir . '/csvlib.class.php');
$delimiter = csv_import_reader::get_delimiter($delimiter_name);
@@ -2292,7 +2292,7 @@ function data_export_csv($export, $delimiter_name, $dataname, $count, $todir=fal
$filename .= clean_filename('-' . gmdate("Ymd_Hi"));
$filename .= clean_filename("-${delimiter_name}_separated");
$filename .= '.csv';
if (!$todir) {
if (empty($return)) {
header("Content-Type: application/download\n");
header("Content-Disposition: attachment; filename=$filename");
header('Expires: 0');
@@ -2307,22 +2307,15 @@ function data_export_csv($export, $delimiter_name, $dataname, $count, $todir=fal
}
$returnstr .= implode($delimiter, $row) . "\n";
}
if (empty($todir)) {
if (empty($return)) {
echo $returnstr;
return;
}
// @todo - convert to files api.
$status = ($handle = fopen($todir . '/' . $filename, 'w'));
$status = $status && fwrite($handle, $returnstr);
$status = $status && fclose($handle);
if ($status) {
return $filename;
}
return false;
return $returnstr;
}
function data_export_xls($export, $dataname, $count, $todir=false) {
function data_export_xls($export, $dataname, $count) {
global $CFG;
require_once("$CFG->libdir/excellib.class.php");
$filename = clean_filename("${dataname}-${count}_record");
@@ -2333,13 +2326,8 @@ function data_export_xls($export, $dataname, $count, $todir=false) {
$filename .= '.xls';
$filearg = '-';
if ($todir) {
$filearg = $todir . '/' . $filename;
}
$workbook = new MoodleExcelWorkbook($filearg);
if (!$todir) {
$workbook->send($filename);
}
$workbook->send($filename);
$worksheet = array();
$worksheet[0] =& $workbook->add_worksheet('');
$rowno = 0;
@@ -2356,7 +2344,7 @@ function data_export_xls($export, $dataname, $count, $todir=false) {
}
function data_export_ods($export, $dataname, $count, $todir=false) {
function data_export_ods($export, $dataname, $count) {
global $CFG;
require_once("$CFG->libdir/odslib.class.php");
$filename = clean_filename("${dataname}-${count}_record");
@@ -2366,13 +2354,8 @@ function data_export_ods($export, $dataname, $count, $todir=false) {
$filename .= clean_filename('-' . gmdate("Ymd_Hi"));
$filename .= '.ods';
$filearg = '-';
if ($todir) {
$filearg = $todir . '/' . $filename;
}
$workbook = new MoodleODSWorkbook($filearg, (empty($todir)));
if (!$todir) {
$workbook->send($filename);
}
$workbook = new MoodleODSWorkbook($filearg);
$workbook->send($filename);
$worksheet = array();
$worksheet[0] =& $workbook->add_worksheet('');
$rowno = 0;
@@ -2475,19 +2458,23 @@ public function get_sha1() {
public function prepare_package() {
global $DB;
$count = count($this->exportdata);
$content = '';
$filename = '';
switch ($this->exporttype) {
case 'csv':
$return = data_export_csv($this->exportdata, $this->delimiter, $this->cm->name, $count, $tempdir);
$content = data_export_csv($this->exportdata, $this->delimiter, $this->cm->name, $count, true);
$filename = clean_filename($this->cm->name . '.csv');
break;
case 'xls':
$return = data_export_xls($this->exportdata, $this->cm->name, $count, $tempdir);
portfolio_exporter::raise_error('notimplemented', 'portfolio');
$content = data_export_xls($this->exportdata, $this->cm->name, $count, true);
break;
case 'ods':
$return = data_export_ods($this->exportdata, $this->cm->name, $count, $tempdir);
portfolio_exporter::raise_error('notimplemented', 'portfolio');
$content = data_export_ods($this->exportdata, $this->cm->name, $count, true);
break;
}
return $return;
return $this->exporter->write_new_file($content, $filename);
}
public function check_permissions() {

0 comments on commit 1bf8c6b

Please sign in to comment.
You can’t perform that action at this time.