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
user:skript:stator:develop:stator-vyvojmodulu [2016/01/05 21:22] – [Globální proměnné] kiregpsuser:skript:stator:develop:stator-vyvojmodulu [2021/01/17 11:43] (current) mikrom
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ískán 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.1452025325.txt.gz · Last modified: 2016/01/05 00:00 (external edit)