Guide

Quiz Cast architecture

Bootstrap: includes/class-bootstrap.php. Blocks register from build/ with category prc-quiz-cast. REST and session cleanup are separate modules.

Modes and rewrites

Query varRewriteRole
quizCastquiz/{slug}/cast/Host UI
quizPlayquiz/{slug}/play/Player UI

Research-team additional rules mirror cast under team prefixes. template_include injects the play template; body classes mark cast/play for CSS.

Block groups

Host tree includes create, setup, lobby, session code/QR, intro, questions, current question/answers, progress, results, resume, and timer blocks (prc-quiz-cast/host*, question-timer).

Player tree includes intro, waiting, questions, current question/answers, progress, and results (prc-quiz-cast/player*).

Loading uses prc-quiz-cast/loading. Editor previews for player blocks wrap content in MobileSafariChrome from @prc/components.

A block_type_metadata filter can attach cast blocks to the Quiz Builder controller allow-list where needed.

Firebase sessions

Rest_API creates session documents with a unique 4-letter join code (retry budget 10). Pace modes: host, self. Timer action values: reveal, advance, none. Finalize persists results into WordPress (Quiz Builder archetypes/groups helpers) and cleans Firebase. Session_Cleanup handles abandoned sessions.

Dependencies

  • Quiz Builder (PRC\Platform\Quiz\Archetypes, Groups)
  • Firebase via platform prc-firebase / VIP private dir service account
  • Avatar packs in includes/class-avatars.php

Was this helpful?