Promotic
WikipediaLinkedInYoutubeTwitterFacebook

onPageModify - událost objektu PmWebDir

Popis:
Událost je vyvolána pro možnost změny posílaného HTML/XML dokumentu. Je vyvolána po provedení všech úprav nad dokumentem (včetně automatického nahrazení klíčových slov) a před posláním dokumentu do Web prohlížeče.
Parametry:
pMe(Object) Reference na PROMOTIC objekt, ve kterém daná událost vzniká.
pEvent(Object) Reference na objekt popisující podrobněji informace o dané události.
pEvent.User - (Object) Objekt User, který představuje přihlášeného uživatele, který vyvolal požadavek na stránku.
pEvent.FilePath - (String) Relativní cesta k souboru, který je vyžadován z Web prohlížeče.
pEvent.PageString - (String) Textový řetězec obsahující celý vyžadovaný HTML/XML dokument v textové formě po provedení automatického nahrazení klíčových slov. Pokud vyžadovaný soubor není HTML/XML dokument, pak je tento řetězec prázdný. Algoritmus může změnit obsah dokumentu zápisem do této vlastnosti.
pEvent.Modify - (Boolean) Pokud byla změněna vlastnost pEvent.PageString, pak musí být hodnota vlastnosti nastavena na true. V jiném případě nebudou změny akceptovány.

Pokud je Zdroj dat = Text zadaný do vlastnosti pEvent.PageString v události onPageModify, pak vlastnost pEvent.Modify je přednastavena na true.

Poznámka:
- Pokud je Zdroj dat = Soubory na disku v zadané složce, pak je použití této události doporučeno jen pro speciální případy. Protože je tato událost vyvolána až po nahrazení hodnot klíčových slov v dokumentu, je zbytečné zde klíčová slova nastavovat. Jednodušší způsob změny posílaného dokumentu je pomocí události onPageLoad, která se vyvolá ještě před nahrazením klíčových slov. Viz také Příklad1.
- Pokud je Zdroj dat = Text zadaný do vlastnosti pEvent.PageString v události onPageModify, pak je tato událost jediná možnost jak naplnit obsah posílaných dat.
Příklad1:
Mějme uživatelskou html stránku na disku (Page.html) ve které požadujeme v textu nahradit klíčové slovo _(XXXXX)_ například jménem přihlášeného uživatele. Náhradu provedeme pomocí metody StringReplace.
 
Text v HTML stránce:
<title>_(XXXXX)_</title>
  
Skript v události onPageModify:
VBScriptVyber a zkopíruj do schránky

If pEvent.FilePath = "Page.htm" Then
  Dim sReplaced
  sReplaced = Pm.StringReplace(pEvent.PageString, "xxxxx", pEvent.User.Name)
  pEvent.Modify = true
  pEvent.PageString = sReplaced
End If
Příklad2:
Příklad pro posílání velmi jednoduchých HTML stránek dynamicky vytvářených přímo ve skriptu této události. Konfigurátor Zdroj dat musí být nastaven na "Text zadaný do vlastnosti pEvent.PageString v události onPageModify".
VBScriptVyber a zkopíruj do schránky

Dim s
Select Case pEvent.FilePath
Case "abc.htm"
  s = "<html><head><title>abc</title></head>"
  s = s & "<body><p>Teplota = "
  s = s & pMe.Pm("/Data/#vars/temperature").Value
  s = s & "</p></body></html>"
Case "fff.htm"
  '...
Case Else
  '...
End Select
pEvent.PageString = s
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice