Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.editor.getEditingTool
on getEditingTool (pta=nil) { <<Changes <<8/5/03; 4:00:01 PM by JES <<Added support for Mozilla's rich text editor. <<8/31/01; 12:33:31 PM by JES <<Return the name of the editing tool to use: tagEditor, wysiwygEditor, or none. <<Factored from html.editor.get. if pta == nil { pta = html.getPageTableAddress ()}; <<workspace.pt = pta^; edit (@workspace.pt) //debugging local (flWysEditor = false, flTagEditor = true, flMozilla = false); local (editingToolName = "tagEditor"); if defined (pta^.editingToolName) { editingToolName = pta^.editingToolName; if string.lower (pta^.editingToolName) == "wysiwyg" { flWysEditor = true; flTagEditor = false}}; local (flIeWin5OrGreater = false); local (flMozilla13OrGreater = false); bundle { //find reasons not to display an editor if string.lower (editingToolName) == "none" { //no editor return ("")}; if defined (pta^.responderAttributes.flDiscussHtmlEditor) { if not (pta^.responderAttributes.flDiscussHtmlEditor) { return ("")}}; if not defined (pta^.requestHeaders.["User-Agent"]) { return ("")}; local (lowerUserAgent = string.lower (pta^.requestHeaders.["User-Agent"])); bundle { //Set flags for which supported browser the request came from flIeWin5OrGreater = lowerUserAgent contains "msie 5"; flIeWin5OrGreater = flIeWin5OrGreater or (lowerUserAgent contains "msie 6"); flIeWin5OrGreater = flIeWin5OrGreater and (lowerUserAgent contains "windows"); flMozilla = (lowerUserAgent contains "mozilla") and (lowerUserAgent contains "gecko") and (lowerUserAgent contains " u;"); if flMozilla { ix = string.patternMatch ("rv:", lowerUserAgent); if ix > 0 { ix = ix + 3; local (mozVers = string.mid (lowerUserAgent, ix, infinity)); mozVers = string.popSuffix (mozVers, ")"); flMozilla13OrGreater = not date.versionLessThan (mozVers, "1.3")}}}; if not (flIeWin5OrGreater or flMozilla13OrGreater) { return ("")}}; if flWysEditor { if flMozilla { editingToolName = "wysiwygEditorMozilla"} else { //must be IE Win editingToolName = "wysiwygEditor"}} else { if flTagEditor { //classic source-view editor, raw HTML if flIeWin5OrGreater { editingToolName = "tagEditor"} else { editingToolName = "none"}} else { editingToolName = "none"}}; return (editingToolName)} <<bundle //test code <<dialog.alert (getEditingTool (@workspace.pt))
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.