Skip to content
Snippets Groups Projects
Commit b6016774 authored by Dennis Ahrens's avatar Dennis Ahrens
Browse files

Backported changes from moodle master bucket in plugin repo.

parent aaa5cb09
Branches
No related tags found
No related merge requests found
...@@ -42,7 +42,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation) ...@@ -42,7 +42,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation)
$courses = []; $courses = [];
} }
// Hides courses that are shown by default // Removes courses that are shown by default
foreach ($myCoursesChildNodes as $cn) { foreach ($myCoursesChildNodes as $cn) {
$myCoursesNode->find($cn, null)->showinflatnavigation = false; $myCoursesNode->find($cn, null)->showinflatnavigation = false;
} }
...@@ -95,7 +95,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation) ...@@ -95,7 +95,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation)
add_semester_nodes($mySemesters, $myCoursesNode); add_semester_nodes($mySemesters, $myCoursesNode);
if ($openFirstSemester) if ($openFirstSemester)
open_first_semester_node($mySemesters, $myCoursesNode); open_semester_node(array_keys($mySemesters)[0] , $myCoursesNode);
// Add all special nodes // Add all special nodes
if ($specialNodesFirst == 1) if ($specialNodesFirst == 1)
...@@ -115,6 +115,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation) ...@@ -115,6 +115,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation)
$semesterKey = create_node_key($semesterName); $semesterKey = create_node_key($semesterName);
$semesterNode = $navigation->find($semesterKey, null); $semesterNode = $navigation->find($semesterKey, null);
// Can't find semester of current course
if (!$semesterNode) { if (!$semesterNode) {
continue; continue;
} }
...@@ -123,16 +124,20 @@ function local_sembasednav_extend_navigation(global_navigation $navigation) ...@@ -123,16 +124,20 @@ function local_sembasednav_extend_navigation(global_navigation $navigation)
$courseKey = create_node_key($courseName); $courseKey = create_node_key($courseName);
$courseNode = navigation_node::create($courseName, new moodle_url('/course/view.php', array('id' => $c->id)), global_navigation::TYPE_COURSE, $courseName, $courseKey, new pix_icon('i/course', 'grades')); $courseNode = navigation_node::create($courseName, new moodle_url('/course/view.php', array('id' => $c->id)), global_navigation::TYPE_COURSE, $courseName, $courseKey, new pix_icon('i/course', 'grades'));
$courseNode->showinflatnavigation = true; $courseNode->showinflatnavigation = true;
$courseNode->add_class('p-l-3'); $courseNode->add_class('p-l-3');
$courseNode->add_class('localboostnavigationcollapsiblechild');
if (!$semesterNode->forceopen) if (!$semesterNode->forceopen)
$courseNode->add_class('localboostnavigationcollapsedchild'); $courseNode->add_class('localboostnavigationcollapsedchild');
$semesterNode->add_node($courseNode); $semesterNode->add_node($courseNode);
}
// Open semester node of active course
if ($courseNode->isactive) {
open_semester_node($semesterNode->text , $myCoursesNode);
}
}
} }
/** /**
...@@ -159,7 +164,7 @@ function add_semester_nodes(array $semesterList, $parentNode) ...@@ -159,7 +164,7 @@ function add_semester_nodes(array $semesterList, $parentNode)
$parentNode->add_node($semesterNode); $parentNode->add_node($semesterNode);
} }
// Apply collapse navigation js to every semeseter // Apply collapse navigation js to every semester
if (!empty($collapsenodesforjs)) { if (!empty($collapsenodesforjs)) {
$PAGE->requires->js_call_amd('local_boostnavigation/collapsenavdrawernodes', 'init', $PAGE->requires->js_call_amd('local_boostnavigation/collapsenavdrawernodes', 'init',
[$collapsenodesforjs, []]); [$collapsenodesforjs, []]);
...@@ -171,27 +176,28 @@ function add_semester_nodes(array $semesterList, $parentNode) ...@@ -171,27 +176,28 @@ function add_semester_nodes(array $semesterList, $parentNode)
} }
/** /**
* @param array $semesterList * @param $semesterKey
* @param $myCourseNode * @param $myCourseNode
*/ */
function open_first_semester_node(array $semesterList, $myCourseNode) function open_semester_node($semesterKey, $myCourseNode)
{ {
$semesterKeys = array_keys($semesterList); if (empty($semesterKey))
if (empty($semesterKeys[0]))
return; return;
$firstSemesterKey = create_node_key($semesterKeys[0]); $key = create_node_key($semesterKey);
$semesterNode = $myCourseNode->find($key, global_navigation::NODETYPE_BRANCH);
$semesterNode = $myCourseNode->find($firstSemesterKey, global_navigation::TYPE_CUSTOM);
$semesterNode->forceopen = true; $semesterNode->forceopen = true;
$semesterNode->remove_class('localboostnavigationcollapsedparent'); $semesterNode->remove_class('localboostnavigationcollapsedparent');
foreach ($semesterNode->get_children_key_list() as $c) {
$node = $myCourseNode->find($c, null);
$node->remove_class('localboostnavigationcollapsedchild');
}
} }
/** /**
* Creates a semester node with needed cs classes for collapse navigation js * Creates a semester node with needed css classes for collapse navigation js
* @param string $semesterName * @param string $semesterName
* @return navigation_node * @return navigation_node
* @throws coding_exception * @throws coding_exception
...@@ -205,12 +211,11 @@ function create_semester_node(string $semesterName) ...@@ -205,12 +211,11 @@ function create_semester_node(string $semesterName)
$semesterKey = create_node_key($semesterName); $semesterKey = create_node_key($semesterName);
$semesterNode = navigation_node::create($semesterName, new moodle_url('/course/view.php', null), global_navigation::TYPE_CUSTOM, null, $semesterKey, null); $semesterNode = navigation_node::create($semesterName, new moodle_url('/course/view.php', null), global_navigation::NODETYPE_BRANCH, null, $semesterKey, null);
$semesterNode->showinflatnavigation = true; $semesterNode->showinflatnavigation = true;
$semesterNode->add_class('localboostnavigationcollapsibleparent'); $semesterNode->add_class('localboostnavigationcollapsibleparent');
$semesterNode->add_class('localboostnavigationcollapsedparent'); $semesterNode->add_class('localboostnavigationcollapsedparent');
$semesterNode->add_class('localboostnavigationcollapsiblechild');
if ($userprefmycoursesnode == 1) { if ($userprefmycoursesnode == 1) {
$semesterNode->add_class('localboostnavigationcollapsedchild'); $semesterNode->add_class('localboostnavigationcollapsedchild');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment