GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:navody:ggmap-pluginy

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:navody:ggmap-pluginy [2020/05/12 18:16] – [Seznam dostupných pluginů pro GgMapu] vasamuser:navody:ggmap-pluginy [2021/07/06 12:08] (current) – [Ukázky postupů v pluginu] gord
Line 11: Line 11:
 Pluginy jsou v souborech ''*.ggm.js'' a případně odpovídajících souborech (''*.css'', soubory s obrázky, ...). Vlastní plugin je napsán v javascriptu a aby bylo možné jej spravovat obvyklým způsobem jako ostatní pluginy do GeoGetu, je vhodné jej distribuovat v *.gip balíčku, který se postará o překopírování souborů do správných adresářů GeoGetu. Pluginy jsou v souborech ''*.ggm.js'' a případně odpovídajících souborech (''*.css'', soubory s obrázky, ...). Vlastní plugin je napsán v javascriptu a aby bylo možné jej spravovat obvyklým způsobem jako ostatní pluginy do GeoGetu, je vhodné jej distribuovat v *.gip balíčku, který se postará o překopírování souborů do správných adresářů GeoGetu.
  
-**Umístění souborů pluginů:**+**Správné umístění souborů pluginu po instalaci:**
  
   * ''*.meta.ini'' a ''*.ggi.pas'' jsou v adresáři ''DATADIR\script\GgMap\'' (toto není nutné pro funkci pluginu, je doporučené pro přehlednost a údržbu pluginů) o správné umístění souborů z instalačního balíčku by se měl postarat instalační script ''*.ggi.pas''   * ''*.meta.ini'' a ''*.ggi.pas'' jsou v adresáři ''DATADIR\script\GgMap\'' (toto není nutné pro funkci pluginu, je doporučené pro přehlednost a údržbu pluginů) o správné umístění souborů z instalačního balíčku by se měl postarat instalační script ''*.ggi.pas''
Line 18: Line 18:
  
 <WRAP center round important> <WRAP center round important>
-O přesun souborů do správných adresářů při instalaci pluginu a smazání nepotřebných souborů a adresářů při odinstalování souboru se musí postarat instalační script ''*.ggi.pas''. +O přesun souborů do správných adresářů při instalaci pluginu a smazání nepotřebných souborů a adresářů při odinstalování pluginu se musí postarat instalační script ''*.ggi.pas''(Je možné použít univerzální instalační script, viz níže.)
- +
-Pro správné zobrazení pluginu v seznamu pluginů GeoGetu je potřeba do souboru ''*.meta.ini'' doplnit parametr ''Parent=ggmap_plugin''+
 </WRAP> </WRAP>
  
 ==== Inicializace pluginu ==== ==== Inicializace pluginu ====
  
-Základem správné funkce pluginu je jeho správná inicializace. O tu se stará funkce ''*_ggm_init()'', což je jediná povinná funkce. Ta by měla zejména zajistit inicializaci pluginu, nastavení obslužných funkcí událostí, doplnění položek menu a dalších činností potřebných pro správnou funkci pluginu. Inicializací se v tomto případě rozumí zejména doplnění volání funkcí pluginu v tu správnou chvíli, tedy při nějaké události. (Ve vyjímečných případech, kdy inicializace není potřeba, bude tato funkce prázdná, ale **existovat musí**!)+Základem správné funkce pluginu je jeho správná inicializace. O tu se stará funkce ''*_ggm_init()'', což je jediná povinná funkce. Ta by měla zejména zajistit inicializaci pluginu, nastavení obslužných funkcí událostí, doplnění položek menu a dalších činností potřebných pro správnou funkci pluginu. Inicializací se v tomto případě rozumí zejména doplnění volání funkcí pluginu v tu správnou chvíli, tedy při nějaké události. (Ve výjimečných případech, kdy inicializace není potřeba, bude tato funkce prázdná, ale **existovat musí**!)
  
 Aktuální seznam všech možných událostí je v souboru ''DATADIR\ggmap\plugin\README.txt'': Aktuální seznam všech možných událostí je v souboru ''DATADIR\ggmap\plugin\README.txt'':
