Program Planner DOCS & HELP

The Monitor Hub [event_monitor_hub]

The Kiosk Hub [event_monitor_hub] solves the single largest logistical headache on set-up day: a universal visual launchpad for every screen – tap to select instead of typing long URLs on on-screen keyboards.

The Problem the Hub Solves

At any convention you quickly deploy ten to twenty displays: a ticker in the foyer, room monitors outside halls, tablets at workshop rooms. Every display needs its own URL:

  • https://my-congress.com/display-hall-a/
  • https://my-congress.com/display-hall-b/
  • https://my-congress.com/ticker/

Typing such addresses on TV remotes or Android sticks is error-prone and frustrating. The hub simplifies setup to: Open hub URL → Tap location → Tap room → Tap “Set as default”.

The Two Levels of the Hub

The hub interface operates across two levels:

  • Level 1 – Location Selection (renderLocations): Every location (building, hall) appears as an image tile under header "Select Location".
  • Level 2 – Display Selection (renderDisplays): After selection, displays the Live Ticker tile and all room monitors. Header shows location name and "« Back to Locations" link.
Single Location Bypass

If exactly one location is defined in settings, Level 1 is skipped automatically. The screen immediately displays the ticker and monitors without redundant back links.

Level 1: the locations as tiles with images, the time at the top right.
Level 2 after tapping a location: the live ticker and all monitors of that location, each with “Set as default”; on the left the way back to the locations.

Registering Locations in WordPress

Open Events → Settings → Live-Ticker & Monitor and find Hub Locations. Enter one line per location:

Configuration Syntax
Location Name | URL to Live Ticker | Monitor Name=URL, Monitor Name=URL

Example with named monitors:

Example: Named Monitors
Main Building | https://my-event.com/ticker/ | Hall A=https://my-event.com/hall-a/, Hall B=https://my-event.com/hall-b/
Workshop Wing | https://my-event.com/ticker-ws/ | Room 1=https://my-event.com/room-1/, Room 2=https://my-event.com/room-2/

Parser Rules (ecrm_get_hub_locations)

  1. Empty lines are discarded.
  2. A line counts only from two fields onwards (name and ticker address).
  3. The ticker address may remain empty (Location | | Room=URL) – displaying monitors only.
  4. The third field splits at commas; = separates display name and target address.
  5. Without names, the parser assigns "Monitor 1", "Monitor 2" numbered by position.
  6. Security: All URLs pass through esc_url_raw(); javascript: addresses are discarded.

Automatic Tile Images (ecrm_hub_tile_image)

The plugin matches tile names against the venue taxonomy under Events → Venues: first by exact name, then by slug. When a venue matches, its featured image appears (including inheritance from parent venues). Naming rooms in the hub identically to your venue taxonomy pulls images with zero extra configuration!

Publishing the Hub Page

Create a new unlinked page (e.g. /displays/) and insert the shortcode:

Hub Shortcode
[event_monitor_hub]

Operating on the Display Device

  1. 1
    Open Hub URL

    Locations appear as interactive tiles.

  2. 2
    Select Location

    Reveals the live ticker and all connected room monitors.

  3. 3
    Select Display

    Tap the desired hall – display opens immediately in full screen.

  4. 4
    “Set as default”

    Tap to lock this display into the device's persistent memory.

  5. 5
    Reset Default

    If rolling screens are reassigned, tap "Reset Default" to pick a new room.

The Automatic 5-Second Countdown

Tapping "Set as default" saves three keys in the browser's localStorage:

  • ec_hub_default_url – target display address
  • ec_hub_default_name – display name for start screen
  • ec_hub_default_loc – location name for header

On subsequent boots, the hub shows the assigned room with a 5-second countdown and auto-launches. A Cancel button stops the countdown and returns to the tile grid.

Device-Isolated Memory

Memory operates per device and per browser strictly inside local storage. Twenty screens remember twenty different rooms completely independently with zero server configuration.