- Basic export/import functionality.. Does not export nor import the attached files.

This commit is contained in:
willcast
2003-11-04 03:54:01 +00:00
parent 2b23eea312
commit 748b1932aa
6 changed files with 479 additions and 39 deletions
+19
View File
@@ -17,6 +17,10 @@ $string['attachment'] = "Attachment";
$string['back'] = "Back";
$string['casesensitive'] = "This entry is case sensitive";
$string['categories'] = "Categories";
$string['importedcategories'] = "Imported categories";
$string['cantinsertcat'] = "Can't insert category'";
$string['cantinsertrec'] = "Can't insert record'";
$string['cantinsertrel'] = "Can't insert relation category-entry'";
$string['categoryview'] = "Browse by category";
$string['category'] = "Category";
$string['categorydeleted'] = "Category deleted";
@@ -35,6 +39,7 @@ $string['cnfcasesensitive'] = "Define if an entry, when linked, is case sensitiv
$string['cnffullmatch'] = "Define if an entry, when linked, should match the case in the target text by default";
$string['concept'] = "Concept";
$string['concepts'] = "Concepts";
$string['currentglossary'] = "Current glosssary";
$string['dateview'] = "Browse by date";
$string['deletingcomment'] = "Deleting comment";
$string['defaultapproval'] = "Default approval status";
@@ -43,6 +48,7 @@ $string['definitions'] = "Definitions";
$string['deleteentry'] = "Delete entry";
$string['deletingnoneemptycategory'] = "Deleting this category will not delete the entries it contains - they will be marked as uncategorised.";
$string['descending'] = "(descending)";
$string['destination'] = "Destination";
$string['displayformat'] = "Display format";
$string['displayformatdefault'] = "Simple, dictionary style";
$string['displayformatcontinuous'] = "Continuous without author";
@@ -50,11 +56,13 @@ $string['displayformat2'] = "Full with author";
$string['displayformat3'] = "Encyclopedia";
$string['displayformat4'] = "FAQ";
$string['displayformat5'] = "Full without author";
$string['duplicateentry'] = "Duplicate entry";
$string['editcategories'] = "Edit categories";
$string['editalias'] = "Edit alias";
$string['editentry'] = "Edit entry";
$string['editingcomment'] = "Editing comment";
$string['entries'] = "Entries";
$string['importedentries'] = "Imported entries";
$string['entrieswithoutcategory'] = "Entries without category";
$string['entry'] = "Entry";
$string['entryalreadyexist'] = "Entry already exists";
@@ -63,30 +71,40 @@ $string['entrydeleted'] = "Entry deleted";
$string['entryishidden'] = "(this entry is currently hidden)";
$string['entryusedynalink'] = "This entry should be automatically linked";
$string['entryexported'] = "Entry succesfully exported";
$string['rejectionrpt'] = "Rejection Report";
$string['explainspecial'] = "Shows entries that do not begin with a letter";
$string['explainalphabet'] = "Browse the glossary using this index";
$string['explainall'] = "Shows ALL entries on one page";
$string['explainaddentry'] = "Add a new entry to the current glossary.<br>Concept and definition are mandatory fields.";
$string['explainimport'] = "You must specify the file to import and define the criteria of the process.<p>Submit your request and review the results.";
$string['explainexport'] = "A file has been generated.<br>Download it and keep it safe. You can import it anytime you wish in this or other course.";
$string['exportedentry'] = "Exported entry";
$string['exportedfile'] = "Exported file";
$string['exportglossary'] = "Export glossary";
$string['exporttomainglossary'] = "Export to main glossary";
$string['filetoimport'] = "File to import";
$string['fillfields'] = "Concept and definition are mandatory fields.";
$string['fullmatch'] = "Match whole words only<br><small>(when automatically linked)</small>";
$string['glossarytype'] = "Glossary Type";
$string['glosssaryexported'] = "Glossary exported.";
$string['importcategories'] = "Import categories";
$string['isglobal'] = "Is this glossary global?";
$string['mainglossary'] = "Main glossary";
$string['modulename'] = "Glossary";
$string['modulenameplural'] = "Glossaries";
$string['maxtimehaspassed'] = "Sorry, but the maximum time for editing this comment (\$a) has passed!";
$string['newglossary'] = "New glossary";
$string['newglossaryentries'] = "New glossary entries:";
$string['newglossarycreated'] = "New glossary created.";
$string['notcategorised'] = "Not categorised";
$string['nocomment'] = "No comment found";
$string['noconceptfound'] = "No concept or definition found.";
$string['nocomments'] = "(No comments found on this entry)";
$string['noentries'] = "No entries found in this section";
$string['noentry'] = "No entry found.";
$string['printerfriendly'] = "Printer-friendly version";
$string['question'] = "Question";
$string['rejectedentries'] = "Rejected entries";
$string['searchindefinition'] = "Search full text";
$string['secondaryglossary'] = "Secondary glossary";
$string['showspecial'] = "Show 'Special' link";
@@ -98,6 +116,7 @@ $string['sortbycreation'] = "By creation date";
$string['sortbylastupdate'] = "By last update";
$string['standardview'] = "Browse by alphabet";
$string['studentcanpost'] = "Students can add entries";
$string['totalentries'] = "Total entries";
$string['usedynalink'] = "Automatically link glossary entries";
$string['warningstudentcapost'] = "(Applies only if the glossary is not the main one)";
$string['waitingapproval'] = "Waiting approval";
+40 -4
View File
@@ -2,11 +2,12 @@
require_once("../../config.php");
require_once("lib.php");
global $CFG, $USER;
require_variable($id); // Course Module ID
optional_variable($tab,GLOSSARY_STANDARD_VIEW);
optional_variable($l,"ALL");
optional_variable($cat,0);
if (! $cm = get_record("course_modules", "id", $id)) {
error("Course Module ID was incorrect");
@@ -25,7 +26,42 @@
error("You must be a teacher to use this page.");
}
glossary_generate_export_file($glossary);
redirect("view.php?id=$cm->id&tab=$tab&l=$l",get_string("glosssaryexported","glossary"),1);
die;
$strglossaries = get_string("modulenameplural", "glossary");
$strglossary = get_string("modulename", "glossary");
$strallcategories = get_string("allcategories", "glossary");
$straddentry = get_string("addentry", "glossary");
$strnoentries = get_string("noentries", "glossary");
$strsearchconcept = get_string("searchconcept", "glossary");
$strsearchindefinition = get_string("searchindefinition", "glossary");
$strsearch = get_string("search");
print_header(strip_tags("$course->shortname: $glossary->name"), "$course->fullname",
"$navigation <A HREF=index.php?id=$course->id>$strglossaries</A> -> $glossary->name",
"", "", true, update_module_button($cm->id, $course->id, $strglossary),
navmenu($course, $cm));
echo '<p align="center"><font size="3"><b>' . stripslashes_safe($glossary->name);
echo '</b></font></p>';
/// Info box
if ( $glossary->intro ) {
print_simple_box_start('center','70%');
echo format_text($glossary->intro);
print_simple_box_end();
}
/// Tabbed browsing sections
$tab = GLOSSARY_EXPORT_VIEW;
include("tabs.html");
glossary_generate_export_file($glossary,$l,$cat);
print_string("glosssaryexported","glossary");
if ($CFG->slasharguments) {
$ffurl = "../../file.php/$course->id/glossary/" . clean_filename($glossary->name) ."/glossary.xml";
} else {
$ffurl = "../../file.php?file=/$course->id/glossary/" . clean_filename($glossary->name) ."/glossary.xml";
}
echo '<p><center><a href="' . $ffurl . '" target=_blank>' . get_string("exportedfile","glossary") . '</a></center><p>'
?>
+51
View File
@@ -0,0 +1,51 @@
<form method="POST" action="import.php" name="form" enctype="multipart/form-data">
<table border="0" cellpadding="3" cellspacing="3" width="100%">
<tr>
<td align=right valign=top width="30%"><p><b><?php print_string("filetoimport","glossary") ?>:</b></p></td>
<td width="70%">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo get_max_upload_file_size() ?>">
<input type="file" name="file" size=40> <br \>
<?php
helpbutton("filetoimport", get_string("filetoimport", "glossary"), "glossary");
print_string("maxsize", "", display_size(get_max_upload_file_size()));
?>
</td>
</tr>
<tr valign=top>
<td align=right colspan="2">
<table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr>
<td width="25%">
<p align="right"><?PHP p(get_string("destination","glossary")) ?>:</td>
<td width="25%"><select size="1" name="dest">
<option selected value="current"><?PHP p(get_string("currentglossary","glossary")) ?></option>
<?PHP
// <option value="new">
//< PHP p(get_string("newglossary","glossary")) ? >
// </option>
?>
</select> <?PHP helpbutton("destination", get_string("destination", "glossary"), "glossary") ?></td>
<td width="25%">
<p align="right"><?PHP p(get_string("importcategories","glossary")) ?>:</td>
<td width="25%"><input type="checkbox" name="catsincl" value="1"> <?PHP helpbutton("importcategories", get_string("importcategories", "glossary"), "glossary") ?></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align=right colspan="2">
<table border="0" cellpadding="3" cellspacing="3" width="100%">
<tr>
<td width="50%">
<p align="right"><input type="submit" value="<?php print_string("savechanges") ?>"></td>
<td width="50%"><input type="reset" value="<?php print_string("revert") ?>"></td>
</tr>
</table>
</td>
</tr>
</table>
<input type="hidden" name="id" value="<?PHP p($id) ?>">
<input type="hidden" name="l" value="<?PHP p($l) ?>">
<input type="hidden" name="lasttab" value="<?PHP p($lasttab) ?>">
<input type="hidden" name="step" value="1">
</form>
+304
View File
@@ -0,0 +1,304 @@
<?php
require_once("../../config.php");
require_once("lib.php");
global $CFG, $USER;
require_variable($id); // Course Module ID
optional_variable($step,0);
optional_variable($dest,"current"); // current | new
optional_variable($file); // file to import
optional_variable($catsincl,0); // Import Categories too?
optional_variable($lasttab,GLOSSARY_STANDARD_VIEW);
optional_variable($l,"ALL");
if (! $cm = get_record("course_modules", "id", $id)) {
error("Course Module ID was incorrect");
}
if (! $course = get_record("course", "id", $cm->course)) {
error("Course is misconfigured");
}
if (! $glossary = get_record("glossary", "id", $cm->instance)) {
error("Course module is incorrect");
}
require_login($course->id);
if (!isteacher($course->id)) {
error("You must be a teacher to use this page.");
}
if ($course->category) {
$navigation = "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> ->";
}
if ($dest != 'new' and $dest != 'current') {
$dest = 'current';
}
$strglossaries = get_string("modulenameplural", "glossary");
$strglossary = get_string("modulename", "glossary");
$strallcategories = get_string("allcategories", "glossary");
$straddentry = get_string("addentry", "glossary");
$strnoentries = get_string("noentries", "glossary");
$strsearchconcept = get_string("searchconcept", "glossary");
$strsearchindefinition = get_string("searchindefinition", "glossary");
$strsearch = get_string("search");
print_header(strip_tags("$course->shortname: $glossary->name"), "$course->fullname",
"$navigation <A HREF=index.php?id=$course->id>$strglossaries</A> -> $glossary->name",
"", "", true, update_module_button($cm->id, $course->id, $strglossary),
navmenu($course, $cm));
echo '<p align="center"><font size="3"><b>' . stripslashes_safe($glossary->name);
echo '</b></font></p>';
/// Info box
if ( $glossary->intro ) {
print_simple_box_start('center','70%');
echo format_text($glossary->intro);
print_simple_box_end();
}
/// Tabbed browsing sections
$tab = GLOSSARY_IMPORT_VIEW;
include("tabs.html");
if ( !$step ) {
include("import.html");
glossary_print_tabbed_table_end();
print_footer($course);
exit;
}
$form = data_submitted();
$file = $_FILES["file"];
// if ($xml = glossary_read_imported_file("C:\\download\\moodle\\moodle\\cursos\\10\\glossary\\Testing_Glossary\\glossary.xml") ) {
if ($xml = glossary_read_imported_file($file['tmp_name']) ) {
$importedentries = 0;
$importedcats = 0;
$entriesrejected = 0;
$rejections = '';
if ($dest == 'new') {
// If the user chose to create a new glossary
$xmlglossary = $xml['GLOSSARY']['#']['INFO'][0]['#'];
if ( $xmlglossary['NAME'][0]['#'] ) {
unset($glossary);
$glossary->name = $xmlglossary['NAME'][0]['#'];
$glossary->course = $course->id;
$glossary->globalglossary = $xmlglossary['GLOBALGLOSSARY'][0]['#'];
$glossary->intro = $xmlglossary['INTRO'][0]['#'];
$glossary->showspecial = $xmlglossary['SHOWSPECIAL'][0]['#'];
$glossary->showalphabet = $xmlglossary['SHOWALPHABET'][0]['#'];
$glossary->showall = $xmlglossary['SHOWALL'][0]['#'];
$glossary->timecreated = time();
$glossary->timemodified = time();
// Setting the default values if no values were passed
if ( isset($xmlglossary['STUDENTCANPOST'][0]['#']) ) {
$glossary->studentcanpost = $xmlglossary['STUDENTCANPOST'][0]['#'];
} else {
$glossary->studentcanpost = $CFG->cnfstudentcanpost;
}
if ( isset($xmlglossary['ALLOWDUPLICATEDENTRIES'][0]['#']) ) {
$glossary->allowduplicatedentries = $xmlglossary['ALLOWDUPLICATEDENTRIES'][0]['#'];
} else {
$glossary->allowduplicatedentries = $CFG->cnfallowdupentries;
}
if ( isset($xmlglossary['ALLOWCOMMENTS'][0]['#']) ) {
$glossary->allowcomments = $xmlglossary['ALLOWCOMMENTS'][0]['#'];
} else {
$glossary->allowcomments = $CFG->cnfallowcomments;
}
if ( isset($xmlglossary['USEDYNALINK'][0]['#']) ) {
$glossary->usedynalink = $xmlglossary['USEDYNALINK'][0]['#'];
} else {
$glossary->usedynalink = $CFG->cnflinkglossaries;
}
if ( isset($xmlglossary['DEFAULTAPPROVAL'][0]['#']) ) {
$glossary->defaultapproval = $xmlglossary['DEFAULTAPPROVAL'][0]['#'];
} else {
$glossary->defaultapproval = $CFG->cnfapprovalstatus;
}
// Include new glossary and return the new ID
if ( !$glossary->id = glossary_add_instance($glossary) ) {
notify("Error while trying to create the new glossary.");
glossary_print_tabbed_table_end();
print_footer($course);
exit;
} else {
print_simple_box(get_string("newglossarycreated","glossary"),"center","70%");
echo '<p>';
}
} else {
notify("Error while trying to create the new glossary.");
glossary_print_tabbed_table_end();
print_footer($course);
exit;
}
}
$xmlentries = $xml['GLOSSARY']['#']['INFO'][0]['#']['ENTRIES'][0]['#']['ENTRY'];
for($i = 0; $i < sizeof($xmlentries); $i++) {
// Inserting the entries
$xmlentry = $xmlentries[$i];
unset($newentry);
$newentry->concept = $xmlentry['#']['CONCEPT'][0]['#'];
$newentry->definition = $xmlentry['#']['DEFINITION'][0]['#'];
$permissiongranted = 1;
if ( $newentry->concept and $newentry->definition ) {
if ( !$glossary->allowduplicatedentries ) {
// checking if the entry is valid (checking if it is duplicated when should not be)
if ( $glossary->casesensitive ) {
$dupentry = get_record("glossary_entries","concept",$newentry->concept,"glossaryid",$glossary->id);
} else {
$dupentry = get_record("glossary_entries","ucase(concept)",strtoupper($newentry->concept),"glossaryid",$glossary->id);
}
if ($dupentry) {
$permissiongranted = 0;
}
}
} else {
$permissiongranted = 0;
}
if ($permissiongranted) {
$newentry->glossaryid = $glossary->id;
$newentry->sourceglossaryid = 0;
$newentry->approved = 1;
$newentry->userid = $USER->id;
$newentry->format = $xmlentry['#']['FORMAT'][0]['#'];
$newentry->timecreated = time();
$newentry->timemodified = time();
$newentry->teacherentry = $xmlentry['#']['TEACHERENTRY'][0]['#'];
// Setting the default values if no values were passed
if ( isset($xmlentry['#']['USEDYNALINK'][0]['#']) ) {
$newentry->usedynalink = $xmlentry['#']['USEDYNALINK'][0]['#'];
} else {
$newentry->usedynalink = $CFG->cnfusedynalink;
}
if ( isset($xmlentry['#']['CASESENSITIVE'][0]['#']) ) {
$newentry->casesensitive = $xmlentry['#']['CASESENSITIVE'][0]['#'];
} else {
$newentry->casesensitive = $CFG->cnfcasesensitive;
}
if ( isset($xmlentry['#']['FULLMATCH'][0]['#']) ) {
$newentry->fullmatch = $xmlentry['#']['FULLMATCH'][0]['#'];
} else {
$newentry->fullmatch = $CFG->cnffullmatch;
}
if ( $newentry->id = insert_record("glossary_entries",$newentry) ) {
$importedentries++;
if ( $catsincl ) {
// If the categories must be imported...
$xmlcats = $xmlentry['#']['CATEGORIES'][0]['#']['CATEGORY'];
for($k = 0; $k < sizeof($xmlcats); $k++) {
$xmlcat = $xmlcats[$k];
unset($newcat);
$newcat->name = $xmlcat['#']['NAME'][0]['#'];
if ( !$category = get_record("glossary_categories","glossaryid",$glossary->id,"name",$newcat->name) ) {
// Create the category if it does not exist
unset($category);
$category->name = $newcat->name;
$category->glossaryid = $glossary->id;
if ( !$category->id = insert_record("glossary_categories",$category)) {
// add to exception report (can't insert category)
$rejections .= "<tr><td>&nbsp;<strong>" . get_string("category","glossary") . ":</strong>$newcat->name</td>" .
"<td>" . get_string("cantinsertcat","glossary"). "</td></tr>";
} else {
$importedcats++;
}
}
if ( $category ) {
// inserting the new relation
unset($entrycat);
$entrycat->entryid = $newentry->id;
$entrycat->categoryid = $category->id;
if ( !insert_record("glossary_entries_categories",$entrycat) ) {
// add to exception report (can't insert relation)
$rejections .= "<tr><td>&nbsp;<strong>" . get_string("category","glossary") . ":</strong>$newcat->name</td>" .
"<td>" . get_string("cantinsertrel","glossary"). "</td></tr>";
}
}
}
}
} else {
$entriesrejected++;
// add to exception report (can't insert new record)
$rejections .= "<tr><td>$newentry->concept</td>" .
"<td>" . get_string("cantinsertrec","glossary"). "</td></tr>";
}
} else {
$entriesrejected++;
if ( $newentry->concept and $newentry->definition ) {
// add to exception report (duplicated entry))
$rejections .= "<tr><td>$newentry->concept</td>" .
"<td>" . get_string("duplicateentry","glossary"). "</td></tr>";
} else {
// add to exception report (no concept or definition found))
$rejections .= "<tr><td>---</td>" .
"<td>" . get_string("noconceptfound","glossary"). "</td></tr>";
}
}
}
// processed entries
echo '<table border=0 width=100%>';
echo '<tr>';
echo '<td width=50% align=right>';
echo get_string("totalentries","glossary");
echo ':</td>';
echo '<td width=50%>';
echo $importedentries + $entriesrejected;
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td width=50% align=right>';
echo get_string("importedentries","glossary");
echo ':</td>';
echo '<td width=50%>';
echo $importedentries;
if ( $entriesrejected ) {
echo ' <small>(' . get_string("rejectedentries","glossary") . ": $entriesrejected)</small>";
}
echo '</td>';
echo '</tr>';
if ( $catsincl ) {
echo '<tr>';
echo '<td width=50% align=right>';
echo get_string("importedcategories","glossary");
echo ':</td>';
echo '<td width=50%>';
echo $importedcats;
echo '</td>';
echo '</tr>';
}
echo '</table><hr width=75%>';
// rejected entries
if ($rejections) {
echo '<center><table border=0 width=70%>';
echo '<tr><td align=center colspan=2 width=100%><strong>' . get_string("rejectionrpt","glossary") . '</strong></tr>';
echo $rejections;
echo '</table></center><p><hr width=75%>';
}
} else {
notify("Error while trying to read the file.");
}
glossary_print_tabbed_table_end();
/// Finish the page
print_footer($course);
?>
+53 -33
View File
@@ -837,6 +837,14 @@ function glossary_print_addentry_menu($cm, $glossary, $l, $sortkey, $sortorder =
echo '<center>' . get_string("explainaddentry","glossary") . '<p>';
}
function glossary_print_import_menu($cm, $glossary, $l, $sortkey, $sortorder = "", $tab=GLOSSARY_STANDARD_VIEW) {
echo '<center>' . get_string("explainimport","glossary") . '<p>';
}
function glossary_print_export_menu($cm, $glossary, $l, $sortkey, $sortorder = "", $tab=GLOSSARY_STANDARD_VIEW) {
echo '<center>' . get_string("explainexport","glossary") . '<p>';
}
function glossary_print_alphabet_menu($cm, $glossary, $l, $sortkey, $sortorder = "", $tab=GLOSSARY_STANDARD_VIEW) {
if ( $tab != GLOSSARY_DATE_VIEW ) {
if ($glossary->showalphabet and $glossary->displayformat != GLOSSARY_FORMAT_CONTINUOUS) {
@@ -1096,7 +1104,7 @@ function glossary_print_dynaentry($courseid, $entries) {
echo "</tr></table></center>";
}
function glossary_generate_export_file($glossary) {
function glossary_generate_export_file($glossary,$l, $cat) {
global $CFG;
glossary_check_moddata_dir($glossary);
$h = glossary_open_xml($glossary);
@@ -1113,43 +1121,42 @@ global $CFG;
fwrite ($h,glossary_full_tag("USEDYNALINK",2,false,$glossary->usedynalink));
fwrite ($h,glossary_full_tag("DEFAULTAPPROVAL",2,false,$glossary->defaultapproval));
fwrite ($h,glossary_full_tag("GLOBALGLOSSARY",2,false,$glossary->globalglossary));
$status =fwrite ($h,glossary_end_tag("INFO",1,true));
if ( $entries = get_records("glossary_entries","glossaryid",$glossary->id) ) {
$status = fwrite ($h,glossary_start_tag("ENTRIES",1,true));
foreach ($entries as $entry) {
if ( $entry->approved ) {
$status = fwrite($h,glossary_start_tag("ENTRY",2,true));
fwrite($h,glossary_full_tag("ID",3,false,$entry->id));
fwrite($h,glossary_full_tag("CONCEPT",3,false,$entry->concept));
fwrite($h,glossary_full_tag("DEFINITION",3,false,$entry->definition));
fwrite($h,glossary_full_tag("FORMAT",3,false,$entry->format));
fwrite($h,glossary_full_tag("ATTACHMENT",3,false,$entry->attachment));
fwrite($h,glossary_full_tag("USEDYNALINK",3,false,$entry->usedynalink));
fwrite($h,glossary_full_tag("CASESENSITIVE",3,false,$entry->casesensitive));
fwrite($h,glossary_full_tag("FULLMATCH",3,false,$entry->fullmatch));
$status =fwrite($h,glossary_end_tag("ENTRY",2,true));
}
}
$status =fwrite ($h,glossary_end_tag("ENTRIES",1,true));
}
if ( $entries = get_records("glossary_entries","glossaryid",$glossary->id) ) {
$status = fwrite ($h,glossary_start_tag("ENTRIES",2,true));
foreach ($entries as $entry) {
if ( $entry->approved ) {
$status = fwrite($h,glossary_start_tag("ENTRY",3,true));
fwrite($h,glossary_full_tag("CONCEPT",4,false,$entry->concept));
fwrite($h,glossary_full_tag("DEFINITION",4,false,$entry->definition));
fwrite($h,glossary_full_tag("FORMAT",4,false,$entry->format));
fwrite($h,glossary_full_tag("USEDYNALINK",4,false,$entry->usedynalink));
fwrite($h,glossary_full_tag("CASESENSITIVE",4,false,$entry->casesensitive));
fwrite($h,glossary_full_tag("FULLMATCH",4,false,$entry->fullmatch));
fwrite($h,glossary_full_tag("TEACHERENTRY",4,false,$entry->teacherentry));
if ( $categories = get_records("glossary_categories","glossaryid",$glossary->id) ) {
$status = fwrite ($h,glossary_start_tag("CATEGORIES",1,true));
foreach ($categories as $category) {
$status = fwrite ($h,glossary_start_tag("CATEGORY",2,true));
fwrite($h,glossary_full_tag("NAME",3,false,$category->name));
if ( $catentries = get_records("glossary_entries_categories","categoryid",$category->id) ) {
$count = 0;
foreach ($catentries as $catentry) {
fwrite($h,glossary_full_tag("ENTRYID$count",3,false,$catentry->entryid));
$count++;
if ( $catentries = get_records("glossary_entries_categories","entryid",$entry->id) ) {
$status = fwrite ($h,glossary_start_tag("CATEGORIES",4,true));
foreach ($catentries as $catentry) {
$category = get_record("glossary_categories","id",$catentry->categoryid);
$status = fwrite ($h,glossary_start_tag("CATEGORY",5,true));
fwrite($h,glossary_full_tag("NAME",6,false,$category->name));
$status = fwrite($h,glossary_end_tag("CATEGORY",5,true));
}
$status = fwrite($h,glossary_end_tag("CATEGORIES",4,true));
}
$status =fwrite($h,glossary_end_tag("ENTRY",3,true));
}
}
$status = fwrite($h,glossary_end_tag("CATEGORY",2,true));
$status =fwrite ($h,glossary_end_tag("ENTRIES",2,true));
}
$status = fwrite($h,glossary_end_tag("CATEGORIES",1,true));
}
$status =fwrite ($h,glossary_end_tag("INFO",1,true));
$h = glossary_close_xml($h);
}
// Functions designed by Eloy Lafuente
@@ -1177,6 +1184,19 @@ function glossary_open_xml($glossary) {
}
}
function glossary_read_imported_file($file) {
require_once "../../lib/xmlize.php";
$h = fopen($file,"r");
$line = '';
if ($h) {
while ( !feof($h) ) {
$char = fread($h,1024);
$line .= $char;
}
fclose($h);
}
return xmlize($line);
}
//Close the file
function glossary_close_xml($h) {
$status = fwrite ($h,glossary_end_tag("GLOSSARY",0,true));
+12 -2
View File
@@ -23,8 +23,8 @@
$data[GLOSSARY_IMPORT_VIEW]->caption = "Import Entries";
$data[GLOSSARY_EXPORT_VIEW]->caption = "Export Entries";
// $data[GLOSSARY_IMPORT_VIEW]->link = "import.php?id=$cm->id&tab=$tab";
// $data[GLOSSARY_EXPORT_VIEW]->link = "export.php?id=$cm->id&tab=$tab";
$data[GLOSSARY_IMPORT_VIEW]->link = "import.php?id=$cm->id";
$data[GLOSSARY_EXPORT_VIEW]->link = "export.php?id=$cm->id&l=$l&cat=$cat&tab=".GLOSSARY_CATEGORY_VIEW;
}
$data[GLOSSARY_DATE_VIEW]->link = "view.php?id=$id&tab=".GLOSSARY_DATE_VIEW;
@@ -65,6 +65,16 @@
$l = "";
glossary_print_addentry_menu($cm, $glossary, $l, $sortkey, $sortorder,$tab);
break;
case GLOSSARY_IMPORT_VIEW:
$search = "";
$l = "";
glossary_print_import_menu($cm, $glossary, $l, $sortkey, $sortorder,$tab);
break;
case GLOSSARY_EXPORT_VIEW:
$search = "";
$l = "";
glossary_print_export_menu($cm, $glossary, $l, $sortkey, $sortorder,$tab);
break;
case GLOSSARY_DATE_VIEW:
if (!$sortkey) {
$sortkey = 'UPDATE';