Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.discuss.downloadMessageEnclosure
on downloadMessageEnclosure (msgnum) { <<Changes: <<03/15/00; 5:35:47 PM by PBS <<If the fatPages icon doesn't exist in the website, use the version that's stored in mainResponder.resources. <<This policy prevents breakage -- in case someone has put a custom fatPages icon in their website. <<Another change: delete application/x-frontier- from the type string only if the type string begins with application/x-frontier-. <<04/10/00; 3:29:18 PM by JES <<Localized string constants using mainResponder.getString <<05/01/00; 2:25:04 PM by JES <<call getString with a replacement table address, not a list local (htmltext = "", indentlevel = 0); on add (s) { htmltext = htmltext + string.filledString ("\t", indentlevel) + s + "\r"}; on td (s) { add ("<td valign=\"top\"><font size=\"-0\">" + s + " </font></td>")}; on tr (name, value) { // JES note: this isn't getting called anywhere add ("<tr>"); indentlevel++; td (name + ":"); td (value); add ("</tr>"); indentlevel--}; local (adrmsg = mainresponder.discuss.getmessagetable (msgnum)); local (typestring = adrMsg^.enclosureType); bundle { //set typestring <<PBS 03/15/00: delete application/x-frontier- from the type string only if it's actually present. local (prefix = "application/x-frontier-"); temp.ts = typestring; if typeString beginsWith prefix { typestring = string.delete (adrmsg^.enclosuretype, 1, sizeof (prefix))}; typestring = string.typeToString (typestring) - "Type"; bundle { // Try to translate the string for localization. 4/10/00; 4:09:20 PM by JES local (languageTableAddress = mainResponder.localization.getLanguageTableAddress ()); if defined (languageTableAddress^.strings.types.["a" + typeString]) { typestring = languageTableAddress^.strings.types.["a" + typeString]}}}; local (bits); bundle { //fart around with the bits pack (adrmsg^.enclosurebits, @bits); bits = base64.encode (bits, infinity)}; bundle { //if it has an enclosure, add a fat page comment if adrmsg^.enclosureaddress != "" { bundle { //add a user-visible comment add ("<br><br><br><br>"); add ("<center>"); indentlevel++; add ("<p><table width=\"65%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td>"); indentlevel++; add ("<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">"); indentlevel++; add ("<tr bgcolor=\"beige\">"); indentlevel++; add ("<td valign=\"top\">"); indentlevel++; try { //there may be a fatPages icon in the website add (html.data.standardmacros.imageref ("fatpage"))} else { //PBS 03/15/00: use the fatPages icon from mainResponder.resources local (hwList = html.getGifHeightWidth (@mainResponder.resources.userlandIcons.fatPage)); add ("<img src=\"/resources/userlandIcons/fatPage\" height=\"" + hwList [1] + "\" width=\"" + hwList [2] + "\">")}; add ("</td>"); indentlevel--; add ("<td bgcolor=\"beige\" valign=\"middle\"><font size=\"+0\">"); indentlevel++; local (replacementList); new (tableType, @replacementList); // 05/01/00 JES: use replacement table, not a list replacementList.athing = typeString; replacementList.adr = adrmsg^.enclosureaddress; add (mainResponder.getString ("discuss.thisIsAFatPageContainingAThing", @replacementList)); local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list replacementTable.size = sizeOf (bits); add (mainResponder.getString ("discuss.howBigIsItInBytes", @replacementTable)); add ("<p>" + mainResponder.getString ("discuss.howToLoadAFatPageObject")); add ("<p>" + mainResponder.getString ("discuss.forMoreInfoAboutFatPages")); add ("</font></td>"); indentlevel--; add ("</tr>"); indentlevel--; add ("</table>"); indentlevel--; add ("</td></tr></table>"); indentlevel--; add ("</center>"); indentlevel--}; bundle { //add the fatpage comment add ("<!--"); add ("#fatPage"); on addHint (name, value, flencode=false) { local (s = string (value)); if flencode { s = base64.encode (string (value), 0)}; add ("#" + name + " " + s)}; addHint ("version", 1); addHint ("docs", "http://www.scripting.com/fatPages/about.html"); addHint ("adrPageData", adrmsg^.enclosureaddress); addHint ("objectType", adrmsg^.enclosuretype); addHint ("pageData", string (bits), false); add ("-->")}}}; 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.