MDL-35842 - Glossary, Blocks - Joseph R├ęzeau's patch for setting the Random Glossary...
authorJason Fowler <phalacee@gmail.com>
Fri, 23 Nov 2012 06:59:09 +0000 (14:59 +0800)
committerJason Fowler <phalacee@gmail.com>
Fri, 23 Nov 2012 07:06:27 +0000 (15:06 +0800)
blocks/glossary_random/block_glossary_random.php
blocks/glossary_random/edit_form.php
blocks/glossary_random/lang/en/block_glossary_random.php

index 0128f1b..b4bb0ec 100644 (file)
@@ -3,6 +3,7 @@
 define('BGR_RANDOMLY',     '0');
 define('BGR_LASTMODIFIED', '1');
 define('BGR_NEXTONE',      '2');
+define('BGR_NEXTALPHA',    '3');
 
 class block_glossary_random extends block_base {
     function init() {
@@ -50,6 +51,8 @@ class block_glossary_random extends block_base {
             $limitfrom = 0;
             $limitnum = 1;
 
+            $BROWSE = 'timemodified';
+
             switch ($this->config->type) {
 
                 case BGR_RANDOMLY:
@@ -71,6 +74,20 @@ class block_glossary_random extends block_base {
                     $SORT = 'ASC';
                     break;
 
+                case BGR_NEXTALPHA:
+                    $BROWSE = 'concept';
+                    if (isset($this->config->previous)) {
+                        $i = $this->config->previous + 1;
+                    } else {
+                        $i = 1;
+                    }
+                    if ($i > $numberofentries) {  // Loop back to beginning
+                        $i = 1;
+                    }
+                    $limitfrom = $i-1;
+                    $SORT = 'ASC';
+                    break;
+
                 default:  // BGR_LASTMODIFIED
                     $i = $numberofentries;
                     $limitfrom = 0;
@@ -81,7 +98,7 @@ class block_glossary_random extends block_base {
             if ($entry = $DB->get_records_sql("SELECT id, concept, definition, definitionformat, definitiontrust
                                                  FROM {glossary_entries}
                                                 WHERE glossaryid = ? AND approved = 1
-                                             ORDER BY timemodified $SORT", array($this->config->glossary), $limitfrom, $limitnum)) {
+                                             ORDER BY $BROWSE $SORT", array($this->config->glossary), $limitfrom, $limitnum)) {
 
                 $entry = reset($entry);
 
index 95fa6a0..d9c613c 100644 (file)
@@ -55,7 +55,8 @@ class block_glossary_random_edit_form extends block_edit_form {
         $types = array(
             0 => get_string('random','block_glossary_random'),
             1 => get_string('lastmodified','block_glossary_random'),
-            2 => get_string('nextone','block_glossary_random')
+            2 => get_string('nextone','block_glossary_random'),
+            3 => get_string('nextalpha','block_glossary_random')
         );
         $mform->addElement('select', 'config_type', get_string('type', 'block_glossary_random'), $types);
 
index ddb483d..6366bd4 100644 (file)
@@ -32,6 +32,7 @@ $string['glossary_random:myaddinstance'] = 'Add a new random glossary entry bloc
 $string['intro'] = 'Make sure you have at least one glossary with at least one entry added to this course. Then you can adjust the following settings';
 $string['invisible'] = '(to be continued)';
 $string['lastmodified'] = 'Last modified entry';
+$string['nextalpha'] = 'Alphabetical order';
 $string['nextone'] = 'Next entry';
 $string['noentriesyet'] = 'There are no entries yet in the chosen glossary.';
 $string['notyetconfigured'] = 'Please configure this block using the edit icon.';