/** * * @param object $glossary * @param string $ignored invalid parameter * @param int|string $hook * @return string */ function glossary_generate_export_file($glossary, $ignored = "", $hook = 0) { global $CFG, $DB; $co = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; $co .= glossary_start_tag("GLOSSARY",0,true); $co .= glossary_start_tag("INFO",1,true); $co .= glossary_full_tag("NAME",2,false,$glossary->name); $co .= glossary_full_tag("INTRO",2,false,$glossary->intro); $co .= glossary_full_tag("INTROFORMAT",2,false,$glossary->introformat); $co .= glossary_full_tag("ALLOWDUPLICATEDENTRIES",2,false,$glossary->allowduplicatedentries); $co .= glossary_full_tag("DISPLAYFORMAT",2,false,$glossary->displayformat); $co .= glossary_full_tag("SHOWSPECIAL",2,false,$glossary->showspecial); $co .= glossary_full_tag("SHOWALPHABET",2,false,$glossary->showalphabet); $co .= glossary_full_tag("SHOWALL",2,false,$glossary->showall); $co .= glossary_full_tag("ALLOWCOMMENTS",2,false,$glossary->allowcomments); $co .= glossary_full_tag("USEDYNALINK",2,false,$glossary->usedynalink); $co .= glossary_full_tag("DEFAULTAPPROVAL",2,false,$glossary->defaultapproval); $co .= glossary_full_tag("GLOBALGLOSSARY",2,false,$glossary->globalglossary); $co .= glossary_full_tag("ENTBYPAGE",2,false,$glossary->entbypage); if ( $entries = $DB->get_records("glossary_entries", array("glossaryid"=>$glossary->id))) { $co .= glossary_start_tag("ENTRIES",2,true); foreach ($entries as $entry) { $permissiongranted = 1; if ( $hook ) { switch ( $hook ) { case "ALL": case "SPECIAL": break; default: $permissiongranted = ($entry->concept[ strlen($hook)-1 ] == $hook); break; } } if ( $hook ) { switch ( $hook ) { case GLOSSARY_SHOW_ALL_CATEGORIES: break; case GLOSSARY_SHOW_NOT_CATEGORISED: $permissiongranted = !$DB->record_exists("glossary_entries_categories", array("entryid"=>$entry->id)); break; default: $permissiongranted = $DB->record_exists("glossary_entries_categories", array("entryid"=>$entry->id, "categoryid"=>$hook)); break; } } if ( $entry->approved and $permissiongranted ) { $co .= glossary_start_tag("ENTRY",3,true); $co .= glossary_full_tag("CONCEPT",4,false,trim($entry->concept)); $co .= glossary_full_tag("DEFINITION",4,false,$entry->definition); $co .= glossary_full_tag("FORMAT",4,false,$entry->definitionformat); // note: use old name for BC reasons $co .= glossary_full_tag("USEDYNALINK",4,false,$entry->usedynalink); $co .= glossary_full_tag("CASESENSITIVE",4,false,$entry->casesensitive); $co .= glossary_full_tag("FULLMATCH",4,false,$entry->fullmatch); $co .= glossary_full_tag("TEACHERENTRY",4,false,$entry->teacherentry); if ( $aliases = $DB->get_records("glossary_alias", array("entryid"=>$entry->id))) { $co .= glossary_start_tag("ALIASES",4,true); foreach ($aliases as $alias) { $co .= glossary_start_tag("ALIAS",5,true); $co .= glossary_full_tag("NAME",6,false,trim($alias->alias)); $co .= glossary_end_tag("ALIAS",5,true); } $co .= glossary_end_tag("ALIASES",4,true); } if ( $catentries = $DB->get_records("glossary_entries_categories", array("entryid"=>$entry->id))) { $co .= glossary_start_tag("CATEGORIES",4,true); foreach ($catentries as $catentry) { $category = $DB->get_record("glossary_categories", array("id"=>$catentry->categoryid)); $co .= glossary_start_tag("CATEGORY",5,true); $co .= glossary_full_tag("NAME",6,false,$category->name); $co .= glossary_full_tag("USEDYNALINK",6,false,$category->usedynalink); $co .= glossary_end_tag("CATEGORY",5,true); } $co .= glossary_end_tag("CATEGORIES",4,true); } $co .= glossary_end_tag("ENTRY",3,true); } } $co .= glossary_end_tag("ENTRIES",2,true); } $co .= glossary_end_tag("INFO",1,true); $co .= glossary_end_tag("GLOSSARY",0,true); return $co; }
/** * Prepares file area to export as part of XML export * * @param string $tag XML tag to use for the group * @param int $taglevel * @param int $contextid * @param string $filearea * @param int $itemid * @return string */ function glossary_xml_export_files($tag, $taglevel, $contextid, $filearea, $itemid) { $co = ''; $fs = get_file_storage(); if ($files = $fs->get_area_files($contextid, 'mod_glossary', $filearea, $itemid, 'itemid,filepath,filename', false)) { $co .= glossary_start_tag($tag, $taglevel, true); foreach ($files as $file) { $co .= glossary_start_tag('FILE', $taglevel + 1, true); $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_end_tag('FILE', $taglevel + 1); } $co .= glossary_end_tag($tag, $taglevel); } return $co; }