Úskalí reportů TNG

Tipy a návody pro tvorbu vlastních sestav a výstupů z TNG.
Falt
Příspěvky: 263
Registrován: 30 srp 2013 23:48
Kontaktovat uživatele:

Úskalí reportů TNG

Příspěvekod Falt » 13 srp 2014 10:25

Co vlastně reporty jsou a k čemu mají sloužit? Představují dvě skupiny graficky jednoduchých výstupů
• pro návštěvníky stránek
• pro administraci stránek.

Reporty pro návštěvníky
TNG nabízí pro návštěvníky stránek bohatou škálu výrazových prostředků pro prezentaci genealogických, historických, místních, ale i folklorních údajů a pro prezentaci mediálních výstupů. Je jen na autorovi stránek, které z nich a jak dovedně využije.
Reporty mají omezené výrazové možnosti, vždy je to nakonec tabulka, případně o několika stránkách. Proto nemá valný smysl nabízet širokou nabídku reportů (často na stejné téma, jen z jiných zorných úhlů). Reporty připomínají statistické přehledy a lze odhadovat, že jen málo návštěvníků si v podobných výstupech bude listovat.

Navštívil jsem 28 stránek TNG, abych si upřesnil obrázek o využívání reportů pro návštěvníky. Na 14 navštívených stránkách bylo od 4 do 39 reportů, na jediné jich bylo hodně. Na polovině nenabízeli ani jeden report. Takže žádný report je vlastně standard. Výsledky vypadají v grafu takto:
MyGraph.png
MyGraph.png (2.73 KiB) Zobrazeno 2262 x


Při promýšlení zda a které reporty vložit na vlastní stránky jsem musel respektovat, že na stránkách jsou úmyslně potlačeny údaje o žijících osobách => žádný příbuzný si nevychutná znamení zvěrokruhu ani výročí narození, protože tam z žijících nikoho nenajde. Rozhodl jsem se proto omezit počet aktivních reportů (pro návštěvníky) na max. 30. Do výběru zařadím ty, které poskytnou obtížně zjistitelnou informaci, anebo informaci zprostředkují s využitím jednoduché grafiky - např. Svatby v jednotlivých dnech týdne:
Svatby.png
Svatby.png (7.29 KiB) Zobrazeno 2262 x

Proč vlastně vadí větší počet reportů? Pomineme-li dezorientaci návštěvníka (která vždy při široké nabídce nastane), je tu praktická překážka - jazykové mutace. Pokud se rozhodneme pro vícejazyčnost stránek TNG, pak budeme muset (kromě opravných módů), revidovat i všechny aktivní reporty. A podle potřeby vložit do souborů cust_text.php ve všech dotčených jazycích přeložené znění proměnných textů.
Příklad: V reportu, převzatém z německého zdroje, se vyskytuje proměnná $text['report_FrauName'], kterou jsme pro češtinu přeložili v souboru \languages\Czech-UTF8\cust_text.php jako $text['report_FrauName'] = "Příjmení nevěsty"; Závěr k příkladu: V německé mutaci bude stačit jenom kontrola, ale ve všech dalších bude potřeba zajistit překlad pro každý z jazyků v odpovídajícím souboru cust_text.php.

Reporty pro administraci
Zatímco reporty pro návštěvníky představují nástroj pro prezentaci našich výsledků na stránkách TNG, jsou reporty pro administraci neviditelné pro návštěvníky (nejsou označeny jako aktivní, takže je vidí pouze administrátor). Nemusíme je proto "šolichat" co do vzhledu a jazykové čistoty, protože cílem je shromáždit nástroje pro efektivní administraci TNG. Sem patří reporty zaměřené na podchycení chybových a chybějících údajů, kontrolní sestavy a přehledy událostí, citace pramenů, médií, poznámek, lokalit, pokud takové prověřování údajů hodláme podnikat.

Správa reportů
Pokud už máme více než 10 reportů je nejjednodušší provést v prostředí phpMyAdmin export tng_reports do LibreOffice Calc (nebo Excelu a pod.). Tak získáme aktuální přehled ve tvaru, se kterým se už dají dobře zvládat další kroky (třeba podchytit překlady hlaviček). Také lze přehled reportů vytisknout přes "tiskárnu" PDF jako rám a získáme statický snímek toho, co vidíme na obrazovce.

Pořadí reportů, které uvidí návštěvník lze upravit v TNG | Administrace | Reporty takto:
PoradReportu.jpg
PoradReportu.jpg (24.53 KiB) Zobrazeno 2262 x

