/** * Parses files from XML import and inserts them into file system * * @param array $xmlparent parent element in parsed XML tree * @param string $tag * @param int $contextid * @param string $filearea * @param int $itemid * @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(); $files = $xmlparent[$tag][0]['#']['FILE']; foreach ($files as $file) { $filerecord = array( 'contextid' => $contextid, 'component' => 'mod_glossary', 'filearea' => $filearea, '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++; } } return $count; }