mahara_iena_manage.php 6.23 KB
Newer Older
Thomas Fradet's avatar
Thomas Fradet committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
<?php

require_once('../../config.php');
require_once ('entity/block_mahara_iena_connexion.php');

global $COURSE, $DB, $USER, $CFG;

$courseid = required_param('courseid', PARAM_INT);
$url = new moodle_url('/blocks/mahara_iena/mahara_iena_manage.php', array('courseid' => $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 "<h2>$page_title</h2>";

echo "<style>button {cursor: pointer;}
.table-iena td {padding-bottom: 0.4rem;}</style>";

echo "<p>Fonctionnalités (enseignants uniquement) : </p>
<ul>
<li>Réserver cette interface à la gestion de cours multigroupes ?</li>
<li>S'inscrire ou se désinscrire d'un groupe Mahara</li>
<li class='text-muted'>Eventuellement : idem pour plusieurs à la fois (coches)</li>
<li>Briser le lien entre un groupe Mahara existant et un groupe Moodle</li>
<li>Lier un groupe Mahara existant à un groupe de ce cours Moodle</li>
<li>Supprimer un groupe Mahara lié à ce cours Moodle</li>
</ul>";

echo "<div class='alert alert-success'><h3>Information</h3><p>Vous pouvez ici gérer les groupes de ce cours et les groupes qui y sont liés sur <em>$CFG->mahara_alias</em>. </p>
<ul><li>Normalement, les groupes de <em>$CFG->mahara_alias</em> ne sont créés que lorsque le premier utilisateur du groupe correspondant dans ce cours clic sur le lien pour y accéder : ici, vous pouvez les créer à l'avance.</li>
<li>Vous pouvez vous inscrire / désinscrire vous-même des groupes de ce cours et des groupes liés sur <em>$CFG->mahara_alias</em>. Si vous n'êtes pas inscrit dans un groupe du cours mais inscrit dans le groupe correspondant sur <em>$CFG->mahara_alias</em>, nous ne verrez pas apparaître ce groupe dans le bloc de liens du cours. </li></ul></p></div>";

/* 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 "<table class='table table-iena'>";
echo "<tr><th>Groupe du cours</th><th style='border-right: 2px solid #dee2e6;'>Inscription</th><th>Groupe sur " . $CFG->mahara_alias . "</th><th>Inscription</th></tr>";

foreach ($course_groups as $group) {
	echo "<tr>";
	/* Affichage des infos et lien vers les groupes moodle. */
	echo "<td><strong>" . groups_get_group_name($group->id) . "</strong> ($group->id) — <a href='$CFG->wwwroot/group/group.php?courseid=$COURSE->id&id=$group->id'>Paramètres</a>, <a href='$CFG->wwwroot/group/members.php?group=$group->id'>Membres</a></td>";
	echo "<td style='border-right: 2px solid #dee2e6;'><button class='btn-sm btn-warning'>Désinscription</button></td>";
	
	/* 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 "<td><a target='_blank' href='".$CFG->wwwroot."/blocks/mahara_iena/mahara_iena_link.php?courseid=$COURSE->id&connect_direct=true&mahara_group=".$mahara_group[0]->id."'>".$mahara_group[0]->name."</a></td>";
			echo "<td><button class='btn-sm btn-warning'>Désinscription</button><br><a href='#' class='small' data-toggle='modal' data-target='#exampleModal'>Changer</a></td>";
		} else {
			echo "<td>".$mahara_group[0]->name."</a></td>";
			echo "<td><button class='btn-sm btn-success'>Inscription</button><br><a href='#' class='small'>Changer</a></td>";
		}
	} else {
		/* Si groupe mahara n'existe pas : possibilité de le créer. */
		echo "<td><p class='text-muted'>Créer et s'inscrire dans ce groupe sur <em>$CFG->mahara_alias</em> ?</p></td>";
		echo "<td><button class='btn-sm btn-primary'>Créer et m'inscrire</button><br><a href='#' class='small'>Changer</a></td>";
	}
	echo "</tr>";
}
echo "</table>";

?>

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
	<div class="modal-dialog" role="document">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title" id="exampleModalLabel">Changer le groupe associé</h5>
				<button type="button" class="close" data-dismiss="modal" aria-label="Close">
					<span aria-hidden="true">&times;</span>
				</button>
			</div>
			<div class="modal-body">
				<p>Sélectionner un autre groupe <em><?php echo $CFG->mahara_alias; ?></em> à associer avec ce groupe du cours.</p>
				<p>Vos groupes <em><?php echo $CFG->mahara_alias; ?></em> : </p>
				<select name="" id="change-group-sel" style="width: 100%;">
					<option value="test">test</option>
					<option value="test">test test test test test test test test t test test test test tesst test test test test test dhjieopa jdiep jdiuepaz huipref nuipad uipeaz</option>
				</select>
			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
				<button type="button" class="btn btn-primary">Valider</button>
			</div>
		</div>
	</div>
</div>

<?php


echo $OUTPUT->footer();