Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.weblog.view
on view () { <<Changes: <<10/26/01; 9:42:52 PM by DW <<Generate the empty string if not static rendering. <<8/31/01; 8:40:43 PM by JES <<Get the date from pta^.radioResponder.getArgs.d, instead of re-parsing the URL here. local (pta = html.getpagetableaddress ()); if not pta^.radioResponder.flStaticRendering { return ("")}; local (daytemplate = string (file.readwholefile (pta^.radioResponder.atts.dayTemplate))); local (itemtemplate = string (file.readwholefile (pta^.radioResponder.atts.itemTemplate))); local (mindate, maxdate); bundle { //parse args if defined (pta^.radioResponder.getArgs.d) { local (d = pta^.radioResponder.getArgs.d); local (yr = string.nthField (d, '/', 1)); local (mo = string.nthField (d, '/', 2)); local (dy = string.nthField (d, '/', 3)); mindate = date.set (dy, mo, yr, 0, 0, 0); maxdate = date (number (date.set (dy, mo, yr, 0, 0, 0)) + 3600 * 24)}}; local (adrblog = radio.weblog.init ()); pta^.title = adrblog^.prefs.title; return (radio.weblog.render (adrblog, dayTemplate, itemTemplate, catname:nil, flSameMachine:pta^.radioresponder.flsamemachine, flIEditLinks:true, minDate:mindate, maxDate:maxdate))} <<on view (maxdays=nil) <<local (pta = html.getpagetableaddress ()) <<local (daytemplate = string (file.readwholefile (pta^.radioResponder.atts.dayTemplate))) <<local (daylist = {}, textlist = {}) <<local (itemtemplate = string (file.readwholefile (pta^.radioResponder.atts.itemTemplate))) <<local (editbuttonimg = radio.images.systemImageRef ("icons/editbutton")) <<local (adrblog = radio.weblog.init (), catname = nil, flArchivePage = false) <<if maxdays == nil <<maxdays = adrblog^.prefs.ctDaysToDisplay <<local (bodytext) <<bundle //set bodytext <<local (minDate = date.set (1, 1, 1904, 0, 0, 0), maxDate = date.set (1, 1, 2040, 0, 0, 0)) <<local (ctdays = 0, lastday = -1, itemstext = "", lastitemdate) <<on addDay () <<if adrblog^.prefs.manila.enabled //01/25/01 JES: build homepage text for sending to a Manila site <<dateList = dateList + lastitemdate <<if system.environment.isMac //02/22/2001 JES: convert to Latin text <<textList = textList + latinToMac.macToLatin (itemstext) <<else <<textList = textList + itemstext <<local (s = daytemplate) <<s = string.replaceall (s, "{longDate}", date.longstring (lastitemdate), false) <<s = string.replaceall (s, "{shortDate}", date.shortstring (lastitemdate), false) <<s = string.replaceall (s, "{dayOfWeek}", date.dayOfWeekToString (date.dayOfWeek (lastitemdate)), false) <<s = string.replaceall (s, "{items}", itemstext, false); itemstext = "" <<bundle //PBS 02/22/01: archive link <<local (day, month, year, hour, minute, second) <<date.get (lastitemdate, @day, @month, @year, @hour, @minute, @second) <<local (dateString = string.mid (year, 3, 2) + "/" + string.padWithZeros (month, 2) + "/" + string.padWithZeros (day, 2)) <<local (imgTag = "<img src=\"http://scripting.com/images/dailyLinkIcon.gif\" height=\"19\" width=\"13\" alt=\"Permanent link to archive for " + dateString + ".\" border=\"0\">") <<local (archiveUrl = "") <<if not flArchivePage <<archiveUrl = year + "/" + string.padWithZeros (month, 2) + "/" + string.padWithZeros (day, 2) + ".html" <<if catName != nil //PBS 03/18/01: the archive URL for category pages needs to pop up a level <<archiveUrl = "../" + archiveUrl <<local (archiveLink = html.getLink (imgTag, archiveUrl)) <<s = string.replaceAll (s, "{archiveLink}", archiveLink, false) <<bodytext = bodytext + s + "\r\n" <<bodytext = "\r\n" <<local (i, adrpost, s, enclosurelink, editbuttonlink) <<for i = sizeof (adrblog^.posts) downto 1 <<adrpost = @adrblog^.posts [i] <<bundle //PBS 02/22/01: check min and max dates <<if adrpost^.when < minDate <<break <<if adrpost^.when > maxDate <<continue <<bundle //only include if in category, if catname was specified <<if catname != nil <<local (flskip = true) <<if defined (adrpost^.categories) <<local (adrthiscat = @adrpost^.categories.[catname]) <<if defined (adrthiscat^) <<if adrthiscat^ <<flskip = false <<if flskip <<continue <<bundle //check date rollover <<local (when = adrpost^.when, day, month, year, hour, minute, second) <<date.get (when, @day, @month, @year, @hour, @minute, @second) <<if lastday == -1 //first time through loop <<lastday = day <<else <<if day != lastday <<ctdays++ <<if ctdays == maxdays <<break <<lastday = day <<addDay () <<bundle //set enclosurelink <<if defined (adrpost^.enclosure) <<enclosurelink = "<a href=\"" + adrpost^.enclosure.url + "\">" + radio.data.strings.enclosureImg + "</a>" <<else <<enclosurelink = "" <<bundle //set editbuttonlink <<local (url = radio.data.systemUrls.weblogEditor + "?itemtoedit=" + number (nameof (adrpost^))) <<editbuttonlink = "<a href=\"" + url + "\">" + editbuttonimg + "</a>" <<local (sourcelink = "") <<bundle //set sourcelink <<if defined (adrpost^.sourceUrl) <<local (adrdata = xml.aggregator.init ()) <<local (adrsource = @adrdata^.services.[adrpost^.sourceUrl]) <<if defined (adrsource^) <<sourcelink = "<a href=\"" + adrsource^.compilation.channellink + "\" title=\"Source: " + adrsource^.compilation.channeltitle + ".\">" + radio.data.strings.sourceImg + "</a>" <<s = itemtemplate <<s = string.replaceall (s, "{text}", string (adrpost^.text), false) <<s = string.replaceall (s, "{enclosure}", enclosurelink, false) <<s = string.replaceall (s, "{editButton}", editbuttonlink, false) <<s = string.replaceall (s, "{source}", sourcelink, false) <<s = string.replaceall (s, "{when}", date.timestring (adrpost^.when), false) <<itemstext = itemstext + s + "\r\n" <<lastitemdate = adrpost^.when <<if itemstext != "" //there was some text left over when loop finished <<addDay () <<return (bodytext)
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.