$string['explainall'] = "Shows ALL entries on one page";
$string['exportedentry'] = "Exported entry";
$string['exporttomainglossary'] = "Export to main glossary";
+$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['isglobal'] = "Is this glossary global?";
$string['mainglossary'] = "Main glossary";
$string['modulename'] = "Glossary";
$string['modulenameplural'] = "Glossaries";
execute_sql(" INSERT INTO {$CFG->prefix}log_display VALUES ('glossary', 'approve entry', 'glossary', 'name') ");
}
+
+ if ( $oldversion < 2003102800 ) {
+ execute_sql( "ALTER TABLE `{$CFG->prefix}glossary`" .
+ " ADD `globalglossary` TINYINT(2) UNSIGNED NOT NULL default '0' AFTER `defaultapproval`");
+ }
return true;
}
allowcomments tinyint(2) unsigned NOT NULL default '0',
usedynalink tinyint(2) unsigned NOT NULL default '1',
defaultapproval tinyint(2) unsigned NOT NULL default '1',
+ globalglossary tinyint(2) unsigned NOT NULL default '0',
timecreated int(10) unsigned NOT NULL default '0',
timemodified int(10) unsigned NOT NULL default '0',
PRIMARY KEY (id)
showall int2 NOT NULL default '1',
allowcomments int2 NOT NULL default '0',
usedynalink int2 NOT NULL default '1',
+ globalglossary int2 NOT NULL default '0',
timecreated int4 NOT NULL default '0',
timemodified int4 NOT NULL default '0',
PRIMARY KEY (id)
$GLOSSARY_CONCEPT_IS_ENTRY = 0;
$GLOSSARY_CONCEPT_IS_CATEGORY = 1;
- $glossarieslist = get_records_select("glossary", "usedynalink != 0 and course = $courseid","id");
+// $glossarieslist = get_records_select("glossary", "usedynalink != 0 and (course = $courseid or global != 0)","id");
+ $glossarieslist = get_records_select("glossary", "usedynalink != 0 and (course = $courseid or globalglossary != 0)","globalglossary, id");
if ( $glossarieslist ) {
$glossaries = "";
foreach ( $glossarieslist as $glossary ) {
$glossaries .= "$glossary->id,";
}
$glossaries=substr($glossaries,0,-1);
-
/// sorting by the lenght of the concept in order to assure that large concepts
/// could be linked first, if they exist in the text to parse
switch ($CFG->dbtype) {
break;
}
- $entries = get_records_select("glossary_entries", "glossaryid IN ($glossaries) AND usedynalink != 0 and approved != 0","$ebylenght glossaryid","id,glossaryid,concept,casesensitive,$GLOSSARY_CONCEPT_IS_ENTRY category,fullmatch");
+ $entries = get_records_select("glossary_entries", "glossaryid IN ($glossaries) AND usedynalink != 0 and approved != 0 and concept != ''","$ebylenght glossaryid","id,glossaryid,concept,casesensitive,$GLOSSARY_CONCEPT_IS_ENTRY category,fullmatch");
$categories = get_records_select("glossary_categories", "glossaryid IN ($glossaries)", "$cbylenght glossaryid,id","id,glossaryid,name concept, 1 casesensitive,$GLOSSARY_CONCEPT_IS_CATEGORY category, 1 fullmatch");
if ( $entries and $categories ) {
$concepts = array_merge($entries, $categories);
$glossary = get_record("glossary","id",$concept->glossaryid);
$lastglossary = $glossary->id;
}
-
if ( $concept->category ) {
if ( $lastcategory != $concept->id ) {
$category = get_record("glossary_categories","id",$concept->id);
}
// getting ride of all other tags
$final = array();
- preg_match_all('/<(.+?)>/is',$text,$list_of_words);
+ preg_match_all('/<(.+?)>/is',$text,$list_of_tags);
- foreach (array_unique($list_of_words[0]) as $key=>$value) {
+ foreach (array_unique($list_of_tags[0]) as $key=>$value) {
$final['<|'.$key.'|>'] = $value;
}
if ( $excludes ) {
$text = str_replace(array_keys($excludes),$excludes,$text);
}
- if ( isset($words) and $fullmatch ) {
- if ($words) {
- $text = str_replace(array_keys($words),$words,$text);
+ if ( $fullmatch ) {
+ if ( isset($words) ) {
+ if ($words) {
+ $text = str_replace(array_keys($words),$words,$text);
+ }
}
}
return stripslashes($text);
<center>
<form name="form" method="post" <?=$onsubmit ?> action="edit.php" enctype="multipart/form-data">
<table class=generalbox cellpadding=5 bgcolor="<?php p($THEME->cellheading)?>">
+<?PHP
+if (isset($errors)) {
+?>
+ <tr valign=top>
+ <td colspan=2 align=center><strong><font color=red><?PHP p($errors) ?></font></strong>
+ </td>
+ </tr>
+<?PHP
+}
+?>
<tr valign=top>
<td align=right><p><b><?php echo get_string("concept","glossary") ?>:</b></p></td>
<td>
require_login($course->id);
-if (isguest()) {
+if ( isguest() ) {
error("Guests are not allowed to edit glossaries", $_SERVER["HTTP_REFERER"]);
}
$newentry->fullmatch = $form->fullmatch;
$newentry->timemodified = $timenow;
+ if ($form->concept == '' or trim($form->text) == '' ) {
+ $errors = get_string('fillfields','glossary');
+ $strglossary = get_string("modulename", "glossary");
+ $strglossaries = get_string("modulenameplural", "glossary");
+ $stredit = get_string("edit");
+
+ if ($usehtmleditor = can_use_richtext_editor()) {
+ $defaultformat = FORMAT_HTML;
+ $onsubmit = "onsubmit=\"copyrichtext(form.text);\"";
+ } else {
+ $defaultformat = FORMAT_MOODLE;
+ $onsubmit = "";
+ }
+
+ print_header(strip_tags("$course->shortname: $glossary->name"), "$course->fullname",
+ "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->
+ <A HREF=\"index.php?id=$course->id\">$strglossaries</A> ->
+ <A HREF=\"view.php?id=$cm->id\">$glossary->name</A> -> $stredit", "form.text",
+ "", true, "", navmenu($course, $cm));
+
+ print_heading($glossary->name);
+
+ include("edit.html");
+
+ print_footer($course);
+ die;
+ }
+
if ($e) {
$newentry->id = $e;
}
}
}
- redirect("view.php?id=$cm->id&eid=$newentry->id");
+ redirect("view.php?id=$cm->id&eid=$newentry->id&tab=$tab&cat=$cat");
die;
} else {
if ($e) {
if ($usehtmleditor = can_use_richtext_editor()) {
$defaultformat = FORMAT_HTML;
- $onsubmit = "onsubmit=\"copyrichtext(theform.text);\"";
+ $onsubmit = "onsubmit=\"copyrichtext(form.text);\"";
} else {
$defaultformat = FORMAT_MOODLE;
$onsubmit = "";
print_header(strip_tags("$course->shortname: $glossary->name"), "$course->fullname",
"<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->
<A HREF=\"index.php?id=$course->id\">$strglossaries</A> ->
- <A HREF=\"view.php?id=$cm->id\">$glossary->name</A> -> $stredit", "theform.text",
+ <A HREF=\"view.php?id=$cm->id\">$glossary->name</A> -> $stredit", "form.text",
"", true, "", navmenu($course, $cm));
print_heading($glossary->name);
/// will create a new instance and return the id number
/// of the new instance.
+ if ( !isset($glossary->globalglossary) ) {
+ $glossary->globalglossary = 0;
+ } elseif ( !isadmin() ) {
+ $glossary->globalglossary = 0;
+ }
+
$glossary->timecreated = time();
$glossary->timemodified = $glossary->timecreated;
/// (defined by the form in mod.html) this function
/// will update an existing instance with new data.
+ if ( !isadmin() ) {
+ unset($glossary->globalglossary);
+ }
+
$glossary->timemodified = time();
$glossary->id = $glossary->instance;
if (! $course = get_record("course", "id", $glossary->course)) {
error("Glossary is misconfigured - don't know what course it's from");
}
- if (!$cm = get_coursemodule_from_instance("glossary", $entry->glossaryid, $courseid) ) {
+ if (!$cm = get_coursemodule_from_instance("glossary", $entry->glossaryid, $glossary->course) ) {
error("Glossary is misconfigured - don't know what course module it is ");
}
glossary_print_entry($course, $cm, $glossary, $entry);
if (!isset($form->usedynalink)) {
$form->usedynalink = 1;
}
+if ( !isset($form->globalglossary) ) {
+ $form->globalglossary = 0;
+}
?>
<FORM name="form" method="post" action="<?=$ME ?>">
<CENTER>
</tr>
<!-- More rows go in here... -->
<?php
+if (isadmin() ) {
+?>
+<TR valign=top>
+ <TD align=right><P><B><?php echo get_string("isglobal", "glossary") ?>:</B></P></TD>
+ <TD>
+<?php
+ $selected = "";
+ if ( isset($form->globalglossary) ) {
+ if ($form->globalglossary) {
+ $selected = "checked";
+ }
+ }
+?>
+ <input type="checkbox" name="globalglossary" value=1 <?PHP p($selected)?>> <?php helpbutton("globalglossary", get_string("globallossary", "glossary"), "glossary") ?>
+ </TD>
+</TR>
+<?php
+} else {
+ echo '<INPUT type="hidden" name=globalglossary value="' . $form->globalglossary . '">';
+}
+?>
+<?php
$mainglossary = get_record("glossary","mainglossary",1,"course",$form->course);
if (!$mainglossary or $mainglossary->id == $form->instance ) {
?>
if ( $form->mainglossary ) {
echo "selected";
}
- ?>><?php echo get_string("mainglossary", "glossary") ?></option>
+?>>
+<?php echo get_string("mainglossary", "glossary") ?></option>
<option value="0" <?php
if ( !$form->mainglossary ) {
echo "selected";
" where e.glossaryid = g.id and".
" (e.casesensitive != 0 and ucase(concept) = '" . strtoupper(trim($concept)). "' or".
" e.casesensitive = 0 and concept = '$concept') and".
- " g.course = $courseid and".
+ " (g.course = $courseid or g.globalglossary) and".
" e.usedynalink != 0 and g.usedynalink != 0");
glossary_print_dynaentry($courseid, $entries);
/// This fragment is called by moodle_needs_upgrading() and /admin/index.php
/////////////////////////////////////////////////////////////////////////////////
-$module->version = 2003102000; // The current module version (Date: YYYYMMDDXX)
+$module->version = 2003102800; // The current module version (Date: YYYYMMDDXX)
$module->cron = 0; // Period for cron to check this module (secs)
$release = "0.5 development"; // User-friendly version number