GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skript:stator:develop:stator-vyvojmodulu

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
user:skript:stator:develop:stator-vyvojmodulu [2016/01/05 21:22] – [Globální proměnné] kiregpsuser:skript:stator:develop:stator-vyvojmodulu [2021/01/16 17:03] – [Obecné funkce] gord
Line 68: Line 68:
   * ''<modul>.stator.pas'' - vlastní výkonný program modulu. Soubor povinně obsahuje hlavní funkci ''<modul>_Run(params:TStringList):string;'' (příkazy a organizační bloky tento soubor nemají, protože jejich funkci zajišťuje přímo [[user:skript:stator|Stator]])   * ''<modul>.stator.pas'' - vlastní výkonný program modulu. Soubor povinně obsahuje hlavní funkci ''<modul>_Run(params:TStringList):string;'' (příkazy a organizační bloky tento soubor nemají, protože jejich funkci zajišťuje přímo [[user:skript:stator|Stator]])
   * ''<modul>.*.png'' - soubory obsahují obrázek s ukázkami výstupu modulu. [[user:skript:stator|Stator]] tyto obrázky zobrazuje při kliknutí na modul, aby měl uživatel představu, co modul produkuje. Pokud je obrázků více, lze mezi nimi přepínat opakovaným klikáním. Soubory s obrázkem nejsou povinné, jen vřele doporučené   * ''<modul>.*.png'' - soubory obsahují obrázek s ukázkami výstupu modulu. [[user:skript:stator|Stator]] tyto obrázky zobrazuje při kliknutí na modul, aby měl uživatel představu, co modul produkuje. Pokud je obrázků více, lze mezi nimi přepínat opakovaným klikáním. Soubory s obrázkem nejsou povinné, jen vřele doporučené
 +  * ''<modul>.css'' - definice kaskádových stylů použitých jen a pouze v jediném konkrétním modulu, pokud je soubor tohoto jména v adresáři profilu, bude použit přednostně <sup>2.2</sup>
 +
  
  
Line 140: Line 142:
  
 === Postinstalační script *.gpi.pas === === Postinstalační script *.gpi.pas ===
-Moduly, které nejsou obsažené ve standardní instalaci a jsou instalované samostatně jako každý jiný plugin **Geogetu**, by měly kromě správně nastaveného ''*.meta.ini'' souboru+Moduly, které nejsou obsažené ve standardní instalaci a jsou instalované samostatně jako každý jiný plugin **GeoGetu**, by měly kromě správně nastaveného ''*.meta.ini'' souboru
 zajistit také zkopírování všech svých souborů, které jsou uživatelsky závislé, do všech profilů. Nejedná se o vlastní výkonný kód modulu, ale o případná nastavení, například soubory s definicemi stylů pro správné formátování výstupu s možností uživatelského nastavení. zajistit také zkopírování všech svých souborů, které jsou uživatelsky závislé, do všech profilů. Nejedná se o vlastní výkonný kód modulu, ale o případná nastavení, například soubory s definicemi stylů pro správné formátování výstupu s možností uživatelského nastavení.
  
Line 152: Line 154:
 ^Parametr^Popis^ ^Parametr^Popis^
 | ID | Jedinečné identifikační číslo objektu v rámci statistik. | | ID | Jedinečné identifikační číslo objektu v rámci statistik. |
-| Width | Šířka, do které musí modul umístnit svůj výstup. |+| Width | Šířka, do které musí modul umístit svůj výstup. |
  
 Přístup k hodnotě ''Width'' ukážu jednoduché hlavní funkci modulu: Přístup k hodnotě ''Width'' ukážu jednoduché hlavní funkci modulu:
