From: willcast Date: Wed, 29 Oct 2003 23:33:54 +0000 (+0000) Subject: - Global glossaries now available. All current rules apply to its entries. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=0de786f7da671e489587f9d660acead98ef3e1bd;p=moodle.git - Global glossaries now available. All current rules apply to its entries. --- diff --git a/lang/en/glossary.php b/lang/en/glossary.php index 7d0cf64999..8bf6356ed1 100644 --- a/lang/en/glossary.php +++ b/lang/en/glossary.php @@ -59,8 +59,10 @@ $string['explainalphabet'] = "Browse the glossary using this index"; $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
(when automatically linked)"; $string['glossarytype'] = "Glossary Type"; +$string['isglobal'] = "Is this glossary global?"; $string['mainglossary'] = "Main glossary"; $string['modulename'] = "Glossary"; $string['modulenameplural'] = "Glossaries"; diff --git a/mod/glossary/db/mysql.php b/mod/glossary/db/mysql.php index 20b5483844..e996b6ba9b 100644 --- a/mod/glossary/db/mysql.php +++ b/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; } diff --git a/mod/glossary/db/mysql.sql b/mod/glossary/db/mysql.sql index 99276273fd..1c19299bcb 100644 --- a/mod/glossary/db/mysql.sql +++ b/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) diff --git a/mod/glossary/db/postgres7.sql b/mod/glossary/db/postgres7.sql index 0f45bdd21c..cf6cfd2072 100644 --- a/mod/glossary/db/postgres7.sql +++ b/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) diff --git a/mod/glossary/dynalink.php b/mod/glossary/dynalink.php index 21504fbc2b..7762b41ee0 100644 --- a/mod/glossary/dynalink.php +++ b/mod/glossary/dynalink.php @@ -12,14 +12,14 @@ $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 @@ 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 @@ $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 @@ } // 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 @@ 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); diff --git a/mod/glossary/edit.html b/mod/glossary/edit.html index a2b17d7b46..86f381042b 100644 --- a/mod/glossary/edit.html +++ b/mod/glossary/edit.html @@ -1,6 +1,16 @@
action="edit.php" enctype="multipart/form-data"> + + + + + + + + + +globalglossary . '">'; +} +?> +course); if (!$mainglossary or $mainglossary->id == $form->instance ) { ?> @@ -78,7 +103,8 @@ if (!$mainglossary or $mainglossary->id == $form->instance ) { if ( $form->mainglossary ) { echo "selected"; } - ?>> +?>> +
+

:

diff --git a/mod/glossary/edit.php b/mod/glossary/edit.php index 2a2413ebc4..c49d82de89 100644 --- a/mod/glossary/edit.php +++ b/mod/glossary/edit.php @@ -21,7 +21,7 @@ if (! $course = get_record("course", "id", $cm->course)) { require_login($course->id); -if (isguest()) { +if ( isguest() ) { error("Guests are not allowed to edit glossaries", $_SERVER["HTTP_REFERER"]); } @@ -47,6 +47,34 @@ if ( $confirm ) { $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", + "wwwroot/course/view.php?id=$course->id\">$course->shortname -> + id\">$strglossaries -> + id\">$glossary->name -> $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 @@ if ( $confirm ) { } } } - 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 @@ $stredit = get_string("edit"); 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 @@ if ($usehtmleditor = can_use_richtext_editor()) { print_header(strip_tags("$course->shortname: $glossary->name"), "$course->fullname", "wwwroot/course/view.php?id=$course->id\">$course->shortname -> id\">$strglossaries -> - id\">$glossary->name -> $stredit", "theform.text", + id\">$glossary->name -> $stredit", "form.text", "", true, "", navmenu($course, $cm)); print_heading($glossary->name); diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php index 55f55cc32a..1d4d25c5e0 100644 --- a/mod/glossary/lib.php +++ b/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); diff --git a/mod/glossary/mod.html b/mod/glossary/mod.html index 978f54ecfd..f60b5f3250 100644 --- a/mod/glossary/mod.html +++ b/mod/glossary/mod.html @@ -38,6 +38,9 @@ if (!isset($form->studentcanpost)) { if (!isset($form->usedynalink)) { $form->usedynalink = 1; } +if ( !isset($form->globalglossary) ) { + $form->globalglossary = 0; +} ?>
@@ -67,6 +70,28 @@ if (!isset($form->usedynalink)) {

:

+globalglossary) ) { + if ($form->globalglossary) { + $selected = "checked"; + } + } +?> + > +