Promotic
WikipediaLinkedInYoutubeTwitterFacebook

onPageModify - event of the PmaWebDir object

Description:
The event is triggered for the possibility to change the sent text document. Is triggered after all changes of the document has been finish (including automatic replacing of keywords) and before sending the document into the Web browser.
Parameters:
pMe(Object) Reference to the PmaWebDir object where the event rises.
pEvent(Object) Reference to object describing detailed information about the specific event.
pEvent.User - (Object) The PmUser object that represents authorized user, who called the request for this page.
pEvent.FilePath - (String) Relative path to the file that is requested from the Web browser.
pEvent.PageString - (String) Text string that contains the whole required HTML/XML document in the text form after the automatic replacing of keywords has been made. If the required file isn't a HTML/XML document, then this string is empty. The algorithm can change the content of the document by writing into this property.
pEvent.Modify - (Boolean) If the pEvent.PageString property has been changed, then the value of the property must be set to true. Otherwise changes will not be accepted.
If Data source = Text set into the pEvent.PageString property in the onPageModify event, then the pEvent.Modify property is preset to true.
Note:
The event is called only for the following types of documents: *.XML, *.HTM, *.JSON, *.CSV and *.TXT.
 
- If set Data source = Text set into the pEvent.PageString property in the onPageModify event, then using this event is recommended only for special cases.
Because this event is triggered after replacing the keywords in the document, it is needless to change the keywords here.
More simple way to change the sent document is by the onPageLoad event, which is triggered just before keywords replacing.
See also Example1.
- If Data source = Text set into the pEvent.PageString property in the onPageModify event, then this event is the only option to fill in the sent data.
Example1:
Suppose we have a user html page on the disk (Page.html) where we require the _(XXXXX)_ keyword to be replaced in the text, for example by the user name. The replacement is performed by the StringReplace method.

Text in HTML page:
<title>_(XXXXX)_</title>
  
Script in the onPageModify event:
JavaScriptVBScriptSelect and copy to clipboard

if (pEvent.FilePath == "Page.htm")
{
var sReplaced = Pm.StringReplace(pEvent.PageString, "xxxxx", pEvent.User.Name);
pEvent.Modify = true;
pEvent.PageString = sReplaced;
}
Example2:
Example of sending very simple HTML pages dynamicaly created directly in the script of this event. The "Data source" configurator must be set to "Text set into the pEvent.PageString property in the onPageModify event".
JavaScriptVBScriptSelect and copy to clipboard

var s;
switch (pEvent.FilePath)
{
case "abc.htm":
s = "<html><head><title>abc</title></head>";
s += "<body><p>Temperature = ";
s += pMe.Pm("/Data/#vars/temperature").Value;
s += "</p></body></html>";
break;
case "fff.htm":
//...
break;
default:
//...
break;
}
pEvent.PageString = s;
PROMOTIC 9.0.16 SCADA system documentation - MICROSYS, spol. s r.o.

Send page remarkContact responsible person
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice