Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.webServer.setTemplate
on setTemplate (adratts, flHomePage, adrsite) { <<Changes: <<12/1/01; 2:44:07 PM by JES <<Don't use the desktopWebsiteTemplate for folderView pages. <<11/30/01; 9:15:08 PM by JES <<If this is the weblog editing page (a.k.a. home page), and flStaticRendering is false, then use the desktopWebsiteTemplate. <<11/30/01; 12:36:27 PM by JES <<Convert line-endings in templatetext to \r, before setting the template. <<11/28/01; 6:32:19 PM by DW <<Read the file instead of using the cached filetext. <<11/24/01; 5:21:45 PM by JES <<If pta^.flUseHeadTitle is defined and true, replace all of the <%title%> macros in the <head> section with <%homeTitle%> macros. Needed for setting the title in the title-bar on the prefs and help pages. <<10/29/01; 9:29:48 PM by PBS <<Put the <head> section into pta^.pageHeader, so that autoParagraphs, clayCompatibility, and activeUrls are not run in the <head> section. This fixes the bug with extraneous <p> tags, for example. <<10/17/01; 3:01:06 PM by PBS <<Set the template in the page table, not in the website itself, for thread-safety. local (pta = html.getPageTableAddress ()); local (ftemplate = adratts^.template); if defined (adratts^.homeTemplate) { if flHomePage { ftemplate = adratts^.homeTemplate}}; if defined (adratts^.desktopWebsiteTemplate) { //possibly use the desktopWebsiteTemplate if pta^.path == radio.data.systemUrls.weblogEditor { if not pta^.radioResponder.flStaticRendering { local (flFolderView = false); bundle { //set flFolderView if defined (pta^.radioResponder.postArgs.folderView) { if pta^.radioResponder.postArgs.folderView != "0" { flFolderView = true}}; if file.isFolder (pta^.radioResponder.fileBeingRendered) { flFolderView = true}}; if not flFolderView { ftemplate = adratts^.desktopWebsiteTemplate}}}}; local (templatetext); bundle { //set templatetext for outlines local (adrcache); radio.file.getFileAttributes (ftemplate, @adrcache); case radio.webserver.getfilemimetype (ftemplate) { "text/x-opml" { templatetext = string (adrcache^.outline)}} else { templatetext = string (file.readwholefile (ftemplate))}}; bundle { //convert line endings to \r templatetext = string.replaceAll (templatetext, "\r\n", "\r"); templatetext = string.replaceAll (templatetext, "\n", "\r")}; if date.versionLessThan (Frontier.version (), "7.1b1") { //patch macro delimiters templatetext = string.replaceAll (templatetext, adrsite^.["#prefs"].macroStartCharacters, "{", false); templatetext = string.replaceAll (templatetext, adrsite^.["#prefs"].macroEndCharacters, "}", false)}; <<wp.newtextobject (templatetext, @adrsite^.["#template"]) bundle { //PBS 10/29/01: separate into template and pageheader if possible local (ix = 0); ix = string.patternMatch ("<body ", string.lower (templatetext)); if ix > 0 { //found <body> section? local (pageHeader = string.mid (templatetext, 1, ix - 1)); if defined (pta^.flUseHeadTitle) { if pta^.flUseHeadTitle { pageHeader = string.replaceAll (pageHeader, "<%title%>", "<%headTitle%>", false)}}; pta^.pageHeader = pageHeader; pta^.template = string.mid (templatetext, ix, infinity)} else { //couldn't find <body> section -- everything goes into pta^.template then pta^.template = templatetext}}; //PBS 10/17/01: template in page table, not in website itself 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.