From 79da2c5bfae6fdff53d65dba88db6226a7d5e42d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franziska=20H=C3=BCbler?= Date: Wed, 31 Aug 2016 13:02:22 +0200 Subject: [PATCH] MDL-55809 glossary: Keep file author and license across import/export --- mod/glossary/lib.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php index 6a632d0e9a2..4483ea47342 100644 --- a/mod/glossary/lib.php +++ b/mod/glossary/lib.php @@ -2480,6 +2480,8 @@ function glossary_xml_export_files($tag, $taglevel, $contextid, $filearea, $item $co .= glossary_full_tag('FILENAME', $taglevel + 2, false, $file->get_filename()); $co .= glossary_full_tag('FILEPATH', $taglevel + 2, false, $file->get_filepath()); $co .= glossary_full_tag('CONTENTS', $taglevel + 2, false, base64_encode($file->get_content())); + $co .= glossary_full_tag('FILEAUTHOR', $taglevel + 2, false, $file->get_author()); + $co .= glossary_full_tag('FILELICENSE', $taglevel + 2, false, $file->get_license()); $co .= glossary_end_tag('FILE', $taglevel + 1); } $co .= glossary_end_tag($tag, $taglevel); @@ -2498,6 +2500,7 @@ function glossary_xml_export_files($tag, $taglevel, $contextid, $filearea, $item * @return int */ function glossary_xml_import_files($xmlparent, $tag, $contextid, $filearea, $itemid) { + global $USER, $CFG; $count = 0; if (isset($xmlparent[$tag][0]['#']['FILE'])) { $fs = get_file_storage(); @@ -2510,7 +2513,18 @@ function glossary_xml_import_files($xmlparent, $tag, $contextid, $filearea, $ite 'itemid' => $itemid, 'filepath' => $file['#']['FILEPATH'][0]['#'], 'filename' => $file['#']['FILENAME'][0]['#'], + 'userid' => $USER->id ); + if (array_key_exists('FILEAUTHOR', $file['#'])) { + $filerecord['author'] = $file['#']['FILEAUTHOR'][0]['#']; + } + if (array_key_exists('FILELICENSE', $file['#'])) { + $license = $file['#']['FILELICENSE'][0]['#']; + require_once($CFG->libdir . "/licenselib.php"); + if (license_manager::get_license_by_shortname($license)) { + $filerecord['license'] = $license; + } + } $content = $file['#']['CONTENTS'][0]['#']; $fs->create_file_from_string($filerecord, base64_decode($content)); $count++;