Wednesday, February 16, 2011 at 12:00 AM.
river2Suite.static.buildOnePage
on buildOnePage (adrpage, adruser=nil) {
<<Changes
<<11/9/10; 8:12:50 AM by DW
<<Replace calls to file.writewholefile with river2Suite.static.writeFile.
<<5/4/10; 10:14:21 AM by DW
<<Call river2Suite.static.setupPagetable to set up the pagetable.
<<3/26/10; 8:29:38 AM by DW
<<New optional parameter, adruser, if not nil, we render the static page for that user. Also fixed bug with searchArgs, it was initialized as a table, it's supposed to be a string.
<<3/17/10; 7:48:28 PM by DW
<<Created.
local (adrdata = river2suite.init (), pagetable, htmltext);
river2Suite.static.setupPagetable (adruser, @pagetable, ".html");
<<bundle //old code, factored 5/4/10 by DW
<<new (tabletype, @pagetable)
<<pagetable.path = ""
<<pagetable.client = "staticbuild" //must be defined
<<bundle //set searchArgs, 3/26/10 by DW
<<if adruser == nil
<<pagetable.searchargs = ""
<<else
<<pagetable.searchargs = "user=" + string.urlencode (nameof (adruser^))
<<new (tabletype, @pagetable.river2)
<<pagetable.river2.flStaticBuild = true
<<bundle //set pagetable.river2.staticFname, 3/26/10 by DW
<<if adruser == nil
<<pagetable.river2.staticFname = nameof (adrpage^) + ".html"
<<else
<<pagetable.river2.staticFname = nameof (adruser^) + ".html"
<<pagetable.method = "GET"
htmltext = html.buildObject (adrpage, @pagetable);
<<scratchpad.bopparams = pagetable
river2Suite.static.writeFile (pagetable.river2.staticFname, htmltext, adruser);
river2Suite.loadImage ("title.gif", @pagetable);
river2Suite.loadImage ("linkToFeedContents.gif", @pagetable);
if defined (pagetable.river2images) {
local (imgfolder = "images" + file.getpathchar (), adrintable);
for adrintable in @pagetable.river2images {
local (adrimage = adrintable^);
river2Suite.static.writeFile (imgfolder + nameof (adrintable^), adrimage^, adruser)}};
<<scratchpad.river2images = pagetable.river2images
adrdata^.stats.static.ctPageBuilds++;
adrdata^.stats.static.whenLastPageBuild = clock.now ()};
bundle { //test code
buildOnePage (@river2Website.index, @config.river2.users.wikiriver)}
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.