Line 43: Line 41:
 Pro správnou funkci pluginu je důležité, aby byla velikost písmen ve jménech souborů v adresáři ''DATADIR\ggmap\plugin'' stejná jako velikost písmen funkce ''*_ggm_init()''. Pro správnou funkci pluginu je důležité, aby byla velikost písmen ve jménech souborů v adresáři ''DATADIR\ggmap\plugin'' stejná jako velikost písmen funkce ''*_ggm_init()''.
  
-Pokud plugin potřebuje ke správné činnosti svůj ''*.css'' soubor, musí ve své ''*_ggm_init()'' funkcí zajistit jeho načtení.+Pokud plugin potřebuje ke správné činnosti svůj ''*.css'' soubor, musí ve své ''*_ggm_init()'' funkcí zajistit jeho načtení, viz ukázka níže.
 </WRAP> </WRAP>
  
 ==== Instalační a odinstalační script *.ggi.pas ==== ==== Instalační a odinstalační script *.ggi.pas ====
  
-Instalační script je zodpovědný za přenos souborů pluginu do adresáře pluginů GgMapy a také za zmazání všech souborů pluginu (tedy i ''*.meta.ini'' a ''*.ggi.pas'') při odinstalování pluginu.+Instalační script je zodpovědný za přenos souborů pluginu do adresáře pluginů GgMapy a také za smazání všech souborů pluginu (tedy i ''*.meta.ini'' a ''*.ggi.pas'') při odinstalování pluginu.
  
-Existuje univerzální instalační script, který se za při dodržení několika podmínek pro tvorbu balíčku a pojmenování souborů o vše postará a autor pluginu jej nemusí pracně tvořit.+Existuje {{ :user:navody:ggmap-pluginy:ggmap-plugin.ggi.pas |univerzální instalační script}}, který se za při dodržení několika podmínek pro tvorbu balíčku a pojmenování souborů o vše postará a autor pluginu jej nemusí pracně tvořit a ladit.
  
-  * instalační adresář ''*.gip'' souboru je ''GgMap/JmenoPluginu'', plugin je tedy nainstalován do ''DATADIR/script/GgMap/JmenoPluginu'' a o přenesení jednotlivých součástí do správných adresářů se již postará instalační script +Ke správné funkci univerzálního instalačního scriptu je třeba, aby obsah *.gip souboru měl strukturu: 
-  všechny soubory a případně i další podadresáře jsou v tomto adresáři+ 
 +  * adresář **GgMap** 
 +    * soubor ''JmenoPluginu.meta.ini'' 
 +    soubor ''JmenoPluginu.ggi.pas'' 
 +    * adresář **JmenoPluginu** 
 +      * soubor ''JmenoPluginu.ggm.js'' 
 +      * nepovinně soubor ''JmenoPluginu.css'' 
 +      * nepovinně adresář **JmenoPluginu** 
 +        další soubory, které plugin využívá 
 + 
 +Další požadavky: 
 +  * při kopírování instalačního scriptu je nutné změnit jeho jméno na ''JmenoPluginu.ggi.pas''
   * soubor ''JmenoPluginu.meta.ini'' obsahuje položku ''Parent=ggmap_plugin''   * soubor ''JmenoPluginu.meta.ini'' obsahuje položku ''Parent=ggmap_plugin''
-  * soubor ''JmenoPluginu.meta.ini'' obsahuje spuštění instalačního scriptu, v sekci ''[install]'' položka ''script=Ggmap\JmenoPluginu\JmenoPluginu.ggi.pas''+  * soubor ''JmenoPluginu.meta.ini'' obsahuje spuštění instalačního scriptu, v sekci ''[install]'' položka ''script=Ggmap\JmenoPluginu.ggi.pas''
   * soubor ''JmenoPluginu.meta.ini'' obsahuje spuštění odinstalačního scriptu, v sekci ''[uninstall]'' položka ''Ggmap\JmenoPluginu.ggi.pas='' (script je při instalaci přesunut o adresář výš)   * soubor ''JmenoPluginu.meta.ini'' obsahuje spuštění odinstalačního scriptu, v sekci ''[uninstall]'' položka ''Ggmap\JmenoPluginu.ggi.pas='' (script je při instalaci přesunut o adresář výš)
  
