Monday, November 08, 2010 at 12:06 AM.
system.verbs.builtins.userland.trialVersionCheck
on trialVersionCheck (flOpenSerialNumberPage=true) {
<<Changes
<<9/10/02; 4:56:35 PM by JES
<<New optional parameter, flOpenSerialNumberPage. If true, open the serial number page when the trial expires. If false, just disable the UI. Defaults to true. Return true if the trial version has expired, or false if the trial is not expired or not a trial version.
<<7/31/02; 4:59:53 PM by JES
<<Open the serial number page in the admin site, not inthe control panel.
<<4/8/02; 3:30:31 PM by JES
<<Cribbed from radio.thread.agents.trialVersion
local (daysInTrial = 60);
bundle { //initialize userland.trialVersion for Frontier
if not defined (userland.trialVersion) {
new (tableType, @userland.trialVersion)};
if not defined (userland.trialVersion.flTrialVersion) {
local (flTrialVersion = true);
if (user.prefs.serialNumber != "") and (user.prefs.serialNumber != "A1NX-5JF5-1909") {
flTrialVersion = userland.isValidSerialNumber (string.upper (user.prefs.serialNumber))};
userland.trialVersion.flTrialVersion = flTrialVersion};
if not defined (userland.trialVersion.whenInstalled) {
userland.trialVersion.whenInstalled = clock.now ()};
if not defined (userland.trialVersion.flExpired) {
userland.trialVersion.flExpired = false}};
if userland.trialVersion.flTrialVersion { //check to see if we already have a valid serial number
<<The server admin may have entered a serial number directly into user.prefs.serialNumber.
if userland.isValidSerialNumber (string.upper (user.prefs.serialNumber)) and (user.prefs.serialNumber != "A1NX-5JF5-1909") {
userland.trialVersion.flTrialVersion = false}};
if not userland.trialVersion.flTrialVersion { //if not trial version, make sure whenRegistered is defined
if not defined (userland.trialVersion.whenRegistered) {
userland.trialVersion.whenRegistered = clock.now ()}};
if userland.trialVersion.flTrialVersion { //trial version -- check for expiration
if (clock.now () - userland.trialVersion.whenInstalled) > (daysInTrial * 24 * 60 * 60) {
if not userland.trialVersion.flExpired {
if flOpenSerialNumberPage {
if system.environment.isRadio {
radio.menuCommands.openPage (radio.data.systemUrls.serialNumber)}
else { //Frontier
local (server = "127.0.0.1");
if user.inetd.config.http2.port != 80 {
server = server + ":" + user.inetd.config.http2.port};
if not defined (mainResponder) {
dialog.alert ("This trial version of Frontier has expired.");
return (true)}
else {
webbrowser.openUrl ("http://" + server + mainResponder.adminSite.urls.serialNumber);
webbrowser.bringtofront ()}}};
system.temp.Frontier.flWasExpired = true;
userland.trialVersion.flExpired = true}}};
if userland.trialVersion.flExpired { //disable UI elements if flExpired is true
system.temp.Frontier.flWasExpired = true;
on closeIt (adr) {
if defined (adr^) {
if table.getRootAddress (adr) == adr { //hide the window
window.hide (adr);
return (true)}};
try {
window.close (adr)}};
window.visit (@closeIt);
if defined (Frontier.hideApplication) {
Frontier.hideApplication ()};
menu.clearMenuBar ()}
else { //restore UI elements if flExpired is false
local (flRestoreUi = false);
if not userland.trialVersion.flTrialVersion {
if defined (system.temp.Frontier.flWasExpired) {
if system.temp.Frontier.flWasExpired {
flRestoreUi = true}};
if not menu.isInstalled (@Frontier.tools.menu) {
flRestoreUi = true}};
if flRestoreUi {
menu.noSuite ();
if user.prefs.openAboutWindow {
window.about ()};
system.temp.Frontier.flWasExpired = false}};
return (userland.trialVersion.flExpired and userland.trialVersion.flTrialVersion)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.