Line 236: Line 238:
 | <code delphi>iSortFound:integer</code> | uživatelem požadovaný způsob řazení nálezů (viz. ''Config.ini'' nebo nastavení konfigurace ve formuláři) | | <code delphi>iSortFound:integer</code> | uživatelem požadovaný způsob řazení nálezů (viz. ''Config.ini'' nebo nastavení konfigurace ve formuláři) |
 | <code delphi>sIgnoreCaches:string</code> | seznam GC kódů keší, které si uživatel přeje vynechat při výpočtech vzdáleností, ... Seznam je ve formátu pro frázi IN do SQL příkazu | | <code delphi>sIgnoreCaches:string</code> | seznam GC kódů keší, které si uživatel přeje vynechat při výpočtech vzdáleností, ... Seznam je ve formátu pro frázi IN do SQL příkazu |
 +| <code delphi>sLocationlessCaches:string</code> | seznam GC kódů nalezených Locationless keší. Seznam je ve formátu pro frázi IN do SQL příkazu |
  
 Hodnoty, které jádro nastavuje pro každý modul: Hodnoty, které jádro nastavuje pro každý modul:
  
 +| <code delphi>sModuleName:string</code> | jméno aktuálně prováděného modulu |
 | <code delphi>iItem:integer</code> | jedinečné identifikační číslo objektu, který má modul generovat. Hodnota odpovídá parametru ''ID'' předanému modulu na konci jeho vlastních parametrů. | | <code delphi>iItem:integer</code> | jedinečné identifikační číslo objektu, který má modul generovat. Hodnota odpovídá parametru ''ID'' předanému modulu na konci jeho vlastních parametrů. |
 | <code delphi>iWidth:integer</code> | šířka, do které generuje modul svůj výstup. Pokud jsou správně nastaveny hodnoty v souboru ''Styles.ini'', tato šířka zohledňuje i hodnoty ''margin'' , ''border'' a ''padding'' všech elementů ve struktuře nadřazených modulů. Např. tedy hodnoty definované u záložky, rámce, sloupce a nakonec i bloku pro samotný modul. | | <code delphi>iWidth:integer</code> | šířka, do které generuje modul svůj výstup. Pokud jsou správně nastaveny hodnoty v souboru ''Styles.ini'', tato šířka zohledňuje i hodnoty ''margin'' , ''border'' a ''padding'' všech elementů ve struktuře nadřazených modulů. Např. tedy hodnoty definované u záložky, rámce, sloupce a nakonec i bloku pro samotný modul. |
Line 272: Line 276:
 | IconCacheLog* | ikony typů logu, místo hvězdičky je plný typ logu konvertovaný funkcí ''StringCompress()'' | | IconCacheLog* | ikony typů logu, místo hvězdičky je plný typ logu konvertovaný funkcí ''StringCompress()'' |
 | IconDirection* | ikony směru, místo hvězdičky je anglická zkratka směru v osmistupňové škále (N, NE, E, ...) nebo odpovídající hodnota ve stupních | | IconDirection* | ikony směru, místo hvězdičky je anglická zkratka směru v osmistupňové škále (N, NE, E, ...) nebo odpovídající hodnota ve stupních |
