From 41c980286b16380175c427803567de8c6ad365b7 Mon Sep 17 00:00:00 2001 From: stronk7 Date: Wed, 12 Jan 2005 00:55:38 +0000 Subject: [PATCH] Now print-view availability for students can be configured by glossary. Bug 2080 (http://moodle.org/bugs/bug.php?op=show&bugid=2080) --- lang/en/glossary.php | 2 ++ lang/en/help/glossary/allowprintview.html | 7 +++++++ mod/glossary/backuplib.php | 1 + mod/glossary/db/mysql.php | 11 +++++++++++ mod/glossary/db/mysql.sql | 1 + mod/glossary/db/postgres7.php | 11 +++++++++++ mod/glossary/db/postgres7.sql | 1 + mod/glossary/filter.php | 2 +- mod/glossary/mod.html | 22 ++++++++++++++++++++++ mod/glossary/print.php | 4 ++++ mod/glossary/restorelib.php | 1 + mod/glossary/version.php | 2 +- mod/glossary/view.php | 6 ++++-- 13 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 lang/en/help/glossary/allowprintview.html diff --git a/lang/en/glossary.php b/lang/en/glossary.php index c30c58134d..40df7c58c6 100644 --- a/lang/en/glossary.php +++ b/lang/en/glossary.php @@ -10,6 +10,7 @@ $string['allcategories'] = 'All Categories'; $string['allentries'] = 'ALL'; $string['allowcomments'] = 'Allow comments on entries'; $string['allowduplicatedentries'] = 'Duplicated entries allowed'; +$string['allowprintview'] = 'Allow print view'; $string['allowratings'] = 'Allow entries to be rated?'; $string['answer'] = 'Answer'; $string['approve'] = 'Approve'; @@ -130,6 +131,7 @@ $string['notcategorised'] = 'Not categorised'; $string['numberofentries'] = 'Number of entries'; $string['onebyline'] = '(one per line)'; $string['printerfriendly'] = 'Printer-friendly version'; +$string['printviewnotallowed'] = 'Print view isn\'t allowed'; $string['question'] = 'Question'; $string['rate'] = 'Rate'; $string['rating'] = 'Rating'; diff --git a/lang/en/help/glossary/allowprintview.html b/lang/en/help/glossary/allowprintview.html new file mode 100644 index 0000000000..05d900fa95 --- /dev/null +++ b/lang/en/help/glossary/allowprintview.html @@ -0,0 +1,7 @@ +

Allow print view

+ +

Students can be allowed to use the print view of the glossary.

+ +

You can choose whether this feature is enabled or disabled.

+ +

Teachers always can use the print view.

diff --git a/mod/glossary/backuplib.php b/mod/glossary/backuplib.php index d34a7f2e05..195e988b68 100644 --- a/mod/glossary/backuplib.php +++ b/mod/glossary/backuplib.php @@ -53,6 +53,7 @@ fwrite ($bf,full_tag("SHOWALPHABET",4,false,$glossary->showalphabet)); fwrite ($bf,full_tag("SHOWALL",4,false,$glossary->showall)); fwrite ($bf,full_tag("ALLOWCOMMENTS",4,false,$glossary->allowcomments)); + fwrite ($bf,full_tag("ALLOWPRINTVIEW",4,false,$glossary->allowprintview)); fwrite ($bf,full_tag("USEDYNALINK",4,false,$glossary->usedynalink)); fwrite ($bf,full_tag("DEFAULTAPPROVAL",4,false,$glossary->defaultapproval)); fwrite ($bf,full_tag("GLOBALGLOSSARY",4,false,$glossary->globalglossary)); diff --git a/mod/glossary/db/mysql.php b/mod/glossary/db/mysql.php index a292eb2ab2..ea76c8816a 100644 --- a/mod/glossary/db/mysql.php +++ b/mod/glossary/db/mysql.php @@ -386,6 +386,17 @@ function glossary_upgrade($oldversion) { } } } + + //Allowprintview flag + if ($oldversion < 2005011200) { + table_column('glossary','','allowprintview','tinyint','2', 'unsigned', '1', '', 'allowcomments'); + $glossaries = get_records('glossary', '', '', '', 'id, name'); + if ($glossaries) { + foreach ($glossaries as $glossary) { + set_field('glossary', 'allowprintview', '1', 'id', "$glossary->id"); + } + } + } return true; } diff --git a/mod/glossary/db/mysql.sql b/mod/glossary/db/mysql.sql index e4091ec770..d553f0cefe 100644 --- a/mod/glossary/db/mysql.sql +++ b/mod/glossary/db/mysql.sql @@ -21,6 +21,7 @@ CREATE TABLE prefix_glossary ( showalphabet tinyint(2) unsigned NOT NULL default '1', showall tinyint(2) unsigned NOT NULL default '1', allowcomments tinyint(2) unsigned NOT NULL default '0', + allowprintview tinyint(2) unsigned NOT NULL default '1', usedynalink tinyint(2) unsigned NOT NULL default '1', defaultapproval tinyint(2) unsigned NOT NULL default '1', globalglossary tinyint(2) unsigned NOT NULL default '0', diff --git a/mod/glossary/db/postgres7.php b/mod/glossary/db/postgres7.php index f3a6130ac4..905d10e3bd 100644 --- a/mod/glossary/db/postgres7.php +++ b/mod/glossary/db/postgres7.php @@ -147,6 +147,17 @@ function glossary_upgrade($oldversion) { } } + //Allowprintview flag + if ($oldversion < 2005011200) { + table_column('glossary','','allowprintview','integer','2', 'unsigned', '1', '', 'allowcomments'); + $glossaries = get_records('glossary', '', '', '', 'id, name'); + if ($glossaries) { + foreach ($glossaries as $glossary) { + set_field('glossary', 'allowprintview', '1', 'id', "$glossary->id"); + } + } + } + return true; } diff --git a/mod/glossary/db/postgres7.sql b/mod/glossary/db/postgres7.sql index 580a3b8a7b..5c53ba8b89 100644 --- a/mod/glossary/db/postgres7.sql +++ b/mod/glossary/db/postgres7.sql @@ -21,6 +21,7 @@ CREATE TABLE prefix_glossary ( showalphabet int2 NOT NULL default '1', showall int2 NOT NULL default '1', allowcomments int2 NOT NULL default '0', + allowprintview int2 NOT NULL default '1', usedynalink int2 NOT NULL default '1', defaultapproval int2 NOT NULL default '1', globalglossary int2 NOT NULL default '0', diff --git a/mod/glossary/filter.php b/mod/glossary/filter.php index f3900a9172..77882c8e0b 100644 --- a/mod/glossary/filter.php +++ b/mod/glossary/filter.php @@ -59,7 +59,7 @@ if ( $lastcategory != $concept->id ) { $category = get_record("glossary_categories","id",$concept->id); $lastcategory = $concept->id; - if ( $cm->instance != $category->glossaryid ) { + if ( empty($cm->instance) || $cm->instance != $category->glossaryid ) { $gcat = get_record("glossary","id",$category->glossaryid); if ( !$cm = get_coursemodule_from_instance("glossary", $category->glossaryid, $gcat->course) ) { $cm->id = 1; diff --git a/mod/glossary/mod.html b/mod/glossary/mod.html index 73571b2a3e..1bf1609c8f 100644 --- a/mod/glossary/mod.html +++ b/mod/glossary/mod.html @@ -11,6 +11,9 @@ if (!isset($form->allowduplicatedentries)) { if (!isset($form->allowcomments)) { $form->allowcomments = $CFG->glossary_allowcomments; } +if (!isset($form->allowprintview)) { + $form->allowprintview = 1; +} if (!isset($form->usedynalink)) { $form->usedynalink = $CFG->glossary_linkbydefault; } @@ -207,6 +210,25 @@ if (!$mainglossary or $mainglossary->id == $form->instance ) { + + : + + + + : diff --git a/mod/glossary/print.php b/mod/glossary/print.php index a241253e01..6c40b7b0a9 100644 --- a/mod/glossary/print.php +++ b/mod/glossary/print.php @@ -42,6 +42,10 @@ notice(get_string("activityiscurrentlyhidden")); } + if (!isteacher($course->id) and !$glossary->allowprintview) { + notice(get_string('printviewnotallowed', 'glossary')); + } + /// setting the default values for the display mode of the current glossary /// only if the glossary is viewed by the first time if ( $dp = get_record('glossary_formats','name', addslashes($glossary->displayformat)) ) { diff --git a/mod/glossary/restorelib.php b/mod/glossary/restorelib.php index cd4bc08352..0aa1420931 100644 --- a/mod/glossary/restorelib.php +++ b/mod/glossary/restorelib.php @@ -57,6 +57,7 @@ $glossary->showalphabet = backup_todb($info['MOD']['#']['SHOWALPHABET']['0']['#']); $glossary->showall = backup_todb($info['MOD']['#']['SHOWALL']['0']['#']); $glossary->allowcomments = backup_todb($info['MOD']['#']['ALLOWCOMMENTS']['0']['#']); + $glossary->allowprintview = backup_todb($info['MOD']['#']['ALLOWPRINTVIEW']['0']['#']); $glossary->usedynalink = backup_todb($info['MOD']['#']['USEDYNALINK']['0']['#']); $glossary->defaultapproval = backup_todb($info['MOD']['#']['DEFAULTAPPROVAL']['0']['#']); $glossary->globalglossary = backup_todb($info['MOD']['#']['GLOBALGLOSSARY']['0']['#']); diff --git a/mod/glossary/version.php b/mod/glossary/version.php index 78079afcc9..08ee97a2f9 100644 --- a/mod/glossary/version.php +++ b/mod/glossary/version.php @@ -5,7 +5,7 @@ /// This fragment is called by moodle_needs_upgrading() and /admin/index.php ///////////////////////////////////////////////////////////////////////////////// -$module->version = 2005011100; +$module->version = 2005011200; $module->requires = 2004112300; // Requires this Moodle version $module->cron = 0; // Period for cron to check this module (secs) diff --git a/mod/glossary/view.php b/mod/glossary/view.php index 3c147ea428..1ab77b0b32 100644 --- a/mod/glossary/view.php +++ b/mod/glossary/view.php @@ -238,8 +238,10 @@ echo '

' . stripslashes_safe($glossary->name); if ( $isuserframe and $mode != 'search') { /// the "Print" icon - echo " id&mode=$mode&hook=$hook&sortkey=$sortkey&sortorder=$sortorder&offset=$offset\">\n"; - echo ''; + if (isteacher($course->id) or $glossary->allowprintview) { + echo " id&mode=$mode&hook=$hook&sortkey=$sortkey&sortorder=$sortorder&offset=$offset\">\n"; + echo ''; + } } echo '

'; -- 2.39.5