Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.members.getMembershipTable
on getMembershipTable (groupName) { <<Get the address of a membership group. <<groupName is either a string, the name of a membership group, or is an address pointing to a membership group. Most commonly it's a string. <<Changes: <<4/14/00; 8:46:55 PM by JES <<localized error message <<10/2/99; 6:32:05 PM by PBS <<Added support for addresses (and strings that can be coerced to addresses) in members.root. An address in members.root can point to a membership group stored anywhere. <<06/19/00; 10:45:11 AM by JES <<fixed bug when called outside the WSF context <<07/17/00; 1:02:28 PM by PBS <<Fixed a typo in the localization code -- missing parens after call to html.getPageTableAddress. on error () { <<4/14/00; 8:47:35 PM by JES: localized local (pta, tempTable); new (tableType, @tempTable); try { pta = html.getPageTableAddress (); //PBS 07/17/00: typo fixed -- parens were missing if defined (pta^.language) { tempTable.language = pta^.language}}; if not defined (tempTable.language) { // outside wsf context, or no language defined for site if defined (config.mainResponder.globals.language) { tempTable.language = config.mainResponder.globals.language} else { if defined (user.prefs.language) { tempTable.language = user.prefs.language} else { tempTable.language = "English"}}}; scriptError (mainResponder.getString ("members.membersAttributeError", pta: @tempTable))}; //PBS 10/2/99: error message reflects new support for addresses and strings case typeOf (groupName) { stringType { local (f = system.temp.mainResponder.membersRootFile); local (adrTable = @[f].[groupName]); if not defined (adrTable^) { error ()}; case typeOf (adrTable^) { //PBS 10/2/99: handle tables, strings, and addresses tableType { //if it's a table, return the address of the table return (adrTable)}; stringType; //strings are okay if they coerce to an address: this makes remote admin via WebEdit easier addressType { //an address must point to a table elsewhere adrTable = adrTable^; //de-reference to get the real address of the membership group if not defined (adrTable^) { //make sure the de-referenced group exists error ()}; return (adrTable)}} else { error ()}}; addressType { if not defined (groupName^) or (typeOf (groupName^) != tableType) { error ()}; return (groupName)}} else { error ()}} <<bundle //test code <<dialog.alert (getMembershipTable (config.mainresponder.globals.defaultMembershipGroup))
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.