Promotic

onPageModify - událost objektu PmaWebDir

Popis:
Událost je vyvolána pro možnost změny posílaného textového dokumentu.
Vyvolá se 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 PmaWebDir objekt, ve kterém daná událost vzniká.
pEvent(Object) Reference na objekt, který popisuje informace o dané události.
pEvent.User - (Object) [pro čtení] Objekt PmUser, který představuje přihlášeného uživatele, který vyvolal požadavek na stránku.
pEvent.Params - (String) [pro čtení] Textový řetězec obsahující parametry v URL adrese.
Tento řetězec má tvar například "a=13&b=xyz". To znamená, že "a" má hodnotu "13" a "b" má hodnotu "xyz".
Získat jednotlivé hodnoty z tohoto řetězce lze metodou Pm.HTTPGetFormValue.
pEvent.Method - (String) [pro čtení] Název HTTP metody, kterou se parametry zaslaly:
"POST" - Zaslání parametrů z HTML formuláře
"GET" - Zaslání parametrů jako součást vyžadované nové stránky
pEvent.FilePath - (String) [pro čtení] Relativní cesta k souboru, který je vyžadován z Web prohlížeče.
pEvent.PageString - (String) [pro čtení i zápis] 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) [pro čtení i zápis] Pokud byla změněna vlastnost pEvent.PageString, pak hodnota vlastnosti musí být 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.
pEvent.MimeType - (String) [pro čtení i zápis] Textový řetězec obsahující MIME typ, určený z přípony požadované stránky.
MIME typ se uvádí v HTTP hlavičkách odpovědi.
Změnit typ na jiný může být výhodné například pokud je vyžadováno, aby prohlížeč při odkazu na tuto stránku nezobrazil její obsah, ale místo toho nabídnul stáhnutí souboru (například změnou na MIME typ application/octet-stream).
Poznámka:
Událost je vyvolána pouze pro následující typy dokumentů: *.XML, *.HTM, *.JSON, *.CSV, *.TXT a *.JS.
 
- Pokud je nastaveno Zdroj dat = Soubory na disku v zadané složce, pak je použití této události doporučeno pouze pro speciální případy.
Protože tato událost je 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á je vyvolána 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.
Viz také:
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 metodou StringReplace.

Text v HTML stránce:
<title>_(XXXXX)_</title>
  
Skript v události onPageModify:
JavaScriptVBScriptVyber a zkopíruj do schránky

if (pEvent.FilePath == "Page.htm")
{
var sReplaced = Pm.StringReplace(pEvent.PageString, "xxxxx", pEvent.User.Name);
pEvent.Modify = true;
pEvent.PageString = sReplaced;
}
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".
JavaScriptVBScriptVyber a zkopíruj do schránky

var s;
if ("GET" == pEvent.Method)
{
switch (pEvent.FilePath)
{
case "abc.htm":
s = "<html><head><title>abc</title></head>";
s += "<body><p>Teplota = ";
s += pMe.Pm("/Data/#vars/temperature").Value;
s += "</p></body></html>";
break;
case "fff.htm":
// ...
break;
default:
// ...
break;
}
pEvent.PageString = s;
}

Historie:
Pm9.00.20: Nový parametr pEvent.Method.
Pm9.00.19:
- Nový parametr pEvent.Params s parametry v URL adrese.
- Nový parametr pEvent.MimeType obsahující MIME typ HTML stránky.
© MICROSYS, spol. s r. o.