Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-84799

bbbext can extend bigbluebuttonbn_extend_settings_navigation

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • 5.1
    • BigBlueButton
    • MOODLE_501_STABLE
    • Hide

      Requirements

      1. Moodle is visible from outside
      2. A BigBlueButton server is setup to enable analytics events:

      Setup

      1. Login as admin.
      2. Go to Site administration > Plugins > Manage activities and enable the BigBlueButton plugin.
      3. Go to BBB settings and configure the BigBlueButton server URL and BigBlueButton shared secret.
      4. Go to Site administration > Plugins > BigBlueButton > Experimental Settings and enable Register live sessions (bigbluebuttonbn_meetingevents_enabled)
      5. Go to Site administration > Development > and enable DEBUG_DEVELOPER.
      6. Install the subplugin https://github.com/jfederico/moodle-bbbext_b3dummy_override_settings_navigation and make sure it is enabled:

        git clone https://github.com/jfederico/moodle-bbbext_b3dummy_override_settings_navigation mod/bigbluebuttonbn/extension/b3dummy_override_settings_navigation

      7. Install the subplugin https://github.com/jfederico/moodle-bbbext_b3dummy_append_settings_navigation and make sure it is enabled:

        git clone https://github.com/jfederico/moodle-bbbext_b3dummy_append_settings_navigation mod/bigbluebuttonbn/extension/b3dummy_append_settings_navigation

      8. Create a BigBlueButton activity in the course.
      9. Go to the Activity settings and enable completion by events.

      Testing the extensions can implement *_override_extend_settings_navigation and  *_append_extend_settings_navigation

      • Go to the course and access the BigBlueButton activity. In the Navigation Menu, the option Validate completion is replaced by Validate completion by override
      • Go to the plugin management and disable the extension BigBlueButton B3Dummy for Override Settings Navigation and access the BigBlueButton activity. In the Navigation Menu, the option Validate completion is visible and  Validate completion by append has been added

      Show
      Requirements Moodle is visible from outside A BigBlueButton server is setup to enable analytics events: To set up the BBB server, you can register at https://registration-portal.blindsidenetworks.com/ to obtain credentials. Setup Login as admin. Go to Site administration > Plugins > Manage activities and enable the BigBlueButton plugin. Go to BBB settings and configure the BigBlueButton server URL and BigBlueButton shared secret. Go to Site administration > Plugins > BigBlueButton > Experimental Settings and enable Register live sessions (bigbluebuttonbn_meetingevents_enabled) Go to Site administration > Development > and enable DEBUG_DEVELOPER. Install the subplugin https://github.com/jfederico/moodle-bbbext_b3dummy_override_settings_navigation  and make sure it is enabled: git clone https: //github.com/jfederico/moodle-bbbext_b3dummy_override_settings_navigation mod/bigbluebuttonbn/extension/b3dummy_override_settings_navigation Install the subplugin https://github.com/jfederico/moodle-bbbext_b3dummy_append_settings_navigation and make sure it is enabled: git clone https: //github.com/jfederico/moodle-bbbext_b3dummy_append_settings_navigation mod/bigbluebuttonbn/extension/b3dummy_append_settings_navigation Create a BigBlueButton activity in the course. Go to the Activity settings and enable completion by events. Testing the extensions can implement *_override_extend_settings_navigation and  *_append_extend_settings_navigation Go to the course and access the BigBlueButton activity. In the Navigation Menu, the option Validate completion is replaced by Validate completion by override Go to the plugin management and disable the extension BigBlueButton B3Dummy for Override Settings Navigation and access the BigBlueButton activity. In the Navigation Menu, the option Validate completion is visible and  Validate completion by append has been added
    • Hide

      Code verified against automated checks.

      Checked MDL-84799 using repository: https://github.com/jfederico/moodle.git

      More information about this report

      Built on: Tue Apr 22 13:26:13 UTC 2025

      Show
      Code verified against automated checks. Checked MDL-84799 using repository: https://github.com/jfederico/moodle.git main (0 errors / 0 warnings) [branch: MDL-84799 | CI Job ] More information about this report Built on: Tue Apr 22 13:26:13 UTC 2025
    • Show
      Launching automatic jobs for branch MDL-84799 https://ci.moodle.org/view/Testing/job/DEV.02%20-%20Developer-requested%20PHPUnit/19099/ PHPUnit (sqlsrv) https://ci.moodle.org/view/Testing/job/DEV.01%20-%20Developer-requested%20Behat/65298/ Behat (NonJS - boost and classic) https://ci.moodle.org/view/Testing/job/DEV.01%20-%20Developer-requested%20Behat/65299/ Behat (Firefox - boost) --> unrelated https://ci.moodle.org/view/Testing/job/DEV.01%20-%20Developer-requested%20Behat/65300/ Behat (Firefox - classic) --> unrelated https://ci.moodle.org/view/Testing/job/DEV.01%20-%20Developer-requested%20Behat/65301/ App tests (stable app version) Built on: Tue Apr 22 14:25:16 UTC 2025

      Currently, the bigbluebuttonbn_extend_settings_navigation function in the BigBlueButtonBN plugin does not provide a standardized way for extensions (subplugins) to add their own navigation items. This limitation prevents modular customization of the navigation menu by other plugins that extend BigBlueButtonBN.

      To improve flexibility and maintainability, we propose adding a mechanisms that allows subplugins to hook into the navigation system and contribute their own menu items dynamically.

      Solution

      • Allow subplugins to override bigbluebuttonbn_extend_settings_navigation completely, ensuring that only one plugin can take control. The precedence is determined based on the extension order, with the highest-priority extension (first in order) being granted the override.
      • Allow multiple subplugins to append their own navigation items without modifying core code.
      • Ensure backward compatibility by maintaining the existing behavior.
      • Provide a standardized way for subplugins to register navigation items.
      • Implement a clear API for subplugins.

      Acceptance Criteria:

      1. Introduce a standardized way for subplugins to register navigation items within bigbluebuttonbn_extend_settings_navigation.
      2. Ensure that subplugins can add menu items without modifying core BigBlueButtonBN code.
      3. Maintain backward compatibility with existing navigation structure.
      4. Implement appropriate Moodle hooks or callback mechanisms to allow controlled extension.
      5. Provide documentation or examples demonstrating how subplugins can extend the navigation.

            jfederico Jesus Federico
            jfederico Jesus Federico
            Shamiso Jaravaza Shamiso Jaravaza
            Laurent David Laurent David
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 2 hours, 46 minutes
                2h 46m

                  Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.