The Instructor Frontend Builder turns selected structures into instructor-manageable frontend trees with separate dashboard, manager, and editor routes. The current runtime owner is src/Modules/InstructorFrontendBuilder/InstructorFrontendBuilderRuntime.php.
Module Gate and Entry Points
- Module flag:
brm_enable_instructor_frontend_builder - Bootstrap path:
src/Bootstrap/BootstrapCoordinator.php→InstructorFrontendBuilderRuntime::boot() - Admin page:
admin.php?page=brm_instructor_builder - Access owner:
src/Modules/InstructorFrontendBuilder/InstructorAccessService.php - Read owner:
src/Modules/InstructorFrontendBuilder/InstructorReadService.php
Query Vars and Routing
The runtime registers these query vars for scope-aware frontend routes:
brm_scopebrm_modebrm_structurebrm_levelbrm_parentbrm_item
InstructorPageGate validates the request context and routes the user into the assigned dashboard, manager, or editor page layouts.
Manager templates should expose refresh-required state through normal Bricks surfaces. Use the brm_instructor_recompute_required condition for a builder-authored notice, output {brm_instructor:recompute_notice_message} in its text, and link the refresh button to {brm_instructor:manager_recompute_url}. The frontend runtime may hydrate elements marked with data-brm-instructor-recompute-notice, but it does not create the notice markup.
Key Options
brm_instructor_builder_rolesbrm_instructor_builder_structuresbrm_instructor_builder_allow_publishbrm_instructor_builder_dashboard_page_idbrm_instructor_builder_manager_page_idbrm_instructor_builder_editor_page_id
Ownership Split
InstructorFrontendBuilderRuntimeowns runtime boot and query-var registration.InstructorAccessServiceowns enabled-structure selection, allowed roles, page assignment reads, and write/publish capability checks.InstructorReadServiceowns validated scope-tree reads for frontend rendering.InstructorFrontendBatchRuntimeowns batch-backed refresh behavior for larger trees.
Transport Adapters
- Admin settings page:
InstructorBuilderPage - Settings read owner:
InstructorFrontendBuilderSettingsService - Bricks Forms action pack:
InstructorBuilderFormIntegration - Content Fields for existing instructor items:
ContentFieldsFormIntegrationwith a mapped Post ID field andInstructorAccessService::user_can_edit_item_content()authorization fallback. - Scope assignment meta box:
InstructorScopeAssignmentMetaBox
Edit Guidance
- Start in
InstructorFrontendBuilderRuntimefor bootstrap and route questions. - Start in
InstructorFrontendBuilderSettingsServicefor page assignment and settings reads. - Start in
InstructorAccessServicefor permission and capability decisions. - Start in
InstructorReadServicewhen the frontend needs a different scope-tree read model.