Promotic
WikipediaLinkedInYoutubeTwitterFacebook

onPageModify - událost objektu PmWebDir

Popis:
Událost je vyvolána pro poslední možnost změny posílaného HTML/XML/TXT 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, reprezentující 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) Ř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, 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 opačném případě nebudou změny akceptovány.

Pokud je Zdroj dat = Text zadaný do vlastnosti pEvent.PageString v události onPageModify, pak je vlastnost pEvent.Modify 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:
Dim sReplaced
If pEvent.FilePath = "Page.htm" Then
  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 scriptu této události. Musí být nastaven konfigurátor Zdroj dat na "Text zadaný do vlastnosti pEvent.PageString v události onPageModify".
Dim s
Case "abc.htm"
  s = "<html><head><title>abc</title></head>"
  s = s & "<body><p>Teplota = "
  s = s & pMe.Pm("/Data/#vars/temperature")
  s = s & "</p></body></html>"
Case "fff.htm"
   ..
Case Else
   ..
End Select
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice