Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.callFileWriterStartup
on callFileWriterStartup (adrObject, adrPageTable, templateName=nil) {
<<Tuesday, April 14, 1998 at 4:10:23 PM by PBS
local (adrStorage);
adrStorage = html.getFileWriterStorage ();
try {delete (adrStorage)};
new (tableType, adrStorage);
<<Call file writer startup script.
on getFtpSite () {
local (nomad = adrObject);
if typeOf (nomad^) != tableType {
nomad = parentOf (nomad^)};
loop {
if defined (nomad^.["#ftpSite"]) {
return (@nomad^.["#ftpSite"])};
if defined (nomad^.["#prefs"].ftpSite) {
return (@nomad^.["#prefs"].ftpSite)};
if defined (nomad^.["#prefs"].["#ftpSite"]) {
return (@nomad^.["#prefs"].["#ftpSite"])};
nomad = parentOf (nomad^);
if nomad == nil or nomad == @root {
break}}};
local (adrFtpSite = getFtpSite ());
local (method, adrScript);
if typeOf (adrFtpSite^) == stringType { //handle indirect ftpSites
try {adrFtpSite = @user.html.sites.default};
try {adrFtpSite = @user.html.sites.[adrFtpSite]}};
try {method = adrFtpSite^.method};
try {method = adrFtpSite^.[templateName].method};
if method == nil { //backwards compatibility
method = "file";
try {
if not adrFtpSite^.isLocal {
method = "ftp"}}};
if defined (user.html.fileWriters.[method]) {
adrScript = @user.html.fileWriters.[method].startup}
else {
if defined (html.fileWriters.[method]) {
adrScript = @html.fileWriters.[method].startup}
else {
scriptError ("Can't render this page because \"" + method + "\" is not an installed file writer.")}};
<<Store the address of the ftp site and the method in the storage table.
adrStorage^.adrFtpSite = adrFtpSite;
adrStorage^.method = method;
if templateName != nil {
adrStorage^.templateName = templateName};
adrScript^ (adrObject, adrStorage);
return (true)}
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.