From c184be93d7da121b5446fe2df53780c06842ee51 Mon Sep 17 00:00:00 2001 From: Thomas Fradet Date: Fri, 3 May 2019 18:40:03 +0200 Subject: [PATCH] beggin group management --- entity/block_mahara_iena_connexion.php | 9 +- mahara_iena_link.php | 7 +- mahara_iena_manage.php | 141 +++++++++++++++++++++++++ 3 files changed, 151 insertions(+), 6 deletions(-) create mode 100644 mahara_iena_manage.php diff --git a/entity/block_mahara_iena_connexion.php b/entity/block_mahara_iena_connexion.php index 5798180..f59fc7b 100644 --- a/entity/block_mahara_iena_connexion.php +++ b/entity/block_mahara_iena_connexion.php @@ -56,10 +56,11 @@ class block_mahara_iena_connexion return $this->base."?wstoken=".$this->wstoken."&wsfunction=".$function."&alt=json"; } - public function getMaharaGroups(){ - $getMaharaGroupes = "mahara_group_get_groups_by_id"; - $url = $this->create_url($getMaharaGroupes); - return json_decode($this->httpGet($url)); + public function getMaharaGroups($params){ + $params = http_build_query($params); + $mahara_group_get_groups_by_id = "mahara_group_get_groups_by_id"; + $url = $this->create_url($mahara_group_get_groups_by_id); + return json_decode($this->httpPost($params, $url)); } public function getMaharaUsers(){ diff --git a/mahara_iena_link.php b/mahara_iena_link.php index 6b491f3..59dba10 100644 --- a/mahara_iena_link.php +++ b/mahara_iena_link.php @@ -31,8 +31,11 @@ if ( $_GET['connect_mahara'] == true ) { //ensure user is member of it's mahara group : true if already or succeed // $all_right = $connexion->ensure_user_is_mahara_group_member($USER, $_GET['mahara_group']); - - $all_right = $connexion->ensure_user_is_mahara_group_member_new($USER, $_GET['mahara_group'], $_GET['moodle_group']); + if ( $_GET['connect_direct'] == true ) { + $all_right = true; + } else { + $all_right = $connexion->ensure_user_is_mahara_group_member_new($USER, $_GET['mahara_group'], $_GET['moodle_group']); + } if ( $all_right === false ) { $content .= '
Erreur d\'ajout au groupe sur '.$CFG->base_mahara.'.
'; diff --git a/mahara_iena_manage.php b/mahara_iena_manage.php new file mode 100644 index 0000000..7fc21cf --- /dev/null +++ b/mahara_iena_manage.php @@ -0,0 +1,141 @@ + $courseid)); + +$PAGE->set_pagelayout('course'); +$PAGE->set_url($url); + +$course = $DB->get_record('course', array('id'=>$courseid), '*', MUST_EXIST); +require_login($course, false, NULL); + +$context = context_course::instance($courseid); + +if (!has_capability('moodle/course:update', $context, $USER->id)) { + header("Location: {$_SERVER['HTTP_REFERER']}"); + exit; +} + +$page_title = "Gestion des groupes liés à ce cours sur " . $CFG->mahara_alias; +$PAGE->set_title($page_title); +$PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline')); + +$connexion = new block_mahara_iena_connexion($CFG->wstoken, $CFG->base_mahara); + +echo $OUTPUT->header(); + +echo "

$page_title

"; + +echo ""; + +echo "

Fonctionnalités (enseignants uniquement) :

+"; + +echo "

Information

Vous pouvez ici gérer les groupes de ce cours et les groupes qui y sont liés sur $CFG->mahara_alias.

+

"; + +/* Liste des liaisons moodle mahara en base. */ +$mo_ma_groups = $DB->get_records_sql('SELECT * FROM {block_mahara_iena} WHERE course = ?', array($COURSE->id)); +/* Tous les groupes moodle. */ +$course_groups = groups_get_all_groups($COURSE->id); + +/* Table d'affichage des informations. */ +echo ""; +echo ""; + +foreach ($course_groups as $group) { + echo ""; + /* Affichage des infos et lien vers les groupes moodle. */ + echo ""; + echo ""; + + /* Détermine si le groupe moodle est lié à un groupe mahara. */ + $mahara_group_id = false; + foreach ($mo_ma_groups as $mo_ma_group) { + if ( $mo_ma_group->moodle_group_id == $group->id ) { + $mahara_group_id = $mo_ma_group->mahara_group_id; + break; + } + } + /* Si le groupe moodle est lié à un groupe mahara. */ + if ( $mahara_group_id ) { + /* Récupération sur mahara des infos de groupe. */ + $params = array ( + 'groups' => + array ( + 0 => + array ( + 'id' => $mahara_group_id + ) + ) + ); + $mahara_group = $connexion->getMaharaGroups($params); + /* USER membre du groupe mahara ? */ + $is_ma_group_member = false; + foreach ($mahara_group[0]->members as $ma_group_member) { + if ( $ma_group_member->username == $USER->username ) { + $is_ma_group_member = true; + } + } + /* Inscription ou désinscription du groupe mahara du USER. */ + if ( $is_ma_group_member ) { + echo ""; + echo ""; + } else { + echo ""; + echo ""; + } + } else { + /* Si groupe mahara n'existe pas : possibilité de le créer. */ + echo ""; + echo ""; + } + echo ""; +} +echo "
Groupe du coursInscriptionGroupe sur " . $CFG->mahara_alias . "Inscription
" . groups_get_group_name($group->id) . " ($group->id) — Paramètres, Membres".$mahara_group[0]->name."
Changer
".$mahara_group[0]->name."
Changer

Créer et s'inscrire dans ce groupe sur $CFG->mahara_alias ?


Changer
"; + +?> + + + +footer(); -- GitLab