From 0d67ac8ea2a87f41653cb1bce101b839cc8c2e64 Mon Sep 17 00:00:00 2001 From: Stephen Bourget Date: Wed, 21 Jan 2015 11:08:01 -0500 Subject: [PATCH] MDL-46755 format_social: Make discussion count configurable --- course/format/social/format.php | 7 +++- .../format/social/lang/en/format_social.php | 4 ++- course/format/social/lib.php | 34 +++++++++++++++++++ course/format/social/version.php | 2 +- 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/course/format/social/format.php b/course/format/social/format.php index c3ae054b84d..17d46f8dee3 100644 --- a/course/format/social/format.php +++ b/course/format/social/format.php @@ -30,7 +30,12 @@ } echo ''; - 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'); diff --git a/course/format/social/lang/en/format_social.php b/course/format/social/lang/en/format_social.php index 0316353af53..fdbf20f8cb1 100644 --- a/course/format/social/lang/en/format_social.php +++ b/course/format/social/lang/en/format_social.php @@ -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'; diff --git a/course/format/social/lib.php b/course/format/social/lib.php index a9c62238894..e4665859633 100644 --- a/course/format/social/lib.php +++ b/course/format/social/lib.php @@ -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; + } } diff --git a/course/format/social/version.php b/course/format/social/version.php index e361fb65282..f15e8293a0d 100644 --- a/course/format/social/version.php +++ b/course/format/social/version.php @@ -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)