Promotic

onPageModify - zdarzenie obiektu PmaWebDir

Opis:
Zdarzenie zostanie wywołane w celu możliwości zmiany przesyłanego dokumentu tekstowego.
Jest wywołane po wykonaniu wszystkich korekt nad dokumentem (włącznie z automatycznym zastąpieniem słów kluczowych) i przed wysłaniem dokumentu do przeglądarki internetowej.
Parametry:
pMe(Object) Odniesienie do PmaWebDir obiektu, w którym dane zdarzenie powstaje.
pEvent(Object) Odniesienie do obiektu zawierającego ściślejsze informacje o danym zdarzeniu.
pEvent.User - (Object) [do odczytu] Obiekt PmUser, który przedstawia zalogowanego użytkownika, który wywołał żądanie o daną stronę.
pEvent.Params - (String) [do odczytu] Łańcuch tekstowy zawierający parametry w adresie URL.
Ten łańcuch jest w postaci na przykład "a=13&b=xyz". To znaczy, że "a" posiada wartość "13" oraz "b" posiada wartość "xyz".
Uzyskać poszczególne pojedyńcze wartości z tego łańcucha można przy pomocy metody Pm.HTTPGetFormValue.
pEvent.Method - (String) [do odczytu] Nazwa metody HTTP, która przesłała parametry:
"POST" - Wysłanie parametrów z formularza HTML
"GET" - Wysłanie parametrów jako części wymaganej nowej strony
pEvent.FilePath - (String) [do odczytu] Ścieżka względna do pliku, który jest żądany z przeglądarki internetowej.
pEvent.PageString - (String) [do odczytu i zapisu] Łańcuch tekstowy zawierający cały wymagany HTM/XML dokument w formie tekstowej po wykonaniu automatycznego zastąpienia słów kluczowych. Jeżeli wymagany plik nie jest HTML/XML dokumentem, wtedy łańcuch ten jest pusty. Algorytm może zmienić zawartość dokumentu zapisem do tej właściwości.
pEvent.Modify - (Boolean) [do odczytu i zapisu] Jeżeli została zmieniona właściwość pEvent.PageString, wtedy wartość właściwości musi być ustawiona na true. W innym przypadku zmiany nie zostaną zaakceptowane.
Jeżeli jest Źródło danych = Tekst wprowadzony do właściwości pEvent.PageString w zdarzeniu onPageModify, wtedy właściwość pEvent.Modify jest wstępnie ustawiona na true.
pEvent.MimeType - (String) [do odczytu i zapisu] Łańcuch tekstowy zawierający typ MIME, określony na podstawie rozszerzenia żądanej strony.
Typ MIME jest określony w nagłówkach odpowiedzi HTTP.
Zmiana typu na inny może być wygodna na przykład jeżeli przeglądarka ma obowiązek nie wyświetlać zawartości strony podczas odwoływania się do niej, ale zamiast tego powinna oferować pobranie pliku (na przykład poprzez zmianę na MIME typu application/octet-stream).
Notatka:
Zdarzenie zostanie wywołane tylko dla następujących typów dokumentów: *.XML, *.HTM, *.JSON, *.CSV, *.TXT oraz *.JS.
 
- Jeżeli jest ustawione Źródło danych = Pliki na dysku w określonym folderze, wtedy wykorzystanie tego zdarzenia jest zalecane tylko dla specjalnych przypadkach.
Ponieważ to zdarzenie zostanie wywołane dopiero po zastąpieniu wartości słów kluczowych w dokumencie, jest zbędnym w tym miejscu ustawiać słowa kluczowe.
Prostszy sposób zmiany przesyłanego dokumentu jest przy pomocy zdarzenia onPageLoad, które zostanie wywołane jeszcze przed zastąpieniem słów kluczowych.
Patrz również Przykład1.
- Jeżeli jest Źródło danych = Tekst wprowadzony do właściwości pEvent.PageString w zdarzeniu onPageModify, wtedy to zdarzenie jest jedynym sposobem, jak napełnić zawartość wysyłanych danych.
Patrz również:
Przykład1:
Niechaj istnieje HTML strona użytkownika na dysku (Page.html) w której wymagamy w tekście zastąpić słowo kluczowe _(XXXXX)_ na przykład nazwą zalogowanego użytkownika. Zamiana zostanie wykonana przy pomocy metody StringReplace.

Tekst na stronie HTML:
<title>_(XXXXX)_</title>
  
Skrypt w zdarzeniu onPageModify:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

if (pEvent.FilePath == "Page.htm")
{
var sReplaced = Pm.StringReplace(pEvent.PageString, "xxxxx", pEvent.User.Name);
pEvent.Modify = true;
pEvent.PageString = sReplaced;
}
Przykład2:
Przykład do wysyłania bardzo prostych stron HTML wytwarzanych dynamicznie bezpośrednio w skrypcie tego zdarzenia. Konfigurator "Źródło danych" musi być ustawiony na "Tekst wprowadzony do właściwości pEvent.PageString w zdarzeniu onPageModify".
JavaScriptVBScriptWybierz oraz skopiuj do schowka

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

Historia:
Pm9.00.20: Nowy parametr pEvent.Method.
Pm9.00.19:
- Nowy parametr pEvent.Params z parametrami w adresie URL.
- Nowy parametr pEvent.MimeType zawierający MIME typ strony HTML.
© MICROSYS, spol. s r.o.