- +Pokud budou výše uvedené požadavky splněny, pak instalační a odinstalační funkce v instalačním scriptu se postarají o vše potřebné.
-FIXME+
  
 ==== Ukázky postupů v pluginu ==== ==== Ukázky postupů v pluginu ====
Line 84: Line 92:
 } }
 </code> </code>
 +
 +<WRAP center round tip 95%>
 +Po aktualizaci pluginu a spuštění mapy bude potřeba v prohlížeči ručně aktualizovat dříve načtený CSS soubor (CTRL+F5), aby se jeho změny promítly do zobrazení. Tomu lze zabránit takovým trikem. Stačí jméno souboru doplnit o nějaký parametr pro URL, který bude obsahovat jedinečný string a tento string při každé tvorbě ''gip'' souboru (nezapomenout) změnit. Já k tomu účelu používám většinou datum sestavení souboru, např.:
 +
 +''loadcss('plugin/jmenoPluginu.css?ver=15.6.2021');''
 +
 +To zajistí, že při prvním spuštění ''ggmapy'' prohlížeč aktualizuje ''css'' soubor sám.
 +</WRAP>
 +
 +=== Přesouvatelný ovládací prvek ===
 +
 +Pokud má plugin na mapě nějaký ovládací prvek, je vhodné jeho nadřízenému ''div'' přidat třídu movable, nejlépe tak, aby vypadal stejně jako ostatní bloky ovládacích prvků, tedy
 +
 +<code javascript>
 +<div id="..." class="noprint leaflet-control-layers movable">
 +...
 +</div>
 +</code>
 +
 +Pak bude mít jednak jednotný vzhled a zároveň jej bude možné přesouvat po mapě, bude-li nainstalován také plugin [[user:skript:movable|Movable]]. Zde bych doporučil ještě přečíst [[user:skript:movable#pohled_pod_poklicku|Pohled pod pokličku]], aby to přesouvání určitě fungovalo.
  
 ===== Seznam dostupných pluginů pro GgMapu ===== ===== Seznam dostupných pluginů pro GgMapu =====
-=== Další mapy a/nebo překryvné vrstvy ===+ 
 +==== Další mapy a/nebo překryvné vrstvy ====
 {{topic>ggmap_map}} {{topic>ggmap_map}}
  
-=== Změna vzhledu částí mapy ===+==== Změna vzhledu částí mapy ====
 {{topic>ggmap_style}} {{topic>ggmap_style}}
  
-=== Filtrování bodů ===+==== Filtrování bodů ====
 {{topic>ggmap_filter}} {{topic>ggmap_filter}}
  
-=== Nové sady ikon bodů/keší ===+==== Nové sady ikon bodů/keší ====
 {{topic>ggmap_icon}} {{topic>ggmap_icon}}
  
-=== Knihovny funkcí ===+==== Knihovny funkcí ====
 {{topic>ggmap_lib}} {{topic>ggmap_lib}}
  
-=== Ostatní ===+==== Zobrazení souborů s jinými typy dat ==== 
 +{{topic>ggmap_file}} 
 + 
 +==== Ostatní ====
 {{topic>ggmap_other}} {{topic>ggmap_other}}
  
 +==== Seznam souborů ====
 +{{filelist>ggmap-pluginy:*.[gzp][ia][ps]&style=table&tableheader=1&tableshowdate=1&sort=mtime}}
user/navody/ggmap-pluginy.1589300177.txt.gz · Last modified: 2020/05/12 18:16 by vasam