How to prompt end users for their name once and store it? |
The goal of this script is:
StepsWe will name our global variable "TheUserName". First step: write the script go to the Script Manager, double click on "UserMain" and type this script in the OnPubLoaded function event: function OnPubLoaded: Boolean;
var S: String;
begin
// 1) Checks whether the user was already prompted.
// If the TheUserName global variable already has a value, then we do not
// prompt the user again.
if GetGlobalVar("TheUserName", "") <> "" then exit;
// Prompts the user then:
S := InputBox("Welcome!"#13#10"Please enter your name:", "What is your name", "");
// If the user does not give a name, set it to "Mysterious user"...
if S = "" then
S := "Mysterious user"
else
begin
// Stores the result only if the user has given a name.
// So he/she will be still prompted the next time.
SetGlobalVar("TheUserName", S, True);
// True means that the global variable is stored.
end;
// When the publication is starting and before the homepage is displayed.
// Set Result to True if you want to exit immediately without any warning.
Result := False;
end; Second step: display the name in a HTML page If you use a HTML Viewer publication, then put this HTML code where you want to display the name: <!--#globalvar ID="TheUserName" --> If you use a IE Browser publication, then use this JavaScript code: document.write(window.external.GetGlobalVariable('TheUserName', '')); NotesYou can of course customize this example: instead of using a dialog box, you could display a HTML page at startup. |