Local is processed after all blocks before output and settings nav is accessible through $PAGE. So local can extend settings navigation if you don't constrain yourself to the "real" purpose of the available API (plugin_extends_navigation(global_navigation $navigation)).
Itamar Tzadok
Posts made by Itamar Tzadok
Which data in your main Moodle database you need to extract?
If that's user and group info, it is retrieved by default for every entry in the dataform per the entry owner, and you can choose which part of it to display and how.
You can use the database module for that. The whole lesson is one entry form which you can design to show the static content and input text fields in designated places. Completing the lesson is by adding an entry. You can set the activity to require approval and not approve any entry, and participants wouldn't be able to see any entries other than their own. You can set the activity to allow only one entry per participant if that's a requirement. etc.
In site admin -> security -> site policies, enable trusted content.
To include a js file you add a script tag like the following:
<script type="text/javascript" src="url-to-the-designated-js-file"></script>