diff --git a/lang/en/local_treestudyplan.php b/lang/en/local_treestudyplan.php
index f646093..0eb8cd7 100644
--- a/lang/en/local_treestudyplan.php
+++ b/lang/en/local_treestudyplan.php
@@ -83,6 +83,11 @@ $string["settingdesc_display_heading"] = 'Study plan display settings';
$string["setting_display_field"] = 'Course display name';
$string["settingdesc_display_field"] = 'Select the field to use for the display name of a course in the study plan';
+$string["setting_navigation_heading"] = 'Navigation';
+$string["settingdesc_navigation_heading"] = 'Navigation menu configuration';
+$string["setting_primary_nav_autofill"] = 'Automatically fill User menu items';
+$string["settingdesc_primary_nav_autofill"] = 'To show the studyplan links in the primary navigation menu, lines have to be added to the setting Appearance - Theme settings - Custom menu items. Enable this feature to do so automatically.';
+
$string["settingspage_csync"] = 'Synchronize linked cohorts and users to courses';
$string["setting_csync_heading"] = 'Automatically create a cohort sync in all courses linked to a study plan for all cohorts linked to a study plan';
$string["settingdesc_csync_heading"] = '';
@@ -194,6 +199,7 @@ $string["coursetiming_future"] = "Upcoming course";
$string["link_myreport"] = "My study plan";
$string["link_viewplan"] = "Study plans";
+$string["link_editplan"] = "Manage study plans";
$string["nav_invited"] = "View study plan by invitation";
$string["associations"] = 'Associations';
$string["associated_cohorts"] = 'Linked cohorts';
diff --git a/lang/nl/local_treestudyplan.php b/lang/nl/local_treestudyplan.php
index 9b57c1a..c664793 100644
--- a/lang/nl/local_treestudyplan.php
+++ b/lang/nl/local_treestudyplan.php
@@ -78,6 +78,11 @@ $string["view_plan"] = 'Studieplannen bekijken';
$string["edit_plan"] = 'Studieplan bewerken';
$string["settingspage"] = 'Studieplan instellingen';
+$string["setting_navigation_heading"] = 'Navigatie';
+$string["settingdesc_navigation_heading"] = 'Instellingen voor navigatie';
+$string["setting_primary_nav_autofill"] = 'Aangepast menu items automatisch aanvullen';
+$string["settingdesc_primary_nav_autofill"] = 'Om in het primaire navigatiemenu de studieplan links te tonen, moeten regels worden toegevoegd in de instelling Uiterlijk - Thema instellingen - Aangepast menu items. Zet deze optie aan om dat automatisch te doen.';
+
$string["setting_display_heading"] = 'Weergave';
$string["settingdesc_display_heading"] = 'Configuratie voor de weergave van de studieplannen';
$string["setting_display_field"] = 'Weergavenaam cursus';
@@ -194,6 +199,7 @@ $string["coursetiming_future"] = "Toekomstige cursus";
$string["link_myreport"] = "Mijn studieplan";
$string["link_viewplan"] = "Studieplannen";
+$string["link_editplan"] = "Studieplannen beheren";
$string["nav_invited"] = "Studieplan op uitnodiging bekijken";
$string["associations"] = 'Koppelingen';
$string["associated_cohorts"] = 'Gekoppelde site-groepen';
diff --git a/lib.php b/lib.php
index 7d5304c..318fb35 100644
--- a/lib.php
+++ b/lib.php
@@ -42,6 +42,52 @@ function local_treestudyplan_unit_get_editor_options(context $context) {
'trusttext' => 0];
}
+function local_treestudyplan_autofill_customusermenuitems() {
+ if (get_config("local_treestudyplan", "primary_nav_autofill")) {
+ $lang = current_language();
+ $navitems = [
+ "/local/treestudyplan/myreport.php" => ["included" => false, "strkey" => "link_myreport"],
+ "/local/treestudyplan/view-plan.php" => ["included" => false, "strkey" => "link_viewplan"],
+ "/local/treestudyplan/edit-plan.php" => ["included" => false, "strkey" => "link_editplan"],
+ ];
+
+ // Load the custom menu items from config
+ $custommenuitems = get_config("core", "custommenuitems");
+
+ // Scan through all the lines to see if it is a link to one of our nav items in the current language.
+ $lines = explode("\n", $custommenuitems);
+ //debugging("\n\nLines: ". print_r($lines,true)."\n");
+ $links = array_keys($navitems);
+ foreach ($lines as $line) {
+ $parms = explode('|', $line);
+ if (count($parms) > 3) {
+ $link = trim($parms[1]);
+ if (trim($parms[3]) == $lang && in_array($link, $links)) {
+ // Register the link as already included if it is found.
+ $navitems[$link]["included"] = true;
+ }
+ }
+ }
+
+ // List through all the links to see if we need to add one or more
+ foreach($navitems as $link => $details){
+ if (!$details["included"]) {
+ $line = implode("|",[
+ get_string($details["strkey"],"local_treestudyplan"), // Menu text.
+ $link, // Link.
+ '', // Tooltip,
+ $lang, // Language code.
+ " #Automatically added by studyplan plugin. See setting 'primary_nav_autofill' to disable this"
+ ]);
+ $custommenuitems = trim($custommenuitems)."\n".$line;
+ }
+ }
+
+ // Store the modified custom menu items.
+ set_config("custommenuitems",$custommenuitems);
+ }
+}
+
/**
* Hook to extend navigation
* @param global_navigation $navigation Navigation object
@@ -66,6 +112,13 @@ function local_treestudyplan_extend_navigation(global_navigation $navigation) {
and not much more complex than loading a separate stylesheet for each link we want to hide).
We will add all the hrefs that should be hidden to this variable below.
*/
+
+ /*
+ In addition, the function local_treestudyplan_autofill_customusermenuitems() called below will
+ automatically generate the required lines if they are missing...
+ */
+ local_treestudyplan_autofill_customusermenuitems();
+
$hideprimaryhrefs = [];
if ($USER->id > 1) {
@@ -122,7 +175,7 @@ function local_treestudyplan_extend_navigation(global_navigation $navigation) {
|| webservicehelper::has_capability_in_any_category('local/treestudyplan:editstudyplan')
) {
$node = navigation_node::create(
- get_string("cfg_plans", "local_treestudyplan"),
+ get_string("link_editplan", "local_treestudyplan"),
new moodle_url($CFG->wwwroot . "/local/treestudyplan/edit-plan.php", array()),
global_navigation::TYPE_SYSTEM ,
null,
diff --git a/settings.php b/settings.php
index 17903e1..6b7e709 100644
--- a/settings.php
+++ b/settings.php
@@ -42,7 +42,19 @@ if ($hassiteconfig) {
$page = new admin_settingpage('local_treestudyplan_settings',
get_string('settingspage', 'local_treestudyplan', null, true));
- // GOAL AGGREGATION SETTINGS.
+ // NAVIGATION
+ $page->add(new admin_setting_heading('local_treestudyplan/navigation_heading',
+ get_string('setting_navigation_heading', 'local_treestudyplan'),
+ get_string('settingdesc_navigation_heading', 'local_treestudyplan')
+ ));
+
+ $page->add(new admin_setting_configcheckbox('local_treestudyplan/primary_nav_autofill',
+ get_string('setting_primary_nav_autofill', 'local_treestudyplan'),
+ get_string('settingdesc_primary_nav_autofill', 'local_treestudyplan'),
+ true,
+ ));
+
+ // OUTCOME AGGREGATION SETTINGS.
$page->add(new admin_setting_heading('local_treestudyplan/aggregation_heading',
get_string('setting_aggregation_heading', 'local_treestudyplan'),
get_string('settingdesc_aggregation_heading', 'local_treestudyplan')
diff --git a/version.php b/version.php
index 462abc9..1db8419 100644
--- a/version.php
+++ b/version.php
@@ -22,11 +22,11 @@
defined('MOODLE_INTERNAL') || die();
$plugin->component = 'local_treestudyplan'; // Recommended since 2.0.2 (MDL-26035). Required since 3.0 (MDL-48494).
-$plugin->version = 2023090300; // YYYYMMDDHH (year, month, day, iteration).
+$plugin->version = 2023090400; // YYYYMMDDHH (year, month, day, iteration).
$plugin->requires = 2021051700; // YYYYMMDDHH (This is the release version for Moodle 3.11).
$plugin->release = "1.0.0";
-$plugin->maturity = MATURITY_RC;
+$plugin->maturity = MATURITY_STABLE;
// Supported from Moodle 3.11 to 4.1 (4.2 not yet tested).
$plugin->supported = [ 311, 401 ];