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.