Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.Frontier.tools.windowTypes.commands.openManilaSite
on openManilaSite (siteurl=nil, adradrwindow=nil) { <<If there were any callbacks for this command, they'd be called here. <<Since there were never any user.pike.commandCallbacks scripts, we'd only need to call callbacks at user.tools.commandCallbacks.openManilaSite. <<But there aren't any, so we just look for a windowType which defines a script to handle this command. local (flConfirmUrl=false); if siteurl == nil { //default to the site to which the front window belongs local (type, adrinfo); if window.attributes.getOne ("type", @type) { if type != "manilaSite" { if window.attributes.getOne ("adrSiteInfo", @adrinfo) { siteurl = nameOf (adrinfo^); local (parts = string.urlSplit (siteurl)); if parts[2] contains ":" { if string.nthField (parts[2], ':', 2) == "80" { siteurl = parts[1] + string.nthField (parts[2], ':', 1) + "/" + parts[3]}}; flConfirmUrl = true}}}}; if siteurl == nil { //didn't get it from the front window -- default to the last opened site if defined (user.manila.prefs.lastSiteUrl) { siteurl = user.manila.prefs.lastSiteUrl} else { siteurl = "http://"}; flConfirmUrl = true}; if flConfirmUrl { //ask the user what site to open if not (dialog.ask ("Manila Site URL:", @siteurl)) { return (false)}}; bundle { //make sure the url starts with http:// and ends with / if not (siteurl beginsWith "http://") { siteurl = "http://" + siteurl}; if not (siteurl endsWith "/") { siteurl = siteurl + "/"}}; bundle { //look for a windowType that handles this command on runTypes (adrTypes) { local (adrType, flConsumed=false); for adrType in adrTypes { try { while typeOf (adrType^) == addressType { adrType = adrType^}; if defined (adrType^.openManilaSite) { try { flConsumed = adrType^.openManilaSite (siteurl, adradrwindow:adradrwindow)}; if flConsumed { return (true)}}}}; return (false)}; if runTypes (@user.tools.windowTypes) { user.manila.prefs.lastSiteUrl = siteurl; return (true)}; if runTypes (@Frontier.tools.data.windowTypes) { user.manila.prefs.lastSiteUrl = siteurl; return (true)}}; return (false); //command not handled }; <<bundle //old code <<return (playlist.manila.commands.openManilaSite ()) <<bundle //testing <<openManilaSite ()
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.