Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
CHANGELOG
=========

Changes in v5.2-r1
----------------------------------

- support for Moodle 5.2

Changes in v5.0-r2 (since v5.0-r1)
----------------------------------

Expand Down
5 changes: 2 additions & 3 deletions backup/moodle2/backup_groupmembers_activity_task.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
* Provides the steps to perform one complete backup of the Groupmembers instance
*/
class backup_groupmembers_activity_task extends backup_activity_task {

/**
* No specific settings for this activity
*/
Expand All @@ -57,11 +56,11 @@ public static function encode_content_links($content) {
$base = preg_quote($CFG->wwwroot, "/");

// Link to the list of groupmembers.
$search = "/(".$base."\/mod\/groupmembers\/index.php\?id\=)([0-9]+)/";
$search = "/(" . $base . "\/mod\/groupmembers\/index.php\?id\=)([0-9]+)/";
$content = preg_replace($search, '$@GROUPMEMBERINDEX*$2@$', $content);

// Link to view by moduleid.
$search = "/(".$base."\/mod\/groupmembers\/view.php\?id\=)([0-9]+)/";
$search = "/(" . $base . "\/mod\/groupmembers\/view.php\?id\=)([0-9]+)/";
$content = preg_replace($search, '$@GROUPMEMBERVIEWBYID*$2@$', $content);

return $content;
Expand Down
8 changes: 5 additions & 3 deletions backup/moodle2/backup_groupmembers_stepslib.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
* Define the complete groupmembers structure for backup, with file and id annotations
*/
class backup_groupmembers_activity_structure_step extends backup_activity_structure_step {

/**
* Define structure for backup step.
*/
Expand All @@ -36,8 +35,11 @@ protected function define_structure() {
$userinfo = $this->get_setting_value('userinfo');

// Define each element separated.
$groupmembers = new backup_nested_element('groupmembers', ['id'],
['name', 'intro', 'introformat', 'listgroupingid', 'showgroups', 'showemail', 'timemodified']);
$groupmembers = new backup_nested_element(
'groupmembers',
['id'],
['name', 'intro', 'introformat', 'listgroupingid', 'showgroups', 'showemail', 'timemodified']
);

// Define sources.
$groupmembers->set_source_table('groupmembers', ['id' => backup::VAR_ACTIVITYID]);
Expand Down
2 changes: 0 additions & 2 deletions backup/moodle2/restore_groupmembers_activity_task.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
* complete restore of the activity
*/
class restore_groupmembers_activity_task extends restore_activity_task {

/**
* Define (add) particular settings this activity can have
*/
Expand Down Expand Up @@ -70,7 +69,6 @@ public static function define_decode_rules() {
$rules[] = new restore_decode_rule('GROUPMEMBERINDEX', '/mod/groupmember/index.php?id=$1', 'course');

return $rules;

}

/**
Expand Down
1 change: 0 additions & 1 deletion backup/moodle2/restore_groupmembers_stepslib.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
* Structure step to restore one groupmembers activity
*/
class restore_groupmembers_activity_structure_step extends restore_activity_structure_step {

/**
* Define structure of restore step.
*/
Expand Down
1 change: 0 additions & 1 deletion classes/event/course_module_instance_list_viewed.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,3 @@
*/
class course_module_instance_list_viewed extends \core\event\course_module_instance_list_viewed {
}

1 change: 0 additions & 1 deletion classes/event/course_module_viewed.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class course_module_viewed extends \core\event\course_module_viewed {

/**
* Init method.
*/
Expand Down
17 changes: 10 additions & 7 deletions classes/output/renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
namespace mod_groupmembers\output;

defined('MOODLE_INTERNAL') || die();
require_once(__DIR__. '/../../lib.php');
require_once($CFG->libdir. '/weblib.php');
require_once(__DIR__ . '/../../lib.php');
require_once($CFG->libdir . '/weblib.php');

use core_user;
use moodle_url;
Expand All @@ -41,7 +41,6 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renderer extends \plugin_renderer_base {

/**
* Render the groups table(s)
*
Expand Down Expand Up @@ -102,15 +101,19 @@ public function render_allgroups(array $groups, $showemail, $showphone, $showdep
// Email address should not be rendered unless user has at least enabled display to course members.
// User has chosen not to reveal an email address. This can be made explicit by the template.
$memberemailhidden = true;
} else if ($showemail == GROUPMEMBERS_SHOWEMAIL_ALLGROUPS ||
($showemail == GROUPMEMBERS_SHOWEMAIL_OWNGROUP && $group['ismember'])) {
} else if (
$showemail == GROUPMEMBERS_SHOWEMAIL_ALLGROUPS ||
($showemail == GROUPMEMBERS_SHOWEMAIL_OWNGROUP && $group['ismember'])
) {
// Since user allows showing, the final decision is up to the module's settings ($showemail).
$memberemail = obfuscate_email($member->email);
$memberemailtext = obfuscate_text($member->email);
}

if (!empty($CFG->messaging) &&
has_capability('moodle/site:sendmessage', \context_system::instance())) {
if (
!empty($CFG->messaging) &&
has_capability('moodle/site:sendmessage', \context_system::instance())
) {
$membermessage = new moodle_url('/message/index.php', ['id' => $member->id]);
}

Expand Down
2 changes: 0 additions & 2 deletions db/access.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,3 @@
'clonepermissionsfrom' => 'moodle/course:manageactivities',
],
];


1 change: 0 additions & 1 deletion db/upgrade.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ function xmldb_groupmembers_upgrade($oldversion) {
$dbman->add_field($table, $field);
}
upgrade_mod_savepoint(true, 2022042100, 'groupmembers');

}

return true;
Expand Down
16 changes: 10 additions & 6 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

require_once(__DIR__. '/../../config.php');
require_once(__DIR__. '/lib.php');
require_once(__DIR__ . '/../../config.php');
require_once(__DIR__ . '/lib.php');

$id = required_param('id', PARAM_INT); // Course ID.
$PAGE->set_url('/mod/groupmembers/index.php', ['id' => $id]);
Expand All @@ -48,16 +48,20 @@
echo $OUTPUT->heading($strplural);

if (! $instances = get_all_instances_in_course('groupmembers', $course)) {
notice(get_string('thereareno', 'moodle', $strplural),
new moodle_url('/course/view.php', ['id' => $course->id]));
notice(
get_string('thereareno', 'moodle', $strplural),
new moodle_url('/course/view.php', ['id' => $course->id])
);
}



$linklist = [];
foreach ($instances as $instance) {
$linklist[] = html_writer::link(new moodle_url('/mod/groupmembers/view.php', ['id' => $instance->coursemodule]),
$instance->name);
$linklist[] = html_writer::link(
new moodle_url('/mod/groupmembers/view.php', ['id' => $instance->coursemodule]),
$instance->name
);
}
echo html_writer::alist($linklist);

Expand Down
2 changes: 1 addition & 1 deletion lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ function groupmembers_supports($feature) {
}
}

switch($feature) {
switch ($feature) {
case FEATURE_MOD_ARCHETYPE:
return MOD_ARCHETYPE_RESOURCE;
case FEATURE_GROUPS:
Expand Down
4 changes: 1 addition & 3 deletions mod_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
*/

defined('MOODLE_INTERNAL') || die();
require_once($CFG->dirroot.'/course/moodleform_mod.php');
require_once($CFG->dirroot . '/course/moodleform_mod.php');

/**
* Settings mod_form for mod_groupmembers
Expand All @@ -37,7 +37,6 @@
*
*/
class mod_groupmembers_mod_form extends moodleform_mod {

/**
* Coursemodule settings form definition.
*/
Expand Down Expand Up @@ -140,4 +139,3 @@ protected function definition() {
$this->add_action_buttons();
}
}

10 changes: 4 additions & 6 deletions tests/groups_datastructure_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
final class groups_datastructure_test extends \advanced_testcase {

/**
* Test pair:
* - show only own groups
Expand All @@ -45,7 +44,7 @@ public function test_only_own_nogrouping(): void {
$this->resetAfterTest();
$dg = static::getDataGenerator();

list($courseid, $userid, $groupid) = static::prepare_basic_data($dg);
[$courseid, $userid, $groupid] = static::prepare_basic_data($dg);

static::assertEmpty(\mod_groupmembers\groups::get_groups_and_members($courseid, 0, $userid, true));

Expand All @@ -66,7 +65,7 @@ public function test_only_own_nogrouping(): void {
public function test_only_own_withgrouping(): void {
$this->resetAfterTest();
$dg = static::getDataGenerator();
list($courseid, $userid, $groupid, $groupingid) = $this->prepare_basic_data($dg);
[$courseid, $userid, $groupid, $groupingid] = $this->prepare_basic_data($dg);

$grouping2 = $dg->create_grouping(['courseid' => $courseid]);

Expand All @@ -91,7 +90,7 @@ public function test_only_own_withgrouping(): void {
public function test_all_nogrouping(): void {
$this->resetAfterTest();
$dg = static::getDataGenerator();
list($courseid, $userid, $groupid) = $this->prepare_basic_data($dg);
[$courseid, $userid, $groupid] = $this->prepare_basic_data($dg);

$res1 = \mod_groupmembers\groups::get_groups_and_members($courseid, 0, $userid, false);
static::assertCount(2, $res1);
Expand All @@ -111,7 +110,6 @@ public function test_all_nogrouping(): void {
self::assertFalse($group['ismember']);
}
}

}

/**
Expand All @@ -123,7 +121,7 @@ public function test_all_nogrouping(): void {
public function test_all_withgrouping(): void {
$this->resetAfterTest();
$dg = static::getDataGenerator();
list($courseid, $userid) = $this->prepare_basic_data($dg);
[$courseid, $userid] = $this->prepare_basic_data($dg);

// Create additional groups and groupings.
$group3 = $dg->create_group(['courseid' => $courseid]);
Expand Down
6 changes: 3 additions & 3 deletions version.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
defined('MOODLE_INTERNAL') || die();

$plugin->maturity = MATURITY_STABLE;
$plugin->release = 'v5.0-r2';
$plugin->version = 2025091700; // The current module version (Date: YYYYMMDDXX).
$plugin->requires = 2022112800; // Requires 4.1+ Moodle version.
$plugin->release = 'v5.2-r0';
$plugin->version = 2026061700; // The current module version (Date: YYYYMMDDXX).
$plugin->requires = 2024100712; // Requires 4.1+ Moodle version.
$plugin->component = 'mod_groupmembers'; // Full name of the plugin (used for diagnostics).
21 changes: 15 additions & 6 deletions view.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

require_once(__DIR__. '/../../config.php');
require_once(__DIR__. '/lib.php');
require_once(__DIR__ . '/../../config.php');
require_once(__DIR__ . '/lib.php');

$id = required_param('id', PARAM_INT); // Course Module ID.
$PAGE->set_url(new moodle_url('/mod/groupmembers/view.php', ['id' => $id]));
Expand Down Expand Up @@ -57,8 +57,12 @@
echo $OUTPUT->header();

// Collect applicable groups and their members.
$groupsandmembers = \mod_groupmembers\groups::get_groups_and_members($course->id, $groupmembers->listgroupingid,
$USER->id, $groupmembers->showgroups == GROUPMEMBERS_SHOWGROUPS_OWN);
$groupsandmembers = \mod_groupmembers\groups::get_groups_and_members(
$course->id,
$groupmembers->listgroupingid,
$USER->id,
$groupmembers->showgroups == GROUPMEMBERS_SHOWGROUPS_OWN
);

// Output special texts if no group was retrieved; otherwise render list.
if (count($groupsandmembers) === 0) {
Expand All @@ -70,8 +74,13 @@
} else {
/** @var mod_groupmembers_renderer $renderer */
$renderer = $PAGE->get_renderer('mod_groupmembers');
echo $renderer->render_allgroups($groupsandmembers, $groupmembers->showemail, $groupmembers->showphone,
$groupmembers->showdeptinst, $groupmembers->showdesc);
echo $renderer->render_allgroups(
$groupsandmembers,
$groupmembers->showemail,
$groupmembers->showphone,
$groupmembers->showdeptinst,
$groupmembers->showdesc
);
}

// Theme footer.
Expand Down
Loading