-| IconCountry FIXME | ikony států | +| IconCountry| ikony států, místo hvězdičky je dvoupísmenný [[https://cs.wikipedia.org/wiki/ISO_3166-1|ISO kód země]] nebo název země podle Groundspeaku z databáze GeoGetu 
-| IconLayout | ikony, použité v grafických stylech (rozbalení/sbalení frame, nápověda,...), jsou obsaženy i další ikonky, které je možné použít např. na odlišení jednotlivých frame podle typu informacíkteré frame obsahuje |+| IconLayout| ikony, použité v grafických stylech (rozbalení/sbalení frame, nápověda,...), ikony pro záložky a frame (ve dvou velikostech a typech), které je možné na odlišení, jaké informace záložka nebo frame obsahuje; místo hvězdičky je název ikony podle ''Common/IconsLayot.ini'' |
  
 === Hodnoty vypočtené a závislé na uživateli === === Hodnoty vypočtené a závislé na uživateli ===
 | CRLF | odřádkování ve výstupním souboru - protože výstupní soubor je v HTML formátu, je odřádkování víceméně formální záležitostí pro přehlednost statistiky v HTML formátu a až na výjimky nemá žádný vliv na výsledné zobrazení. | | CRLF | odřádkování ve výstupním souboru - protože výstupní soubor je v HTML formátu, je odřádkování víceméně formální záležitostí pro přehlednost statistiky v HTML formátu a až na výjimky nemá žádný vliv na výsledné zobrazení. |
 | Profile | jméno profilu, v kterém jsou statistiky generovány | | Profile | jméno profilu, v kterém jsou statistiky generovány |
-| GeogetOwner | uživatel Geogetu, který spouští statistiku |+| GeogetOwner | uživatel GeoGetu, který spouští statistiku |
 | OwnedAuthorsForInPhrase | seznam autorů, kteří jsou považováni za autory "mých keší". Seznam je ve formátu pro frázi IN v SQL příkazu (např. '' 'gordici','gord' '') | | OwnedAuthorsForInPhrase | seznam autorů, kteří jsou považováni za autory "mých keší". Seznam je ve formátu pro frázi IN v SQL příkazu (např. '' 'gordici','gord' '') |
 | OwnedIdsForInPhrase | seznam vlastněných keší ve formátu vhodném pro frázi IN v SQL příkazu. Seznam je získán buďto přímo z konfigurace statistik (pokud tam je seznam keší uveden) nebo je získan jako seznam všech možných keší podle konfigurace Statoru (podle GEOGET_OWNER, OwnedAuthorsForInPhrase a doplňkového seznamu ID vlastněných keší. | | OwnedIdsForInPhrase | seznam vlastněných keší ve formátu vhodném pro frázi IN v SQL příkazu. Seznam je získán buďto přímo z konfigurace statistik (pokud tam je seznam keší uveden) nebo je získan jako seznam všech možných keší podle konfigurace Statoru (podle GEOGET_OWNER, OwnedAuthorsForInPhrase a doplňkového seznamu ID vlastněných keší. |
 +| OwnedLABIDsForInPhrase<sup>2.1.2.28</sup> | seznam GC kódů LABek, které patří GEOGET_OWNER. Seznam je ve formátu pro frázi IN v SQL příkazu.|
 | StatisticStartDate | datum spuštění generování statistiky | | StatisticStartDate | datum spuštění generování statistiky |
 | StatisticStartTime | čas spuštění generování statistiky ve tvaru HH:MM | | StatisticStartTime | čas spuštění generování statistiky ve tvaru HH:MM |
Line 286: Line 291:
 | FoundLogsCount | celkový počet "nálezových" logů, tedy logů ''Found it'', ''Attended'' a ''Webcam Photo Taken'' | | FoundLogsCount | celkový počet "nálezových" logů, tedy logů ''Found it'', ''Attended'' a ''Webcam Photo Taken'' |
 | Evaluate(''výraz'' [,''n'']) | pseudoproměnná, pomocí které je možné vypočítat vlastní hodnoty z jiných globálních proměnných. Vyhodnocení aritmetického výrazu podporuje základní operátory ''+'', ''-'', ''*'', ''/'', ''^'' (mocninu) a závorky ''('' '')''. Rozlišuje se priorita operátorů, konstanty zapisujte s desetinným oddělovačem ''.'' (tečka). Druhý nepovinný parametr ''n'' určuje počet desetinných míst, na které bude zaokrouhlen a zobrazen výsledek. **Příklad:** pseudoproměnná ''%Evaluate(100 * %Calc_FTFCount% / %FoundCachesCount%, 2)%'' bude v HTML textu nahrazena hodnotou FTF indexu, zobrazeného na dvě desetinná místa. | | Evaluate(''výraz'' [,''n'']) | pseudoproměnná, pomocí které je možné vypočítat vlastní hodnoty z jiných globálních proměnných. Vyhodnocení aritmetického výrazu podporuje základní operátory ''+'', ''-'', ''*'', ''/'', ''^'' (mocninu) a závorky ''('' '')''. Rozlišuje se priorita operátorů, konstanty zapisujte s desetinným oddělovačem ''.'' (tečka). Druhý nepovinný parametr ''n'' určuje počet desetinných míst, na které bude zaokrouhlen a zobrazen výsledek. **Příklad:** pseudoproměnná ''%Evaluate(100 * %Calc_FTFCount% / %FoundCachesCount%, 2)%'' bude v HTML textu nahrazena hodnotou FTF indexu, zobrazeného na dvě desetinná místa. |
-| TableListLastRowCount | počet řádků, které byly k dispozici pro poslední zpracovávanou tabulku <sup>(od verze 1.3)</sup> |+| TableListLastRowCount<sup>1.3.1.10</sup> | počet řádků, které byly k dispozici pro poslední zpracovávanou tabulku 
 +| TotalDistance<sup>1.4.1.12</sup> | celková vzdálenost od keše ke keši v km | 
 +| CentroidCoord<sup>1.4.1.12</sup> | souřadnice geometrického středu nalezených keší | 
 +| CentroidDistance<sup>1.4.1.12</sup> | vzdálenost geometrického středu nalezených keší od domácích souřadnic | 
 +| CentroidAngle<sup>1.4.1.12</sup> | azimut geometrického středu nalezených keší od domácích souřadnic |
  
 ===== Funkce použitelné v modulech ===== ===== Funkce použitelné v modulech =====
Line 335: Line 344:
 <code delphi>function GetLengthAbbr(sUnit:string):string;</code> <code delphi>function GetLengthAbbr(sUnit:string):string;</code>
   * Funkce vrací textovou zkratku jednotky ''sUnit''. Vhodné na popisy os grafů apod. Povolené hodnoty ''sUnit'' jsou: ''Kilometer'', ''Meter'', ''Mile'', ''Yard'', ''Foot'', ''Inch''. FIXME   * Funkce vrací textovou zkratku jednotky ''sUnit''. Vhodné na popisy os grafů apod. Povolené hodnoty ''sUnit'' jsou: ''Kilometer'', ''Meter'', ''Mile'', ''Yard'', ''Foot'', ''Inch''. FIXME
 +
 +<code delphi>function DirectionToIcon(fAngle:extended):string;</code>
 +  * Převede azimut na ikonku směru. Např. ''DirectionToIcon(201.53)'' vrátí string ''%IconDirection180%''.
  
 <code delphi>function EncodeDataExtended(iNum:integer):string;</code> <code delphi>function EncodeDataExtended(iNum:integer):string;</code>
Line 363: Line 375:
   * Vrací hodnotu globální proměnné z oblasti pro výměnu proměnných mezi moduly.   * Vrací hodnotu globální proměnné z oblasti pro výměnu proměnných mezi moduly.
  
-<code delphi>function GlobalVarSet(name:string):boolean; </code>+<code delphi>function GlobalVarSet(name, value:string):boolean; </code>
   * Nastaví hodnotu globální proměnné v oblasti pro výměnu proměnných mezi moduly. Pokud proměnná neexistuje, vytvoří ji.   * Nastaví hodnotu globální proměnné v oblasti pro výměnu proměnných mezi moduly. Pokud proměnná neexistuje, vytvoří ji.
 +  * Prozatím funkce vrací vždy ''false''.
  
 <code delphi>procedure GlobalVarRemove(name:string); </code> <code delphi>procedure GlobalVarRemove(name:string); </code>
Line 383: Line 396:
 <code delphi>procedure GlobalVarRegisterReplaceFunction(name:string,funkce:TModuleReplaceFunction); </code> <code delphi>procedure GlobalVarRegisterReplaceFunction(name:string,funkce:TModuleReplaceFunction); </code>
   * registrace funkce, kterou modul může nahrazovat některé globální proměnné, např. hodnotami z polí nebo složitějších struktur. Vlastní nahrazovací funkce má deklaraci ''function Name(aParams:TStringList):string;'' a jméno funkce podléhá stejným konvencím jako ostatní jména. Při volání pak jádro napřed nahradí všechny normální proměnné (aby v parametrech mohly být i nahrazené hodnoty) a pak postupně volá všechny registrované funkce v pořadí, v kterém došlo k jejich registraci.   * registrace funkce, kterou modul může nahrazovat některé globální proměnné, např. hodnotami z polí nebo složitějších struktur. Vlastní nahrazovací funkce má deklaraci ''function Name(aParams:TStringList):string;'' a jméno funkce podléhá stejným konvencím jako ostatní jména. Při volání pak jádro napřed nahradí všechny normální proměnné (aby v parametrech mohly být i nahrazené hodnoty) a pak postupně volá všechny registrované funkce v pořadí, v kterém došlo k jejich registraci.
- 
 ==== Funkce generující výstup ==== ==== Funkce generující výstup ====
 <code delphi>procedure Log(message: string);</code> <code delphi>procedure Log(message: string);</code>
Line 393: Line 405:
 <code delphi>function MakeHtmlCacheInfoFromID(sId:string):string;</code> <code delphi>function MakeHtmlCacheInfoFromID(sId:string):string;</code>
   * Funkce vrací informace o keši naformátované do jednotného HTML vzhledu. Potřebné údaje si zjistí sama podle GC kódu keše.   * Funkce vrací informace o keši naformátované do jednotného HTML vzhledu. Potřebné údaje si zjistí sama podle GC kódu keše.
 +
 +<code delphi>function MakeHtmlShortCacheInfoFromId(sId:string):string;</code>
 +  * Funkce vrací informace o keši naformátované do jednotného HTML vzhledu. Oproti funkci ''MakeHtmlCacheInfoFromID'' chybí vlajka státu. Potřebné údaje si zjistí sama podle GC kódu keše.
  
 <code delphi>procedure Output(text: string);</code> <code delphi>procedure Output(text: string);</code>
user/skript/stator/develop/stator-vyvojmodulu.txt · Last modified: 2021/01/17 11:43 by mikrom