Hype5 Stage 1.0.2 · Pre-release

Hype5 Theater integration

Stage enhances Hype5 Theater's presentation but never becomes a dependency. It reads the plugin's public contracts and never stores or changes the plugin's data.

On this page

What changes when the plugin is active

Area With Hype5 Theater
Home page The Marquee of next performances, the company of the next production and the poster wall. See Home page.
Production pages Stage's composition: title, teaser, first creative credits and facts, with the poster and next-performance card beside them; cast with a spotlight portrait; schedule. Every layout the plugin offers is styled.
Person pages Profile with current and past productions as a roles list.
Venue pages The venue with its upcoming performances.
Lists The productions list as a poster wall, the people directory in 2:3 portrait cards, and the schedule grouped by month — following the layouts chosen in the plugin's Appearance.
Navigation Without a main menu, the schedule, productions and people are listed in the header. The header button links to the schedule by default.

Stage honours every Appearance choice exactly as saved, including section order and disabled sections, labels and the plugin's custom CSS.

Version gate

The enhancements switch on only when:

  • Hype5 Theater 0.6.17 or later with the Phase 5K presentation contract is active — Stage 1.0.2 was built and tested against the Phase 5K build (fe980e3) and tested with Hype5 Theater 0.7.0 release candidate, presentation API 1.0, which passes the gate (Theater 0.7.0 names Stage 1.0.2 as its minimum), and
  • the plugin's production post type, its renderer class and its visibility service (with the public to everyone, unlocked and password required rules) exist.

Several earlier pre-release builds of the plugin also report the version number 0.6.17 (see Documentation versions); Theater 0.7.0 is the first version with its own number. Because the number alone does not identify the build, Stage checks for the visibility service itself: with a 0.6.17 build made before Phase 5K, Stage runs as a plain theme and the plugin renders its own pages.

Every call into the plugin is wrapped so that an error falls back to the plain theme (and is logged when WP_DEBUG is on); the visibility checks fail closed, so an error hides information rather than showing it. If the plugin's registry moves a template to a newer major version than Stage's override, Stage uses the plugin's own template for that part. In the administration (for example Appearance previews) the plugin's templates are always used.

To switch the enhancements off while keeping the plugin active:

add_filter( 'hype5_stage_theater_enhancements', '__return_false' );

Interfaces Stage uses

Stage reads only the plugin's public surfaces:

  • the full production and person renderers (the same as [hype5_production] and [hype5_person]);
  • the collection renderer for the venue page's schedule;
  • template overrides in its hype5-theater/ folder, following the plugin's override contract;
  • documented filters: hype5/theater/template/located, hype5/theater/view/production, hype5/theater/view/performance and hype5t_use_theme_single_template;
  • the query and view services listed in Presentation services, for its home page;
  • the plugin's visibility rules (public to everyone and unlocked for this visitor), described below.

Some of the services Stage uses for its home page are classified Internal by the plugin, which means they may change in any release. If one changes, the affected home-page section is left out; production, person, schedule and list pages keep working through the plugin's own renderer.

Private and protected content

Stage has no visibility rule of its own. Since 1.0.2 it applies Hype5 Theater's two rules exactly where the plugin's own presentation applies them:

Rule Where Stage uses it
Public to everyone — published without a password, both in the original language and in the version shown in the reader's language. It holds for every visitor, also after a password has been entered, because these pages may be cached and served to everyone. Every page that is not the production's own page: the home page Marquee, the "then…" line and the count of performances ahead, the company row, the poster wall, the menu's Next on stage, production cards, a person's roles list, search results and archives, and Stage's own additions to the header of a production embedded in another page (the rest of such an embed is the plugin's output; see the note on caching below).
Unlocked for this visitor — WordPress's password check, extended by the plugin to every language version of the production. The production's own page (in any of its languages): the title and WordPress's password form until the password is entered, then the whole page with its dates and ticket offers.

