Stránka 1 z 1

Přenos popisu obrázků z Legacy do TNG a jeho úskalí

Napsal: 01 lis 2014 08:32
od Falt
V Legacy je praktické opatřit média popisy (zejména fotografie a oskenované záznamy v matrikách).
2014-11-01 08_12_19-Zobrazit obrázek.jpg
ukázka popisu v Legacy
2014-11-01 08_12_19-Zobrazit obrázek.jpg (19.55 KiB) Zobrazeno 9152 x

Při každém importu dat z Legacy se (prostřednictvím souboru ve formátu Gedcom) popisy z Legacy přenesou do TNG.
Protože přenos provádí počítač, přenesou se popisy i se všemi chybami. Typickou chybou je nechtěné odřádkování u Titulku. Tato chyba se objeví v TNG v tabulce tng_media v poli bodytext jako HTML tag <br>. I když tady vysloveně nezpůsobí problémy, tak tam nepatří. Obecně není dobrý nápad přidávat jakékoli HTML tagy do pole Titulek (v tng_media mu odpovídá pole description).

Odstranění chyby nežádoucího odřádkování
Odstranit tuto chybu a případně i další HTML tagy v titulku lze v prostředí phpMyAdmin pomocí SQL dotazu, který spustíme v tabulce tng_media:
<em> UPDATE tng_media SET tng_media.bodytext = '';

Shoda popisů v Legacy a TNG
Je samozřejmě možné udržovat shodné popisy v Legacy i TNG. Já tuto praxi opustil, protože je složitá a pracná a hlavně zbytečná.
V Legacy si udržuji datovou základnu s jednoduchými popisy médií, zatímco v TNG prezentuji výsledky bádání a mám proto zájem popisy "vylepšit" co do obsahu i formy. Mým problémem se naopak stalo, jak zařídit, aby se mi při importu dat z Legacy nepřepsaly úpravy popisů, provedené v TNG.

Odstranění rizika přepsání popisů
Postupuji ve dvou krocích. Nejprve si zálohuji klasickým postupem tabulky i tabulkovou strukturu: Admin | Obslužné programy | Záloha, obnova a optimalizace dat v tabulce.
Pak použiji SQL dotaz pro zálohování aktuálních popisů:
<em> UPDATE tng_media set bck_notes=notes,bck_description=description;

Ve druhém kroku, po provedeném importu dat, kterým se mi popisy přepsaly těmi z Legacy,použiji SQL dotaz pro obnovení původních popisů:
<em> UPDATE tng_media SET notes=case WHEN bck_notes is null THEN notes else bck_notes end,
description=case WHEN bck_description is null then description ELSE bck_description end;
Pozorný čtenář pochopil, že před aplikací obou dotazů je nezbytné do tabulky tng_media přidat dvě nová pole pro zálohování titulku a vlastního popisu. Mnemotechnicky jsou u mne pojmenována bck_description a bck_notes.

Využití HTML tagů
Zatímco u titulků (v TNG "description") je to krajně nevhodné, u popisů (pole "notes") je široká možnost využití základních HTML tagů. Ale i tady platí heslo "méně je někdy více". :D

Re: Přenos popisu obrázků z Legacy do TNG a jeho úskalí

Napsal: 02 lis 2014 17:50
od michal
Je to určitě zajímavý postup v případě, že jsou popisky fotografií jiné v TNG a jiné v Legacy. Já si svoji práci co nejvíce zjednodušuji. Legacy tedy používám pro udržování veškerých údajů a TNG pouze pro jejich zobrazení a prezentaci. V TNG tedy údaje zásadně neměním právě proto, abych je pak nemusel složitě dostávat zpět do Legacy anebo abych si údaje změněné v TNG nepřepsal (třeba nechtíc) při aktualizaci dat údaji z Legacy.
Jen bych doplnil, že do pole "bodytext" se ukládá obsah pole "Základní text" z obrazovky Administrace>Média>Upravit, který se pak případně zobrazuje na webové stránce nad titulem obrázku. Pokud obsah tohoto pole pomocí SQL příkazu vymažete, můžete pak přijít o tyto informace (jsou-li tam nějaké uložené).

Re: Přenos popisu obrázků z Legacy do TNG a jeho úskalí

Napsal: 03 lis 2014 09:09
od Falt
Velmi důležitý dovětek:
Pokud použijete techniku zálohování popisů v TNG přidáním dvou sloupců do tng_media, čeká Vás ještě jeden úkon, bez kterého se obrázky na serveru neobjeví, přestože tam jsou. V Admin | Obslužné programy | Záloha, obnova a optimalizace dat v tabulce, je nezbytné jednorázově obnovit zálohu struktury tabulek !!! :!: