Monday, November 08, 2010 at 12:04 AM.

system.verbs.builtins.mainResponder.discuss.postMessage

on postMessage (flAcceptFileUploads=false, postTime=clock.now ()) {
	<<Post a discussion group message.
		<<Changes:
			<<4/8/03; 2:56:30 PM by JES
				<<Pass the address of a data table to mainResponder.discuss.addMessage. The data table contains the POST-ing client's IP address, which mainResponder.discuss.addMessage will save in the message table.
			<<10/08/00; 4:58:57 PM by JES
				<<Redirect if the postArgs contains a redirect url
			<<04/02/00; 7:17:10 PM by PBS
				<<Added postTime parameter so Manila can over-ride -- Manila can support time zone preferences.
			<<5/26/99; 02:01:42 GMT by AR
				<<Added groupName parameter to call to mainresponder.discuss.addmessage.
			<<5/20/99; 16:28:38 GMT by AR
				<<Added optional parameter named flAcceptFileUploads and defaulting to false. If true, the script saves attached files to the enclosure folder structure.
			<<5/19/99; 14:59:20 GMT by DW
				<<It now returns the msgNum of the new message so a caller can do stmemberKey with the table before returning.
	
	local (pta = html.getPageTableAddress ());
	local (subject = pta^.postArgs.subject);
	local (memberKey = nameof (pta^.adrMemberInfo^));
	local (inResponseTo = pta^.postArgs.inResponseTo);
	
	local (data); new (tableType, @data);
	bundle { //populate the data table
		data.ipAddress = pta^.client};
	
	local (msgNum = mainresponder.discuss.addMessage (subject, memberKey, inResponseTo, string (pta^.postArgs.text), groupName:pta^.members, postTime:postTime, adrdata:@data));
	
	if flAcceptFileUploads {
		if  (defined (pta^.postArgs.attachFile) and (typeOf (pta^.postArgs.attachFile) == tableType)) {
			mainResponder.discuss.postAttachedFile (@pta^.postArgs.attachFile, msgNum, pta^.members)}};
	
	local (redirectUrl = pta^.responderAttributes.urls^.discussMsgReader);
	if defined (pta^.postArgs.redirect) {
		redirectUrl = pta^.postArgs.redirect};
	mainResponder.redirect (redirectUrl + msgNum);
	
	return (msgNum)}



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.