MDL-46755 format_social: Make discussion count configurable
authorStephen Bourget <sbourget@goffstown.k12.nh.us>
Wed, 21 Jan 2015 16:08:01 +0000 (11:08 -0500)
committerStephen Bourget <sbourget@goffstown.k12.nh.us>
Wed, 21 Jan 2015 16:08:01 +0000 (11:08 -0500)
course/format/social/format.php
course/format/social/lang/en/format_social.php
course/format/social/lib.php
course/format/social/version.php

index c3ae054..17d46f8 100644 (file)
         }
 
         echo '<div class="subscribelink">', forum_get_subscribe_link($forum, $modcontext), '</div>';
-        forum_print_latest_discussions($course, $forum, 10, 'plain', '', false);
+
+        $numdiscussions = course_get_format($course)->get_course()->numdiscussions;
+        if ($numdiscussions < 1) {
+            $numdiscussions = 1; // Make sure that the value is at least zero.
+        }
+        forum_print_latest_discussions($course, $forum, $numdiscussions, 'plain', '', false);
 
     } else {
         echo $OUTPUT->notification('Could not find or create a social forum here');
index 0316353..fdbf20f 100644 (file)
@@ -23,5 +23,7 @@
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-$string['sectionname'] = 'section';
+$string['numberdiscussions'] = 'Number of discussions';
+$string['numberdiscussions_help'] = 'This setting specifies how many discussions should be dispalyed.';
 $string['pluginname'] = 'Social format';
+$string['sectionname'] = 'section';
index a9c6223..e466585 100644 (file)
@@ -75,4 +75,38 @@ class format_social extends format_base {
                 'recent_activity', 'course_list')
         );
     }
+
+    /**
+     * Definitions of the additional options that this course format uses for course
+     *
+     * social format uses the following options:
+     * - numdiscussions
+     *
+     * @param bool $foreditform
+     * @return array of options
+     */
+    public function course_format_options($foreditform = false) {
+        static $courseformatoptions = false;
+        if ($courseformatoptions === false) {
+            $courseformatoptions = array(
+                'numdiscussions' => array(
+                    'default' => 10,
+                    'type' => PARAM_INT,
+                )
+            );
+        }
+
+        if ($foreditform && !isset($courseformatoptions['numdiscussions']['label'])) {
+            $courseformatoptionsedit = array(
+                'numdiscussions' => array(
+                    'label' => new lang_string('numberdiscussions', 'format_social'),
+                    'help' => 'numberdiscussions',
+                    'help_component' => 'format_social',
+                    'element_type' => 'text',
+                )
+            );
+            $courseformatoptions = array_merge_recursive($courseformatoptions, $courseformatoptionsedit);
+        }
+        return $courseformatoptions;
+    }
 }
index e361fb6..f15e829 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->version   = 2015102100;        // The current plugin version (Date: YYYYMMDDXX)
 $plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'format_social';   // Full name of the plugin (used for diagnostics)