-
Notifications
You must be signed in to change notification settings - Fork 0
Frontend prepis
Tento dokument mapuje přepis frontendové části staré komponenty do aktuální struktury com_joomleague_v6.
Zdroj pro porovnání:
/mnt/disk-a/dev/com_joomleague/components/com_joomleague
Cílový zdroj:
/mnt/disk-a/dev/com_joomleague_v6/components/com_joomleague
Starý strom slouží jako zdroj chování, datových dotazů a šablonových očekávání. Kód se nepřenáší 1:1. Nové provedení musí odpovídat Joomla 6 struktuře, namespacingu, databázovým API, filtrování vstupů a escapování výstupů.
Frontend v6 už obsahuje tyto hlavní pohledy:
| v6 pohled | Účel |
|---|---|
projects |
seznam projektů |
project |
detail projektu |
teams |
seznam týmů |
team |
detail týmu |
clubs |
seznam klubů |
club |
detail klubu |
person |
detail osoby |
playground |
detail hřiště |
schedule |
rozpis zápasů |
results |
výsledky |
ranking |
tabulka pořadí |
stats |
statistiky |
roster |
soupiska |
referees |
rozhodčí |
matchreport |
detail zápasu |
Z toho plyne, že část starých samostatných pohledů se má slučovat do existujících v6 pohledů místo zakládání další vrstvy historických názvů.
| Starý pohled | Stav ve v6 | Cílové řešení |
|---|---|---|
about |
nepřenášet jako komponentní view | informace patří do webu/dokumentace |
backbutton |
nepřenášet | řešit layoutem nebo navigací šablony |
footer |
nepřenášet | řešit šablonou webu |
projectheading |
pokryto sloučením | projektová hlavička je součástí jednotlivých v6 hero sekcí |
clubinfo |
pokryto sloučením | detail klubu je rozšířený ve club
|
teaminfo |
pokryto sloučením | detail týmu je rozšířený ve team
|
clubplan |
pokryto sloučením | klubový rozpis je v schedule&club_id=
|
teamplan |
pokryto sloučením | týmový rozpis je v schedule&projectteam_id=
|
nextmatch |
pokryto základním pohledem | nový v6 pohled nextmatch pro nejbližší zápas |
matrix |
pokryto sloučením | základ převzat do resultsmatrix
|
resultsmatrix |
pokryto základním pohledem | nový v6 pohled resultsmatrix
|
resultsranking |
pokryto základním pohledem | nový v6 pohled resultsranking slučuje výsledky a tabulku |
statsranking |
pokryto základním pohledem | nový v6 pohled statsranking pro pořadí podle hráčských statistik |
teamstats |
pokryto základním pohledem | nový v6 pohled teamstats pro souhrn a statistiky týmu |
eventsranking |
pokryto základním pohledem | nový v6 pohled eventsranking pro pořadí podle zápasových událostí |
rivals |
pokryto základním pohledem | nový v6 pohled rivals pro soupeře a vzájemnou bilanci týmu |
treetonode |
pokryto základním pohledem | nový v6 pohled treetonode pro turnajové stromy |
curve |
pokryto základním pohledem | nový v6 pohled curve pro vývoj pořadí po kolech |
ical |
pokryto základním pohledem | nový v6 pohled ical a kalendářový blok v schedule
|
| tipovací soutěž | rozpracováno | základ databáze a administrace je první krok; plná funkce je cílem milníku 0.40.0 |
player |
pokryto sloučením |
person obsahuje hráčskou historii a statistiky |
staff |
pokryto sloučením |
person obsahuje historii realizačního týmu |
referee |
pokryto sloučením |
person obsahuje historii rozhodčího, seznam je v referees
|
Priorita:
-
teaminfo->team -
clubinfo->club
Důvod: jde o základní informační stránky, na které budou odkazovat rozpisy, výsledky, tabulky i moduly.
Přenést chování:
- informace o týmu a klubu,
- klubová vazba týmu,
- sezóny týmu,
- počet hráčů v projektu,
- hřiště klubu,
- adresa klubu,
- odkazy na související týmy a projekty.
Stav:
-
teamplan->schedule -
clubplan->schedule
Rozpis je sloučený do společného schedule pohledu a podporuje týmový i klubový kontext.
Přenést chování:
- filtr podle
team_id, - filtr podle
club_id, - domácí/venkovní zápasy,
- rozsah dat,
- řazení podle kola nebo data,
- volitelné zobrazení rozhodčích a hřiště.
Stav:
-
nextmatch-> nový v6 pohlednextmatch -
matchreport-> detail zápasu
nextmatch umí najít konkrétní nebo nejbližší naplánovaný zápas a používá sdílený detail zápasu s preview, rozhodčími, porovnáním týmů a vzájemnými zápasy.
Přenést chování:
- nalezení konkrétního nebo nejbližšího zápasu,
- domácí a hostující tým,
- rozhodčí,
- pořadí týmů v tabulce před zápasem,
- historické zápasy mezi týmy,
- základní statistiky před zápasem.
Priorita:
matrixresultsmatrixresultsranking
Důvod: jde o pokročilejší soutěžní výstupy. Navazují na stabilní výsledky a tabulku.
Přenést chování:
- matice zápasů tým proti týmu,
- filtr podle divize,
- filtr podle kola,
- kombinace výsledků a tabulky na jedné stránce.
Priorita:
-
statsranking->stats -
teamstats->statsneboteam -
eventsranking->stats
Důvod: statistiky potřebují sjednotit datovou logiku hráčů, týmů, událostí a pozic.
Přenést chování:
- pořadí hráčů podle vybrané statistiky,
- pořadí hráčů podle událostí,
- týmová maxima a minima,
- filtry podle týmu, divize a projektu,
- stránkování.
Priorita:
rivals-
icalDůvod: mají užší použití a mohou počkat, dokud jsou stabilní hlavní soutěžní výstupy.
Poznámky:
-
rivalsmá zůstat týmový pohled na soupeře a vzájemné zápasy. -
treetonodepatří k turnajovým stromům a má základní veřejný bracket bez starých grafických spojnic. -
icalmá vzniknout až nad novýmschedule, ne jako izolovaný port staré logiky. -
curveje přepsaný jako moderní vývoj pořadí po kolech bez staré grafové knihovny.
Priorita:
- tipovací soutěž jako navazující core oblast
Důvod: stará JoomLeague tipovací soutěž obsahovala jako součást hlavního core. Ve v6 se k ní má vrátit až po stabilizaci základních výstupů soutěží, rozpisů, výsledků, tabulek a statistik.
Přenést nebo znovu navrhnout:
- vazbu tipů na zápasy,
- vazbu na Joomla uživatele,
- pravidla bodování,
- uzávěrky tipování,
- přehled pořadí tipujících,
- administraci soutěže a pravidel,
- frontend pro zadání tipů,
- ochranu proti změně tipů po uzávěrce.
- Vstupy číst přes Joomla input API a typované metody.
- Databázové dotazy psát přes query builder.
- Hodnoty bindovat, ne skládat do SQL řetězců.
- Výstup v šablonách escapovat.
- Opakovanou soutěžní logiku držet v modelech nebo službách, ne v
tmpl. - Staré helpery nepřenášet celé; přebírat jen potřebné chování.
- Nové view přidat jen tam, kde nejde přirozeně rozšířit existující v6 view.
- Každý přenesený výstup musí mít minimálně základní prázdný stav bez PHP warningů.
- Po změně spustit validátory a sestavení balíčku.
První balík pro implementaci:
teaminfo -> team
clubinfo -> club
Konkrétní kroky:
- Porovnat staré modely
teaminfo.phpaclubinfo.phps v6TeamModel.phpaClubModel.php. - Doplnit chybějící datové metody do v6 modelů.
- Rozšířit šablony
tmpl/team/default.phpatmpl/club/default.php. - Doplnit chybějící jazykové klíče pro EN/CZ.
- Sestavit balíček.
- Otestovat na demo instalaci.
JoomLeague pro Joomla 6 - klucon/com_joomleague