-
Thomas Fradet authoredThomas Fradet authored
renderer.php 30.00 KiB
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* format_iena
*
* @package format_iena
* @category format
* @copyright 2018 Softia/Université lorraine
* @author vrignaud camille/Thomas Fradet
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
require_once($CFG->dirroot . '/course/format/topics/renderer.php');
require_once($CFG->dirroot . '/course/format/iena/view/view_course_header.php');
/**
* format_iena_renderer
*
* @package format_iena
* @category format
* @copyright 2018 Softia/Université lorraine
* @author vrignaud camille
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class format_iena_renderer extends format_topics_renderer
{
/**
* start_section_list
*
* @return string
*/
protected function start_section_list()
{
return html_writer::start_tag('ul', ['class' => 'iena-editing']);
}
/**
* section_header
*
* @param stdclass $section
* @param stdclass $course
* @param bool $onsectionpage
* @param int $sectionreturn
* @return string
*/
protected function section_header($section, $course, $onsectionpage, $sectionreturn = null, $iena = false)
{
global $PAGE, $CFG;
$o = '';
$currenttext = '';
$sectionstyle = '';
if ($section->section != 0) {
if (!$section->visible) {
$sectionstyle = ' hidden';
} elseif (course_get_format($course)->is_section_current($section)) {
$sectionstyle = ' current';
}
}
if ($PAGE->user_is_editing()) {
$o .= html_writer::start_tag('li', ['id' => 'section-' . $section->section,
'class' => 'section main clearfix' . $sectionstyle,
'role' => 'region', 'aria-label' => get_section_name($course, $section)]);
}
$o .= html_writer::tag('span', $this->section_title($section, $course), ['class' => 'hidden sectionname']);
if ($PAGE->user_is_editing()) {
$leftcontent = $this->section_left_content($section, $course, $onsectionpage);
$o .= html_writer::tag('div', $leftcontent, ['class' => 'left side']);
$rightcontent = $this->section_right_content($section, $course, $onsectionpage);
$o .= html_writer::tag('div', $rightcontent, ['class' => 'right side']);
}
$hasnamenotsecpg = (!$onsectionpage && ($section->section != 0 || !is_null($section->name)));
$hasnamesecpg = ($onsectionpage && ($section->section == 0 && !is_null($section->name)));
$classes = ' accesshide';
if ($hasnamenotsecpg || $hasnamesecpg) {
$classes = '';
}
$sectionname = html_writer::tag('span', $this->section_title($section, $course));
if ($PAGE->user_is_editing()) {
$o .= $this->output->heading($sectionname, 3, 'sectionname' . $classes);
}
// if ($course->showdefaultsectionname) {
// $o .= $this->output->heading($sectionname, 3, 'sectionname' . $classes);
// }
// if (!$iena) { $o .= $sectionname; }
$context = context_course::instance($course->id);
/* résumé de section */
if ( $section->summary != "" ) {
$o .= html_writer::start_tag('div', ['class' => 'iena-description']);
$o .= html_writer::start_tag('div', ['class' => 'small']);
$o .= html_writer::start_tag('div', ['class' => 'iena-summary']);
$o .= $this->format_summary_text($section);
$o .= html_writer::end_tag('div');
$o .= html_writer::end_tag('div');
$o .= html_writer::end_tag('div');
$o .= html_writer::tag('a', 'Voir la description complète', ['href' => '#', 'class' => 'voir-plus']);
}
$o .= $this->section_availability_message($section, has_capability('moodle/course:viewhiddensections', $context));
if ($PAGE->user_is_editing()) {
// $o .= html_writer::end_tag('li');
}
return $o;
}
public function get_completion_by_section($idSection)
{
global $COURSE, $USER;
$ressources_entity = new course_format_iena_section_ressources();
$section_entity = new course_format_iena_sections();
//$completions = $ressources_entity->get_completions_by_userid($USER->id, $COURSE->id);
// list modules in a section
$modules = $ressources_entity->get_ressources_completion_on_by_id_section($idSection);
$nb_modules = count($modules);
if ($nb_modules == 0) {
return array($nb_modules, 999);
}
$valueI = 100 / $nb_modules;
$valueTotal = 0;
foreach ($modules as $module) {
$complet = $ressources_entity->get_completions_by_module($USER->id, $COURSE->id, $module->id);
if ($complet->completionstate != 0) {
$valueTotal += $valueI;
}
}
return array($modules, $valueTotal);
}
public function is_student($userId) {
// do NOT trust this method
global $COURSE;
$course_ctx = context_course::instance($COURSE->id);
foreach (get_user_roles($course_ctx, $userId) as $role) {
if ($role->shortname == 'student') {
return true;
}
}
}
public function get_render_competences($diSection)
{
global $DB, $COURSE, $CFG, $USER;
$section_entity = new course_format_iena_section_ressources();
$modules = $section_entity->get_ressources_by_id_section($diSection);
$id_competence = array();
foreach ($modules as $module) {
$comp_module = $DB->get_records('competency_modulecomp', array('cmid' => $module->id));
if ($comp_module) {
foreach ($comp_module as $comp){
$id_competence[$comp->id] = $comp->competencyid;
}
}
}
$competences = array();
foreach ($id_competence as $val) {
$req = $DB->get_record('competency', array('id' => $val));
$competences[$val] = $req->shortname;
}
if (count($competences) == 0) {
return "";
}
$render = false;
$render .= "
<div class=\"dropdown d-inline\">
<a href=\"#\" class=\"dropdown-toggle\" id=\"dropdown-2\" title=\"Actions\" role=\"button\" data-toggle=\"dropdown\"
aria-haspopup=\"true\" aria-expanded=\"false\" style=\"color : white\">
<i class=\"fa fa-lightbulb-o\" aria-hidden=\"true\"></i>
</a>
<div class=\"dropdown-menu dropdown- dropdown-menu-right menu align-tr-br\" id=\"action-menu-2-menu\" data-rel=\"menu-content\"
aria-labelledby=\"action-menu-toggle-2\" role=\"menu\" data-align=\"tr-br\">
<div class=\"contenu\">
<div class='centered'>
<h3>Compétences</h3>
</div>
<ul class='bulle'>
";
foreach ($competences as $key => $competence) {
$render .= "<li><a href='" . $CFG->wwwroot . "/admin/tool/lp/user_competency_in_course.php?courseid=" . $COURSE->id .
"&competencyid=" . $key . "&userid=" . $USER->id . "'> $competence </a></li>";
}
$render .= "
</ul>
<div class='centered'>
<a href ='" . $CFG->wwwroot . "/admin/tool/lp/coursecompetencies.php?courseid=" . $COURSE->id . "'>
<button class='btn btn-sm btn_blue' >Compétence du cours</button></a>
</div>
</div>
</div>
</div>";
return $render;
}
public function get_view_iena($course, $htmlsection, $nameSection, $introSection, $idSection)
{
global $CFG, $COURSE, $USER;
$section_entity = new course_format_iena_sections();
//recommenté
// $course_sections_instance = new course_format_iena_section_ressources();
// $course_sections = new course_format_iena_sections();
// $liste_sections = $course_sections->get_sections_by_id_course($COURSE->id);
// $course_format_iena_groups_instance = new course_format_iena_groups();
// $groups = $course_format_iena_groups_instance->get_groups_by_id_course($COURSE->id);
// fin recommenté
// $groups = [];
// var_dump($groups);
//$students_group = $course_format_iena_groups_instance->get_students_group($course->id);
// COUPE ICI
// $tab_group_indicateur = array();
// foreach($groups as $group)
// {
// $tab_student_completion = array();
// $tab_section_indicateur = array();
// foreach ($liste_sections as $section_ligne)
// {
// //get modules for one section
// $modules_states_section = $course_sections->get_hidden_modules_by_section($section_ligne->id);
// // if rows is empty in BDD => check count modules of student
// // hide => cm (course module (activity) is linked to a section indicator)
// // $nb_modules => numbre of activities linked to this section indicator
// $nb_modules = 0;
// foreach ($modules_states_section as $mod) {
// if ($mod->hide == 1) {
// $nb_modules++;
// }
// }
// // Count each student of group who as not all validate in section
// foreach ($group->list_userid as $student)
// {
// // si le user peut consulter le suivi, il n'est pas étudiant et ne doit pas y apparaître
// if (has_capability('course/iena:suivi', $context = context_course::instance($COURSE->id), $student->userid)) {
// continue;
// }
// //retrieving the student's module completion chart for this course (then check if module in section)
// // $tab_student_completion = $course_sections_instance->get_completions_by_userid($student->userid, $COURSE->id);
// $tab_student_completion = NULL;
// // if no info completion of student is not in BDD
// if (empty($tab_student_completion)) {
// $indicateur = 1;
// } else {
// $compteur = 0;
// foreach ($modules_states_section as $mod) {
// if ($mod->hide == 1) {
// $break_one = 0;
// foreach ($tab_student_completion as $module_completion) {
// if ($module_completion->coursemoduleid == $mod->cmid) {
// $compteur++;
// if ($module_completion->completionstate == 0) {
// $indicateur = 1;
// $break_one = 1;
// break;
// } else {
// $indicateur = 0;
// }
// }
// }
// if ($break_one == 1) {
// break;
// }
// }
// }
// if ($compteur < $nb_modules) {
// if ($indicateur == 0) {
// $indicateur = 1;
// }
// }
// }
// if ($this->is_student($student->userid) !== true) {
// $indicateur = 0;
// }
// $tab_section_indicateur[$section_ligne->id] += $indicateur;
// }
// if ($nb_modules == 0) {
// $tab_section_indicateur[$section_ligne->id] = "<a href=\"$CFG->wwwroot/course/format/iena/param_indicateur.php?courseid=$COURSE->id§ionid=$section_ligne->id\">-</a>";
// } else if ($tab_section_indicateur[$section_ligne->id] == NULL) {
// $tab_section_indicateur[$section_ligne->id] = 0;
// }
// }
// $tab_group_indicateur[$group->idnumber] = $tab_section_indicateur;
// }
// $course_ctx = context_course::instance($COURSE->id);
// $students = get_enrolled_users($course_ctx, 'mod/assignment:submit', 0);
// $tab_student_completion = array();
// $tab_section_indicateur = array();
// foreach ($liste_sections as $section_ligne) {
// //retrieves modules for a section
// $modules_states_section = $course_sections->get_hidden_modules_by_section($section_ligne->id);
// // if empty lines in the DB => check student module counter
// $nb_modules = 0;
// foreach ($modules_states_section as $mod) {
// if ($mod->hide == 1) {
// $nb_modules++;
// }
// }
// // Count each student in the course who has not validated everything in the
// foreach ($students as $student) {
// // si le user peut consulter le suivi, il n'est pas étudiant et ne doit pas y apparaître
// if (has_capability('course/iena:suivi', $context = context_course::instance($COURSE->id), $student->id)) {
// continue;
// }
// //retrieving the student's module completion chart for this course (then check if module in section)
// // $tab_student_completion = $course_sections_instance->get_completions_by_userid($student->id, $COURSE->id);
// $tab_student_completion = NULL;
// // if no student completion information is in the database
// if (empty($tab_student_completion)) {
// $indicateur = 1;
// } else {
// $compteur = 0;
// foreach ($modules_states_section as $mod) {
// if ($mod->hide == 1) {
// $break_one = 0;
// foreach ($tab_student_completion as $module_completion) {
// if ($module_completion->coursemoduleid == $mod->cmid) {
// $compteur++;
// if ($module_completion->completionstate == 0) {
// $indicateur = 1;
// $break_one = 1;
// break;
// } else {
// $indicateur = 0;
// }
// }
// }
// if ($break_one == 1) {
// break;
// }
// }
// }
// if ($compteur < $nb_modules) {
// if ($indicateur == 0) {
// $indicateur = 1;
// }
// }
// }
// $tab_section_indicateur[$section_ligne->id] += $indicateur;
// }
// if ($nb_modules == 0) {
// $tab_section_indicateur[$section_ligne->id] = "<a href=\"$CFG->wwwroot/course/format/iena/param_indicateur.php?courseid=$COURSE->id§ionid=$section_ligne->id\">-</a>";
// } else if ($tab_section_indicateur[$section_ligne->id] == NULL) {
// $tab_section_indicateur[$section_ligne->id] = 0;
// }
// // var_dump($tab_section_indicateur[$section_ligne->id]);
// }
// $tab_group_indicateur['id_groupe0']=$tab_section_indicateur;
// $view = "";
// COUPE ICI
// nouvelle génération du header
$view = "";
require_once($CFG->dirroot . '/course/format/iena/entity/course_format_iena_completion.php');
// return false if completion disabled (site or course)
$cpl = course_format_iena_completion::get_completion_by_section($nameSection, $idSection);
/* Passer le calcul de complétion de la classe course_format_iena_completion à part à la vue qui fait le header permet de ne pas récupérer deux fois les mêmes informations. */
$header = new view_course_header($nameSection, $idSection, $course, $cpl);
$view .= $header->get_content();
$i = 0;
$link = $CFG->wwwroot . "/course/format/iena/suivi_unit.php?courseid=" . $COURSE->id;
$view .= "<!-- <script defer src=\"https://use.fontawesome.com/releases/v5.0.8/js/all.js\"></script> -->
<style>
/*
style for clean page
*/
/* [BOOST] : course header */
#page-header .card {
border: none;
}
#page-header .card-body {
padding-left: 0;
}
/* [BOOST] : left nav */
#nav-drawer,
[data-region='drawer'] {
background-color: #fff;
}
#nav-drawer .list-group-item {
border: 1px solid #ffffff;
}
#nav-drawer .list-group-item:hover {
background-color: #e7e9ea;
}
#nav-drawer .list-group-item.active:hover {
color: #000000;
}
/* [BOOST] : blocks */
#block-region-side-pre section.block {
border: none;
}
#block-region-side-pre section.block .card-body {
padding-top: 0;
}
/* [BOOST] : margin for ul, because ul is used to list sections */
ul, ul ul {
padding-left: 2.5rem;
margin-bottom: 0.5rem !important;
}
/* style for ? */
#completionprogressid {
display: none;
}
#region-main > .card {
border: none;
overflow-x: visible !important;
overflow-y: visible;
}
#region-main > .card > .card-body {
border: none;
padding: 0;
}
.centered {
display:flex;justify-content:center;align-items:center;
}
.contenu {
min-width: 15rem;
}
ul.bulle {
list-style: none;
padding:5%;
}
.bulle {
list-style: none;
}
.bulle > li {
list-style: none;
font-weight: normal;
font-size: 0.8rem;
line-height: 1rem;
padding-top: 5%;
}
</style>";
foreach ($htmlsection as $section) {
$presence = "";
if (!$section) {
continue;
}
$param_section = $section_entity->get_section_settings_by_id_section($idSection[$i]);
// dates, modality and notification section parameters : false if not set.
if ($param_section !== false) {
if ($param_section->presence && $i != 0) {
if ($param_section->presence == 1) {
$presence = "En présence";
} else if ($param_section->presence == 2) {
$presence = "A distance";
}
}
if ($param_section->date_rendu) {
$dateUp = date_create($param_section->date_rendu);
$date = $dateUp->format("j/m H:i");
$date_jour = $dateUp->format("j/m");
$date_heure = $dateUp->format("H:i");
$dateUp = $dateUp->getTimestamp();
} else {
$date = "";
}
} else {
$date = "";
}
$titre = $nameSection[$i];
$sectionIntro = $introSection[$i];
//If section is hidden continue
if ($titre == null && !(has_capability('moodle/course:update', $context = context_course::instance($COURSE->id), $USER->id))) {
$i++;
continue;
}
$view .= "<section class=\"section iena-section\" id=\"section-$i\">
<div class=\"card card_block\">
<div class=\"heading-iena set_height\">";
if ( $cpl != false && count($cpl->sections[$i]->modules) > 0 ) {
$view .= "<div class='iena-percent set_height'>" . $cpl->sections[$i]->completion . "%</div>";
}
// if ($compl_by_section != 999 && $completion->is_enabled()) {
// $view .= "<div class=\"iena-percent set_height\">
// " . floor($compl_by_section) . "%
// </div>";
// }
// if (has_capability('moodle/course:update', $context = context_course::instance($COURSE->id), $USER->id) && $i != 0) {
if (has_capability('course/iena:suivi', $context = context_course::instance($COURSE->id), $USER->id) && $i != 0) {
$course_groups = groups_get_all_groups($COURSE->id);
// var_dump($course_groups->id);
$group_indicateur = 0;
$view .= "<a href='$link§ionid=".$idSection[$i]."' style=\"color : white\">";
$view .="<div onclick='change_grouplink(this)' style=\"display:none;\" class=\"nb_pers set_height id_groupe0\">";
$view .= "Suivi étudiants";
$view .= "</div>";
foreach ($course_groups as $group) {
$view .="<div onclick='change_grouplink(this)' style=\"display:none;\" class=\"nb_pers set_height id_groupe".$group->id."\">";
$view .= "Suivi étudiants";
$view .= "</div>";
}
$view .="</a>";
// if (has_capability('course/iena:suivi_edit', $context = context_course::instance($COURSE->id), $USER->id) && $i != 0) {
// $view .= "<a href=\"$CFG->wwwroot/course/format/iena/param_indicateur.php?courseid=$COURSE->id§ionid=$idSection[$i]\" class=\"set_height\" style=\"color: white;float: left;line-height: 4rem;margin-left: 1rem;\">Editer suivi</a>";
// }
// id_groupeXXX
// var_dump($course_groups);
// var_dump($idSection[$i]);
// foreach($tab_group_indicateur as $group_indicateur => $val) {
// $view .="<div onclick='change_grouplink(this)' style=\"display:none;\" class=\"nb_pers set_height ".$group_indicateur."\">";
// foreach ($val as $key => $value) {
// if ($idSection[$i] == $key) {
// $view .= $value;
// }
// }
// $view .= "</div>";
// }
// $view .="</a>";
}
$view .= "<div class=\"titre_section set_height\">
<p>$titre</p>
</div>
<div class=\"right_info\">
";
// if ($presence) {
// $view .= "
// <div class=\"label_item\">
// $presence
// </div>";
// }
if ($date) {
$link_date = $CFG->wwwroot . "/calendar/view.php?view=month&time=" . $dateUp . "&course=" . $COURSE->id;
if ($presence && $presence == "A distance") {
$view .= "
<div class=\"label_item sect-date\">
À distance
</div>
<div class=\"label_item sect-date\">
Pour le $date_jour à $date_heure
</div>";
} else if ($presence && $presence == "En présence") {
$view .= "
<div class=\"label_item sect-date\">
En présence
</div>
<div class=\"label_item sect-date\">
Le $date_jour à $date_heure
</div>";
} else {
$view .= "
<div class=\"label_item sect-date\">
Le $date_jour à $date_heure
</div>";
}
} else {
if ($presence && $presence == "A distance") {
$view .= "
<div class=\"label_item sect-date\">
À distance
</div>";
} else if ($presence && $presence == "En présence") {
$view .= "
<div class=\"label_item sect-date\">
En présence
</div>";
}
}
// $cpt = $this->get_render_competences($idSection[$i]);
$cpt = "";
if ($cpt != "") {
$view .= "
<div class=\"titre_section set_height\">
";
$view .= $cpt;
$view .= "</div>
";
}
$link_param = $CFG->wwwroot . "/course/format/iena/param_section.php?courseid=" . $COURSE->id . "§ionid=" . $idSection[$i];
if (has_capability('moodle/course:update', $context = context_course::instance($COURSE->id), $USER->id) && $i != 0) {
$view .= "<div class=\"titre_section set_height\">
<a href='$link_param' style=\"color : white\">
<i class=\"fa fa-cog \" aria-hidden=\"true\" ></i>
</a>
</div>";
}
$view .= "</div>
</div>
";
$view .= "<div class=\"wrapper section\">";
$view .= $sectionIntro;
// à présent géré au niveau de la génération du header de section par la méthode dédiée
// if (strpos($sectionIntro, "</p>")) {
// $view .= "<div class=\"iena-description\">";
// $view .= "
// <div class=\"small\">
// $sectionIntro
// </div>
// </div>
// <a href=\"#\">Voir la description complète</a>
// ";
// $view .= "</div>";
// }
$view .= "<div class=\"wrapper\">
$section
</div >
</div>
</section>";
$i++;
}
return $view;
}
public function print_iena_section_pages($course)
{
global $PAGE, $USER;
//$courses = enrol_get_my_courses('*', 'fullname ASC');
// $coursesprogress = [];
$context = context_course::instance($course->id);
$course = course_get_format($course)->get_course();
$completion = new \completion_info($course);
// First, let's make sure completion is enabled.
// if (!$completion->is_enabled()) {
// continue;
// }
// $proges = new \core_completion\progress();
// $percentage = $proges->get_course_progress_percentage($course);
// if (!is_null($percentage)) {
// $percentage = floor($percentage);
// }
// $coursesprogress[$course->id]['completed'] = $completion->is_course_complete($USER->id);
// $coursesprogress[$course->id]['progress'] = $percentage;
// $completion_total = $coursesprogress[$course->id]["progress"];
$modinfo = get_fast_modinfo($course);
// $course = course_get_format($course)->get_course();
$context = context_course::instance($course->id);
// $completioninfo = new completion_info($course);
if (isset($_COOKIE['sectionvisible_' . $course->id])) {
$sectionvisible = $_COOKIE['sectionvisible_' . $course->id];
} elseif ($course->marker > 0) {
$sectionvisible = $course->marker;
} else {
$sectionvisible = 1;
}
$htmlsection = false;
$nameSection = [];
$idSection = false;
$introSection = false;
//var_dump($modinfo->get_section_info_all());die;
foreach ($modinfo->get_section_info_all() as $section => $thissection) {
// var_dump($thissection);
//Nom de la section
$htmlsection[$section] = '';
/*if ($section == 0) {
//$section0 = $thissection;
//continue;
$nameSection[$section] = "Section 0";
$idSection[$section] = $section;
}*/
$numsections = course_get_format($course)->get_last_section_number();
// var_dump($numsections);
// if ($section > $numsections) {
// // if ($section > $course->numsections) {
// // continue;
// }
/* if is not editing verify the rules to display the sections */
if (!$PAGE->user_is_editing() && (!has_capability('moodle/course:viewhiddensections', $context = context_course::instance($course->id), $USER->id))) {
if ($course->hiddensections && !(int)$thissection->visible) {
continue;
}
if (!$thissection->available && !empty($thissection->availableinfo)) {
$htmlsection[$section] .= $this->section_header($thissection, $course, false, 0);
continue;
}
if (!$thissection->uservisible || !$thissection->visible) {
$htmlsection[$section] .= $this->section_hidden($section, $course->id);
continue;
}
}
//Affiche le nom de la section en mode propre sans lien
$idSection[$section] = $thissection->id;
// $nameSection[$section] .= $this->section_title_without_link($thissection, $course);
$nameSection[$section] = $this->section_title_without_link($thissection, $course);
if ($PAGE->user_is_editing()) {
$htmlsection[$section] .= $this->section_header($thissection, $course, false, 0);
}
//$htmlsection[$section] .= $this->section_title($thissection,$course);
//$introSection[$section] .= $this->section_header($thissection, $course, false, 0);
$introSection[$section] = $this->section_header($thissection, $course, false, 0, true);
if ($thissection->uservisible) {
/* Ne pas enlever sinon le activity chooser ne fonctionne pas en JS */
$htmlsection[$section] .= "<div class='content'>";
// Renvoie le lien du cours avec icone
$htmlsection[$section] .= $this->courserenderer->course_section_cm_list($course, $thissection, 0);
$htmlsection[$section] .= $this->courserenderer->course_section_add_cm_control($course, $section, 0);
$htmlsection[$section] .= "</div>";
}
/* pas de footer car on ne commence par la structure par une div non fermée et que ce footer ferme par une div */
// $htmlsection[$section] .= $this->section_footer();
} //ENDFOREACH
// echo $completioninfo->display_help_icon();
echo $this->output->heading($this->page_title(), 2, 'accesshide');
echo $this->course_activity_clipboard($course, 0);
echo $this->start_section_list();
//traitement section 0
/*if ($section0->summary || !empty($modinfo->sections[0]) || $PAGE->user_is_editing()) {
$htmlsection0 = $this->section_header($section0, $course, false, 0);
$htmlsection0 .= $this->courserenderer->course_section_cm_list($course, $section0, 0);
$htmlsection0 .= $this->courserenderer->course_section_add_cm_control($course, 0, 0);
$htmlsection0 .= $this->section_footer();
}*/
//A ce stade on à toutes les activité déja prête en HTML par contre il manque le nom des sections
// Il se trouve dans : $thissection->name
//var_dump($htmlsection);
//var_dump($htmlsection0);
if ($PAGE->user_is_editing()) {
// echo $completioninfo->display_help_icon();
echo $this->output->heading($this->page_title(), 2, 'accesshide');
echo $this->course_activity_clipboard($course, 0);
echo $this->start_section_list();
}
// if ($course->sectionposition == 0 and isset($htmlsection0)) {
// if ($PAGE->user_is_editing()){
// echo html_writer::tag('span', $htmlsection0, ['class' => 'above']);
// }
// }
//echo $this->get_button_section($course, $sectionvisible);
//here all activities are displayed
//If we are in etition mode then we display the "BASE" page Otherwise our model
if (!$PAGE->user_is_editing()) {
echo $this->get_view_iena($course, $htmlsection, $nameSection, $introSection, $idSection);
} else {
foreach ($htmlsection as $current) {
echo $current;
}
}
//At this stage nothing is yet displayed except the icon: Your progress
if ($course->sectionposition == 1 and isset($htmlsection0)) {
if ($PAGE->user_is_editing())
echo html_writer::tag('span', $htmlsection0, ['class' => 'below']);
}
//Add the + and - at the end of the page to see which part of the code to really keep
if ($PAGE->user_is_editing() and has_capability('moodle/course:update', $context)) {
foreach ($modinfo->get_section_info_all() as $section => $thissection) {
if ($section <= $numsections or empty($modinfo->sections[$section])) {
continue;
}
echo $this->stealth_section_header($section);
echo $this->courserenderer->course_section_cm_list($course, $thissection, 0);
echo $this->stealth_section_footer();
}
echo $this->end_section_list();
echo html_writer::start_tag('div', ['id' => 'changenumsections', 'class' => 'mdl-right']);
$straddsection = get_string('addsections');
$url = $url = new moodle_url('/course/changenumsections.php', ['courseid' => $course->id, 'insertsection' => 0, 'increase' => false, 'sesskey' => sesskey(), 'sectionreturn' => 0]);
$icon = $this->output->pix_icon('t/switch_plus', $straddsection);
echo html_writer::link($url, $icon . $straddsection, ['class' => 'increase-sections']);
// if ($course->numsections > 0) {
// $strremovesection = get_string('reducesections', 'moodle');
// $url = new moodle_url('/course/changenumsections.php', ['courseid' => $course->id, 'insertsection' => 0, 'increase' => false, 'sesskey' => sesskey(), 'sectionreturn' => 0]);
// // http://localhost:8888/moodle35/course/changenumsections.php?courseid=5&insertsection=0&sesskey=IYEFeaNxbo§ionreturn=0
// $icon = $this->output->pix_icon('t/switch_minus', $strremovesection);
// echo html_writer::link(
// $url,
// $icon . get_accesshide($strremovesection),
// ['class' => 'reduce-sections']
// );
// }
echo html_writer::end_tag('div');
} else {
echo $this->end_section_list();
}
echo html_writer::tag('style', '.course-content ul.iena #section-' . $sectionvisible . ' { display: block; }');
if (!$PAGE->user_is_editing()) {
//$PAGE->requires->js_init_call('M.format_iena.init', [$course->numsections]);
}
}
}