Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

- Global glossaries now available. All current rules apply to its ent…

…ries.
  • Loading branch information...
commit 0de786f7da671e489587f9d660acead98ef3e1bd 1 parent 68e16a6
willcast authored
View
2  lang/en/glossary.php
@@ -59,8 +59,10 @@
$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";
View
5 mod/glossary/db/mysql.php
@@ -118,6 +118,11 @@ function glossary_upgrade($oldversion) {
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;
}
View
1  mod/glossary/db/mysql.sql
@@ -23,6 +23,7 @@ CREATE TABLE prefix_glossary (
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)
View
1  mod/glossary/db/postgres7.sql
@@ -22,6 +22,7 @@ CREATE TABLE prefix_glossary (
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)
View
19 mod/glossary/dynalink.php
@@ -12,14 +12,14 @@ function glossary_dynamic_link($courseid, $text) {
$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) {
@@ -34,7 +34,7 @@ function glossary_dynamic_link($courseid, $text) {
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);
@@ -53,7 +53,6 @@ function glossary_dynamic_link($courseid, $text) {
$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);
@@ -128,9 +127,9 @@ function glossary_link_concepts($text,$concept,$href_tag_begin,$href_tag_end = "
}
// 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;
}
@@ -149,9 +148,11 @@ function glossary_link_concepts($text,$concept,$href_tag_begin,$href_tag_end = "
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);
View
10 mod/glossary/edit.html
@@ -1,6 +1,16 @@
<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>
View
36 mod/glossary/edit.php
@@ -21,7 +21,7 @@
require_login($course->id);
-if (isguest()) {
+if ( isguest() ) {
error("Guests are not allowed to edit glossaries", $_SERVER["HTTP_REFERER"]);
}
@@ -47,6 +47,34 @@
$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;
@@ -123,7 +151,7 @@
}
}
}
- 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) {
@@ -154,7 +182,7 @@
if ($usehtmleditor = can_use_richtext_editor()) {
$defaultformat = FORMAT_HTML;
- $onsubmit = "onsubmit=\"copyrichtext(theform.text);\"";
+ $onsubmit = "onsubmit=\"copyrichtext(form.text);\"";
} else {
$defaultformat = FORMAT_MOODLE;
$onsubmit = "";
@@ -163,7 +191,7 @@
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);
View
12 mod/glossary/lib.php
@@ -22,6 +22,12 @@ function glossary_add_instance($glossary) {
/// 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;
@@ -36,6 +42,10 @@ function glossary_update_instance($glossary) {
/// (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;
@@ -1022,7 +1032,7 @@ function glossary_print_dynaentry($courseid, $entries) {
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);
View
28 mod/glossary/mod.html
@@ -38,6 +38,9 @@
if (!isset($form->usedynalink)) {
$form->usedynalink = 1;
}
+if ( !isset($form->globalglossary) ) {
+ $form->globalglossary = 0;
+}
?>
<FORM name="form" method="post" action="<?=$ME ?>">
<CENTER>
@@ -67,6 +70,28 @@
</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 ) {
?>
@@ -78,7 +103,8 @@
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";
View
2  mod/glossary/showentry.php
@@ -10,7 +10,7 @@
" 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);
View
2  mod/glossary/version.php
@@ -5,7 +5,7 @@
/// 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
Please sign in to comment.
Something went wrong with that request. Please try again.