Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.discuss.listTopMessages
on listTopMessages (ctToList=10, url=nil, groupName="default") { <<Changes <<4/20/03; 1:00:22 PM by JES <<New optional parameter, groupName. This lets us show the user's real name instead of just an email address, when displaying most read message pages in a Manila site. local (pta = html.getPageTableAddress ()); if url == nil { url = pta^.responderattributes.urls^.discussMsgReader}; local (htmltext = "", indentlevel = 0); on add (s) { htmltext = htmltext + string.filledString ("\t", indentlevel) + s + "\r"}; on td (s, align="") { add ("<td nowrap " + align + " valign=\"middle\"><font size=\"-1\"> " + s + " </font></td>")}; on shortenstring (s, maxlen=35) { if sizeof (s) <= maxlen { return (s)}; return (string.mid (s, 1, maxlen - 3) + "...")}; local (adrroot = mainresponder.discuss.openroot ()); local (adrmsgs = @adrroot^.messages); local (adrrankings = @adrroot^.stats.rankings, ctrankings = sizeof (adrrankings^)); local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list replacementTable.date = mainResponder.localization.dateTimeString (timeCreated (adrrankings)); add ("<i>" + mainResponder.getString ("discuss.rankingsCompiledOn", @replacementTable) + "</i><p>"); // 4/13/00 JES: localized compiled-on date local (i, adrmsg); add ("<table cellspacing=\"3\">"); indentlevel++; bundle { //column headings; 4/12/00 JES: localized headings add ("<tr>"); indentlevel++; td ("<b> </b>"); td ("<b>" + mainResponder.getString ("listHeaders.count") + "</b>"); td ("<b>" + mainResponder.getString ("listHeaders.date") + "</b>"); td ("<b>" + mainResponder.getString ("listHeaders.subject") + "</b>"); td ("<b>" + mainResponder.getString ("listHeaders.originator") + "</b>"); add ("</tr>"); indentlevel--}; for i = ctrankings downto (ctrankings - ctToList + 1) { adrmsg = @adrmsgs^.[nameof (adrrankings^ [i])]; add ("<tr>"); indentlevel++; td (ctrankings - i + 1, "align=\"center\""); td (adrmsg^.ctReads); td (mainResponder.localization.shortDateString (adrmsg^.posttime)); // 4/13/00 JES: localized td (mainresponder.discuss.linkToMessage (adrmsg, url, 40)); td (mainResponder.members.getMemberName (groupName, adrmsg^.member)); add ("</tr>"); indentlevel--}; add ("</table>"); indentlevel--; return (htmltext)}
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.