Inspiraci pro nové reporty můžeme nalézt na stránkách fóra TNG. Úpravy reportů předpokládají respektování pravidel jazyka SQL. :)

Falt
Příspěvky: 263
Registrován: 30 srp 2013 23:48
Kontaktovat uživatele:

Funkčnost odkazů

Příspěvekod Falt » 05 říj 2016 17:59

Nevím, jestli je opakování matkou moudrosti, ale rozhodně se vyplatí si zopakovat základní podmínky, nutné pro správné fungování reportů v TNG. Jednou z nich je nezbytné nastavení hodnoty "Výchozí strom", které je pod Administrace>Nastavení>Základni nastavení>Vzhled a definice stránek. Pokud si nejsme jisti, aktuální hodnotu pro "Výchozí strom" si přečteme postupem Administrace>Stromy:
strom.jpg
Název stromu
strom.jpg (84.99 KiB) Zobrazeno 1785 x

Správný text je v poli Název stromu, zatímco v poli ID číslo je další důležitý údaj pro správnou funkci reportů – kód našeho stromu, který zapisujeme do SQL kódu (ten nesmí obsahovat mezery ani česká nabodeníčka).
Co se stane, když nezadáte "Výchozí strom"? Drtivá většina reportů, které zahrnují osoby prostřednictvím jejich jedinečného ID, jsou vytvořeny pomocí SQL dotazu, jenž pracuje s formulkou personID. Ta má dosadit ID správné osoby, zvýraznit ji ve výsledném reportu a po kliknutí na její ID otevřít správnou osobní stránku.
Ale ouha! Pokud není vyplněna správná hodnota pro "Výchozí strom", neotevře se osobní stránka vybrané osoby, nýbrž se objeví hláška „not found“ (TNG neví, kde má osobu z reportu hledat).

K čemu je zápis HTML kódu v syntaxi SQL dotazu
Protože se občas hodí, aby bylo možné odkazovat kupříkladu na osobní stránky i přes jména osob, je nezbytné zařídit, aby TNG tuto osobu ve výsledném reportu pouze nevypsal, ale aby ji chápal jako HTML odkaz (čili, aby po kliknutí se otevřela její osobní stránka). Pak nezbývá než si opatřit report, který s tímto řešením pracuje anebo si zápis upravit. V principu zde SQL dotaz využívá funkce concat, pomocí které se ke klasickému zápisu polí databáze v v syntaxi SQL dotazu přidají HTML operátory. Blíže viz např. https://tng.community/index.php?/forums/topic/2907-generating-html-links-on-your-reports-family-size-example/#comment-13260

Neodpustil bych si neukázat z tohoto odkazu moc pěknou ukázku reportu, který prezentuje Přehled rodin podle počtu dětí s odkazy podle ID čísla rodiny, podle příjmení páru a podle jmen manželů. Pouze je nutné zaměnit ID stromu z hodnoty "strom2" na hodnotu Vaší. Ukázka:
SELECT concat('<a href="familygroup.php?familyID=',f.familyid, '&tree=', f.gedcom,'">', f.familyid,'</a>') as familyid,

concat('<a href="familygroup.php?familyID=',f.familyid, '&tree=', f.gedcom,'">', if(isnull(h.lastname), ' ',h.lastname),'/ ',if(isnull(w.lastname), ' ',w.lastname),'</a>') as FamilyName,
count(c.personid) as Size,

group_concat(ch.firstname order by ordernum separator ', ') as Children,

concat('<a href="getperson.php?personID=',f.husband,'&tree=', f.gedcom,'">',h.firstname,' ',h.lastname,'</a>') as Husband,

concat('<a href="getperson.php?personID=',f.wife,'&tree=', f.gedcom,'">',w.firstname,' ',w.lastname,'</a>') as Wife,

f.marrdate, f.marrplace, f.branch as Branch FROM tng_families as f
left join tng_people as h on f.gedcom = h.gedcom and f.husband = h.personid
left join tng_people as w on f.gedcom=w.gedcom and f.wife = w.personid
left join tng_children as c on f.gedcom=c.gedcom and f.familyid = c.familyid
left join tng_people as ch on f.gedcom=ch.gedcom and c.personid = ch.personid
WHERE f.gedcom = 'strom2'
group by c.gedcom,c.familyid
order by Size desc, h.lastname,w.lastname,h.firstname, w.firstname

:shock:


Zpět na “Reporty”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 0 hostů