Instructor Frontend Builder Runtime and API

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.phpInstructorFrontendBuilderRuntime::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_scope
  • brm_mode
  • brm_structure
  • brm_level
  • brm_parent
  • brm_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_roles
  • brm_instructor_builder_structures
  • brm_instructor_builder_allow_publish
  • brm_instructor_builder_dashboard_page_id
  • brm_instructor_builder_manager_page_id
  • brm_instructor_builder_editor_page_id

Ownership Split

  • InstructorFrontendBuilderRuntime owns runtime boot and query-var registration.
  • InstructorAccessService owns enabled-structure selection, allowed roles, page assignment reads, and write/publish capability checks.
  • InstructorReadService owns validated scope-tree reads for frontend rendering.
  • InstructorFrontendBatchRuntime owns 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: ContentFieldsFormIntegration with a mapped Post ID field and InstructorAccessService::user_can_edit_item_content() authorization fallback.
  • Scope assignment meta box: InstructorScopeAssignmentMetaBox

Edit Guidance

  • Start in InstructorFrontendBuilderRuntime for bootstrap and route questions.
  • Start in InstructorFrontendBuilderSettingsService for page assignment and settings reads.
  • Start in InstructorAccessService for permission and capability decisions.
  • Start in InstructorReadService when the frontend needs a different scope-tree read model.
Get BricksMembers

Start Building Your Membership Site Today

Create, sell, and manage your content without limits. BricksMembers gives you everything you need to build membership and LMS sites with Bricks Builder.

Lifetime updates & bug fixes • Premium support • 0% transaction fees • 60-day money-back guarantee