' . esc_html($text !== '' ? $text : __('No data yet.', 'blyzer-events')) . ''; } private static function crest(string $logo, string $initials, string $size = '28', string $class = 'bze-crest'): string { return '{{#' . $logo . '}}{{/' . $logo . '}}' . '{{^' . $logo . '}}{{/' . $logo . '}}'; } private static function teamCell(string $logo, string $initials, string $url, string $title): string { return '' . self::crest($logo, $initials) . '{{#' . $url . '}}{{' . $title . '}}{{/' . $url . '}}{{^' . $url . '}}{{' . $title . '}}{{/' . $url . '}}'; } private static function abbr(string $short, string $long): string { return '' . esc_html($short) . ''; } private static function duel(): string { $side = '
' . self::crest('logo', 'initials', '24') . '{{#url}}{{name}}{{/url}}{{^url}}{{name}}{{/url}}' . '{{scoreLabel}}
'; return '
{{#one}}' . $side . '{{/one}}{{#two}}' . $side . '{{/two}}
'; } public static function all(): array { $team = esc_html__('Team', 'blyzer-events'); $mside = '
' . self::crest('logo', 'initials', '24') . '{{name}}{{score}}
'; return [ 'event' => '{{#event}}
' . '{{#banner}}{{/banner}}' . '
' . '' . '
' . '{{#isLive}}{{/isLive}}{{statusLabel}}' . '{{#formLabel}}{{formLabel}}{{/formLabel}}' . '{{#levelLabel}}{{levelLabel}}{{/levelLabel}}' . '{{#gameTitle}}{{#gameIcon}}{{/gameIcon}}{{gameTitle}}{{/gameTitle}}' . '

{{title}}

' . '{{#organizer}}

' . esc_html__('Organised by', 'blyzer-events') . ' {{organizer}}

{{/organizer}}' . '
' . '{{#countdown}}

{{/countdown}}' . '{{#hasTiles}}
{{#tiles}}
{{label}}
{{value}}
{{/tiles}}
{{/hasTiles}}' . '
{{#url}}' . esc_html__('Follow on Blyzer.net', 'blyzer-events') . '{{/url}}' . '{{#canApply}}' . esc_html__('Register a team', 'blyzer-events') . '{{/canApply}}' . '{{#stream}}' . esc_html__('Watch the stream', 'blyzer-events') . '{{/stream}}
' . '
{{/event}}{{^event}}' . self::empty() . '{{/event}}', 'teams' => '{{#hasItems}}{{/hasItems}}{{^hasItems}}' . self::empty() . '{{/hasItems}}', 'groups' => '{{#hasItems}}
{{#items}}
' . '
{{badge}}

{{title}}

' . '{{#hasPlaces}}
' . '' . '' . '' . '' . '{{#showExtra}}{{/showExtra}}' . '' . '{{#showExtra}}{{/showExtra}}' . '' . '' . '{{#showDiff}}{{/showDiff}}' . '' . '{{#showForm}}{{/showForm}}' . '{{#places}}' . '' . '' . '{{#showExtra}}{{/showExtra}}{{#showExtra}}{{/showExtra}}' . '{{#showDiff}}{{/showDiff}}' . '' . '{{#showForm}}{{/showForm}}' . '{{/places}}
{{title}}
#' . $team . '' . self::abbr(_x('P', 'played', 'blyzer-events'), __('Played', 'blyzer-events')) . '' . self::abbr(_x('W', 'wins', 'blyzer-events'), __('Wins', 'blyzer-events')) . '' . self::abbr(_x('OTW', 'wins after overtime', 'blyzer-events'), __('Wins after overtime', 'blyzer-events')) . '' . self::abbr(_x('D', 'draws', 'blyzer-events'), __('Draws', 'blyzer-events')) . '' . self::abbr(_x('OTL', 'losses after overtime', 'blyzer-events'), __('Losses after overtime', 'blyzer-events')) . '' . self::abbr(_x('L', 'losses', 'blyzer-events'), __('Losses', 'blyzer-events')) . '' . esc_html__('Score', 'blyzer-events') . '' . self::abbr('+/−', __('Goal difference', 'blyzer-events')) . '' . self::abbr(_x('Pts', 'points', 'blyzer-events'), __('Points', 'blyzer-events')) . '' . esc_html__('Form', 'blyzer-events') . '
{{position}}' . self::teamCell('teamLogo', 'initials', 'teamUrl', 'teamTitle') . '{{played}}{{wins}}{{winsExtraTime}}{{ties}}{{lossesExtraTime}}{{losses}}{{scoreLabel}}{{diffLabel}}{{points}}{{#formItems}}{{label}}{{/formItems}}
' . '{{#legend}}

{{teamsLabel}}{{#rule}} – {{rule}}{{/rule}}

{{/legend}}{{/hasPlaces}}' . '{{^hasPlaces}}' . self::empty(__('No teams in this group yet.', 'blyzer-events')) . '{{/hasPlaces}}' . '
{{/items}}
{{/hasItems}}{{^hasItems}}' . self::empty() . '{{/hasItems}}', 'playoff_rounds' => '{{#hasItems}}
{{#brackets}}
' . '{{#title}}

{{title}}

{{/title}}' . '{{#hasPills}}{{/hasPills}}' . '
' . '{{#rounds}}
' . '
{{badge}}{{title}}
' . '
{{#pairs}}
{{#slots}}
' . self::duel() . '
{{/slots}}
{{/pairs}}
' . '
{{#extras}}
{{title}}
{{#duels}}' . self::duel() . '{{/duels}}
{{/extras}}
' . '
{{/rounds}}' . '
{{/brackets}}
{{/hasItems}}{{^hasItems}}' . self::empty() . '{{/hasItems}}', 'matches' => '{{#hasItems}}
{{#sections}}
' . '{{#hasHead}}
{{#badge}}{{badge}}{{/badge}}

{{title}}

{{/hasHead}}' . '
{{/sections}}
{{/hasItems}}{{^hasItems}}' . self::empty(__('No matches yet.', 'blyzer-events')) . '{{/hasItems}}' . '{{#moreUrl}}

' . esc_html__('Full schedule on Blyzer.net', 'blyzer-events') . '

{{/moreUrl}}', 'players' => '{{#hasItems}}
' . '' . '' . '' . '{{#statistics}}{{/statistics}}' . '{{#showSum}}{{/showSum}}' . '{{#items}}' . '' . '' . '' . '{{#stats}}{{/stats}}' . '{{#showSum}}{{/showSum}}' . '{{/items}}
' . esc_html__('Players', 'blyzer-events') . '
#' . esc_html__('Player', 'blyzer-events') . '' . $team . '{{label}}' . self::abbr(_x('Pts', 'points', 'blyzer-events'), __('Points', 'blyzer-events')) . '
{{rank}}' . self::crest('photo', 'initials', '28', 'bze-crest bze-crest--round') . '{{#url}}{{name}}{{/url}}{{^url}}{{name}}{{/url}}' . '{{#dress}}#{{dress}}{{/dress}}' . '{{#positionLabel}}{{positionLabel}}{{/positionLabel}}' . self::teamCell('teamLogo', 'teamInitials', 'teamUrl', 'teamTitle') . '{{value}}{{sumValue}}
{{/hasItems}}{{^hasItems}}' . self::empty(__('No player statistics yet.', 'blyzer-events')) . '{{/hasItems}}' . '{{#moreUrl}}

' . esc_html__('All statistics on Blyzer.net', 'blyzer-events') . '

{{/moreUrl}}', 'race_stages' => '{{#hasItems}}
{{#items}}
' . '
{{badge}}

{{title}}

' . '{{#dateLabel}}{{#datetime}}{{/datetime}}{{^datetime}}{{dateLabel}}{{/datetime}}{{/dateLabel}}
' . '{{statusLabel}}
' . '{{#description}}

{{description}}

{{/description}}' . '{{#hasResults}}
' . '' . '' . '{{#showPoints}}{{/showPoints}}' . '{{#results}}' . '' . '{{#showPoints}}{{/showPoints}}{{/results}}
{{title}}
#' . $team . '' . esc_html__('Result', 'blyzer-events') . '' . self::abbr(_x('Pts', 'points', 'blyzer-events'), __('Points', 'blyzer-events')) . '
{{rankLabel}}' . self::teamCell('teamLogo', 'initials', 'teamUrl', 'teamTitle') . '{{valueLabel}}{{pointsLabel}}
{{/hasResults}}' . '{{^hasResults}}' . self::empty(__('No results yet.', 'blyzer-events')) . '{{/hasResults}}' . '
{{/items}}
{{/hasItems}}{{^hasItems}}' . self::empty() . '{{/hasItems}}', 'race_standings' => '{{#hasItems}}
' . '' . '{{#showStages}}{{/showStages}}' . '' . '{{#items}}' . '' . '{{#showStages}}{{/showStages}}' . '{{/items}}
' . esc_html__('Overall standings', 'blyzer-events') . '
#' . $team . '' . esc_html__('Stages', 'blyzer-events') . '' . esc_html__('Total', 'blyzer-events') . '
{{rankLabel}}' . self::teamCell('teamLogo', 'initials', 'teamUrl', 'teamTitle') . '{{stagesLabel}}{{totalLabel}}
{{/hasItems}}' . '{{^hasItems}}' . self::empty(__('No standings yet.', 'blyzer-events')) . '{{/hasItems}}', ]; } }