Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.fileWriters.ftp.startup
on startup (adrObject, adrStorage) { <<The startup script is called when a rendering session is starting up. <<A rendering session is usually one of two things: <<1) A single page is being rendered. <<In this case this script is called before that page has been rendered. <<2) An entire table is being rendered. <<In this case this script is called after before any of the pages in the table have been rendered. <<Other types of rendering sessions may exist in the future, <<but the pattern will remain the same. <<adrObject is the address of the object being rendered. <<It might be a page or it might be a table. <<adrStorage is the address of private storage for this file writer for this session. <<This particular script opens the ftp connection at startup <<5/1/03; 10:35:13 PM by EDS try { if not defined (adrStorage^.adrConnectionTable) { local (username, password); local (host); local { adrFtpSite = adrStorage^.adrFtpSite}; username = adrFtpSite^.account; password = adrFtpSite^.password; host = adrFtpSite^.domain; local (adrConnectionTable); adrConnectionTable = tcp.ftp.openConnection(host, username, password, flMessages:false); adrStorage^.adrConnectionTable = adrConnectionTable; if not defined(adrStorage^.adrConnectionTable^) { scriptError("Unknown connection error")}; bundle { // set site root directory siteRootDirectory = adrFtpSite^.directory; if not (siteRootDirectory beginsWith "/") { <</ means at the root <<no / means relative to login directory. <<hardcoding path to login directory is stupid. <<but broke abstraction barrier here getting the directory straight from the conn table. siteRootDirectory = string.popTrailing(adrStorage^.adrConnectionTable^.rootDirectory,'/')+"/" + siteRootDirectory}; if not (siteRootDirectory endsWith "/") { siteRootDirectory = siteRootDirectory + "/"}; if siteRootDirectory == "//" { siteRootDirectory = "/"}; adrStorage^.siteRootDirectory = siteRootDirectory}}} else { scriptError("Error in filewriters.ftp.startup setting up ftp connection: "+tryError)}; adrStorage^.adrObject = adrObject; 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.