Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.discuss.buildImageTag
on buildImageTag (msgNum) { <<Given a message number, build the image tag. <<This works for new-style image management, where the images are stored in the dg in an image subtable. <<An image in a dg message table has the following elements: <<bits, the binary data. <<height, the height in pixels of the image. <<width, the width in pixels of the image. <<mimeType, the MIME type of the image (not referenced in this script). <<This feature requires an imageViewer element in the #urls table. This should be a URL to a script which takes a msgNum as pathArgs, as in http://mysite.com/picture$. This script returns the actual image data with MIME type specified in the response headers. <<10/20/99; 11:18:55 AM by PBS <<Changes: <<02/29/00; 10:47:20 PM by PBS <<If the image has been written to disk, the URL is stored in the image subtable. Use that URL instead of calculating the URL. <<04/10/00; 3:02:46 PM by JES <<Localized -- The alt element had a colon in it. Now it's looked up. <<05/01/00; 2:19:46 PM by JES <<Changed getString call that used a replacement list, so that it passes a replacementTableAddress instead. local (pta = html.getPageTableAddress ()); local (adrMsgTable = mainResponder.discuss.getMessageTable (msgNum)); if not defined (pta^.responderAttributes.urls^.imageViewer) { //check for imageViewer in #urls table return ("")}; //return empty string, can't build an img tag if not defined (adrMsgTable^.image) { //check for image subtable return ("")}; //return empty string, can't build an img tag local (imgTag = "<img src=\""); local (url = pta^.responderAttributes.urls^.imageViewer + adrMsgTable^.msgNum); if defined (adrMsgTable^.image.url) { //PBS 02/29/00: if the image is on a static server, use that URL instead of the calculated URL url = adrMsgTable^.image.url}; imgTag = imgTag + url + "\" "; imgTag = imgTag + "height=\"" + adrMsgTable^.image.height + "\" "; imgTag = imgTag + "width=\"" + adrMsgTable^.image.width + "\" "; imgTag = imgTag + "border=\"0\" "; local (altText, replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: build replacement table for getString replacementTable.msgsubject = adrMsgTable^.subject; replacementTable.msgbody = adrMsgTable^.body; altText = mainResponder.getString ("discuss.imageAltText", @replacementTable); altText = string.replaceAll (altText, "\n", " "); //make sure the alt text can appear in an img tag altText = string.replaceAll (altText, "\r", " "); altText = string.replaceAll (altText, "\"", """); imgTag = imgTag + "alt=\"" + altText + "\">"; return (imgTag)}
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.