Skip to content
Snippets Groups Projects
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&sectionid=$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&sectionid=$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&sectionid=".$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&sectionid=$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 . "&sectionid=" . $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&sectionreturn=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]);
			}
			
		}
	}