|
| 1 | +# 🖼️ pTRPhasePlugin |
| 2 | + |
| 3 | +## Účel pluginu |
| 4 | + |
| 5 | +Plugin přijímá událost ⚡ [ShowChapterResolutions][ShowChapterResolutions] od pluginu 🖼️ [pTopicRenderer][pTopicRenderer] a provede jednotlivý krok procesního zpracování. Plugin pTopicRenderer má ve své konfiguraci definovaný seznam procesních fází a zajišťuje postup jednotlivých zpráv celým procesem. |
| 6 | + |
| 7 | +## Implementace |
| 8 | + |
| 9 | +1. V souboru **plugins.lst** zaveďte řádek: |
| 10 | + pConvertSysEventToEvent:[instanceid] |
| 11 | +2. Připravte v souboru **plugins/[název pluginu].js** například následující kód: |
| 12 | + |
| 13 | +```javascript |
| 14 | +class pTRNewPlugin extends pTRPhasePlugin { |
| 15 | + onETShowChapterResolutions(r) { |
| 16 | + } |
| 17 | +} |
| 18 | + |
| 19 | +Plugins.catalogize(pTRNewPlugin); |
| 20 | +``` |
| 21 | + |
| 22 | +onETShowChapterResolutions je odpovědná za prováděný procesní krok. Parametr r je událost ⚡ ShowChapterResolutions. Událost sama obsahuje veškeré podpůrné objekty a metody pro načtení, přípravu či provedení výpisu textu do výstupního HTML prvku pro kapitolu. |
| 23 | + |
| 24 | +### onETShowChapterResolutions - vybrané vlastnosti |
| 25 | + |
| 26 | +| Vlastnost | Popis | |
| 27 | +|---|---| |
| 28 | +| doc | Odkaz na konkrétní HTML prvek, který přijme výstup výpisu | |
| 29 | +| getStorageData | Odkaz na funkci pro čtení zdroje, který určil plugin 🖼️ [pTRTriage][pTRTriage] na základě vzorů URI adres kapitol a dalších dat. | |
| 30 | +| tokens | Shromážděné tokeny (řetězce) během předchozích kroků zpracování. Je možné v některém kroku založit token a v jiném kroku jej zpracovat a provést doplňkovou logiku. | |
| 31 | +| onTokenDo | Otestuje, zda zadaný token existuje. Pokud ano, tak jej odebere a provede vloženou funkci. | |
| 32 | +| preventDefault | Umožňuje provolat preventDefault na javascript systémové události. Volání je podle standardu nevratné. | |
| 33 | +| stopAllPhases | Nastavením na **true** přerušíte další zpracování procesu. Kombinujte se **stop = true**. | |
| 34 | + |
| 35 | +⚠️ V rámci procesu se užívá asynchronicita. Její provolání provádějte vždy takto: |
| 36 | +r.result = r.result.then(() => ...); |
| 37 | +aby jednotlivé kroky na sebe navazovaly. |
| 38 | +Můžete také připojit více událostí ke stejnému result objektu, ale je doporučeno řazení kroků jeden za druhým. |
| 39 | + |
| 40 | +## Příklady implementací |
| 41 | + |
| 42 | +- 🖼️ [pTREmptyPlugin][pTREmptyPlugin] |
| 43 | +- 🖼️ [pTRParseMd][pTRParseMd] |
| 44 | +- 🖼️ [pTRLoadData][pTRLoadData] |
| 45 | + |
| 46 | +## Další pluginy |
| 47 | + |
| 48 | +- 🖼️ [pTopicRenderer][pTopicRenderer] |
| 49 | + |
| 50 | +[pTRTriage]: :inst:pTRTriage:-triage.md "pTRTriage" |
| 51 | +[pTREmptyPlugin]: :inst:pTREmptyPlugin:-htm.md "pTREmptyPlugin" |
| 52 | +[ShowChapterResolutions]: :_evt:ShowChapterResolutions.md "ShowChapterResolutions" |
| 53 | +[pTopicRenderer]: :_plg:pTopicRenderer.md "pTopicRenderer" |
| 54 | +[pTRParseMd]: :_plg:pTRParseMd.md "pTRParseMd" |
| 55 | +[pTRLoadData]: :_plg:pTRLoadData.md "pTRLoadData" |
0 commit comments