What this means for visitors:

  • Unpublished and private productions, people and pages are never shown by Stage's templates to visitors; breadcrumbs never name a private or draft parent page.
  • Productions that are not public to everyone — for example password-protected ones — are left out of the home page Marquee, Next on stage, the poster wall and the count of performances ahead, also after a visitor has entered the password. On other lists (production cards, roles lists) they appear as locked cards: title, address and the plugin's premiere label and classifications, without a poster, date, teaser or credits. Titles and addresses of published productions stay public, as in WordPress.
  • Performances the plugin withholds are never printed: Stage's production.performance override (version 1.1.0) outputs nothing for them, and its schedule, ticket-offer and hero templates ignore them.
  • Search results and archives show only the title of a production whenever the plugin's rule cannot be checked.
  • Production pages that depend on a password anywhere in their language chain are sent with no-cache headers, so a page cache does not keep the unlocked version. WordPress itself does this only for a post's own password.
  • Ticket buttons come only from offers the plugin marks purchasable; Stage never builds a purchase link.

Caching. With 1.0.2 the home page, menus and lists are the same for every visitor and safe for a page cache that honours no-cache headers. Two cases are the plugin's responsibility, and Hype5 Theater 0.7.0 covers them: an ordinary page that embeds a password-protected production with [hype5_production] shows it as protected to every visitor, also after the password was entered, and a schedule that the page's address filters to one protected production is sent with no-cache headers. With an earlier 0.6.17 build of the plugin, keep such pages out of a page cache. See Known limitations.

Styles

While Stage is active, the plugin's public stylesheets are loaded into a CSS cascade layer (hype5-theater). The order is:

  1. Stage's element defaults,
  2. the plugin's styles (layered),
  3. Stage's component styles,
  4. the plugin's inline colour tokens and the site's Hype5 custom CSS, which still win.

The plugin's files and settings are untouched; under any other theme the stylesheets load normally. Only WordPress's own unmodified stylesheet tags are converted; a tag another plugin has changed is left alone. The converted tag is an inline <style> element — see Content Security Policy. To load the plugin's styles without a layer:

add_filter( 'hype5_stage_layer_theater_styles', '__return_false' );

The plugin's ten public colour tokens are mapped to Stage's Lights scheme on Hype5 elements inside Stage. The palette saved in the plugin's Appearance is unchanged and applies again under other themes.

Clean single templates

If the plugin's clean single templates setting is on, Stage keeps its own single templates through the plugin's documented hype5t_use_theme_single_template filter. They render the same plugin composition inside Stage's header, footer and main area. The setting itself is not changed.

Template overrides

Stage 1.0.2 overrides 21 plugin templates. With the Phase 5K build and with Theater 0.7.0 (whose template versions are unchanged), System Status reports all 21 as Current. The only template that changed in Phase 5K, production.performance (1.0.0 → 1.1.0, which adds the withheld state), is overridden at version 1.1.0; for every performance that is not withheld its output is identical to 1.0.0, so the schedule looks the same.

Changes in 1.0.2

Stage 1.0.2 is a security and compatibility update; the design, styles, settings and texts are unchanged.

  • Protected productions no longer appear on the home page or in the menu. Stage 1.0.1 could print the date of a production whose reader's-language version carried a password (in the Marquee and the menu's Next on stage) and counted it among the performances ahead; after a visitor had entered a password, the home page showed that production's time, venue, ticket price and cast. Stage 1.0.2 applies the plugin's public to everyone rule there, as described above.
  • Template override production.performance is version 1.1.0; the Review recommended status of 1.0.1 is resolved.
  • No-cache headers for production pages whose password chain is set; poster wall, search, archive and card changes from an independent security review.
  • Version gate: the enhancements require the Phase 5K presentation contract.

If you run Stage 1.0.1 with the Phase 5K build of Hype5 Theater, or before updating the plugin to 0.7.0, update to 1.0.2. See Updating Hype5 Stage and the changelog.