Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.macros.adminMenu
on adminMenu (color = "#FFFFFF") {
<<Changes
<<9/1/02; 5:23:44 PM by JES
<<Localized the menu commands.
<<4/7/02; 11:32:23 AM by DW
<<Add Shortcuts command to menu.
<<1/16/02; 12:00:37 AM by JES
<<Added css class names to the <font> and <a href> tags in the Radio menu. This makes it easier to adjust the menu's appearance for a Theme, using a cascading style sheet.
<<Class names are:
<<radioMenuLink -- the class name for the <a href> tag for linked commands.
<<radioMenuLinkFont -- the class name for the <font> tag that encloses linked commands.
<<radioMenuLinkFontCurrent -- the class name for the <font> tag that encloses the command corresponding to the current page.
<<12/31/01; 2:54:44 AM by JES
<<Add a link for the Themes page.
<<12/5/01; 4:14:17 PM by JES
<<If this is the setupRadio page, return the empty string.
<<12/1/01; 8:45:56 AM by DW
<<Added News and Stories links.
<<11/30/01; 7:10:38 PM by DW
<<Added Events link
<<11/24/01; 3:15:35 PM by DW
<<Added Help link.
<<11/7/01; 12:34:39 PM by DW
<<Comment Stories command.
<<11/1/01; 12:03:32 PM by DW
<<Created.
local (pta = html.getpagetableaddress (), size = -1);
bundle { //find reasons not to render the menu
if pta^.radioResponder.flStaticRendering { //static site
return ("")};
if user.radio.settings.flExpired { //expired trial
return ("")};
if string.lower (pta^.path) == string.lower (radio.data.systemUrls.setupRadio) { //setup page
if not defined (user.radio.prefs.usernum) {
return ("")}}};
local (fontopen = "<font class=\"radioMenuLinkFont\" size=\"" + size + "\" color=\"" + color + "\">", fontclose = "</font>");
local (uriWithSearchArgs = pta^.uri);
if sizeof (pta^.searchargs) > 0 {
uriWithSearchArgs = uriWithSearchArgs + "?" + pta^.searchargs};
local (htmltext = "");
on add (s) {
htmltext = htmltext + s};
on addCommand (linetext, url, fllastcommand = false) {
try {linetext = radio.string.getLocalizedString ("adminMenu." + linetext)};
local (flhot = true);
if uriWithSearchArgs == url {
flhot = false};
if flhot {
add ("<a class=\"radioMenuLink\" href=\"" + url + "\">" + fontopen + linetext + fontclose + "</a>")}
else {
add ("<b><font class=\"radioMenuLinkFontCurrent\">" + linetext + "</font></b>")};
if not fllastcommand {
add (fontopen + " <b>|</b> " + fontclose)}};
add (fontopen + "<b>Radio " + frontier.version () + "</b>: " + fontclose);
addCommand ("Home", radio.data.systemUrls.homePage);
addCommand ("News", radio.data.systemUrls.newsAggregator);
addCommand ("Stories", radio.data.systemUrls.storiesList);
addCommand ("Shortcuts", radio.data.systemUrls.shortcuts);
addCommand ("Folder", radio.data.systemUrls.folderView);
addCommand ("Events", radio.data.systemUrls.eventsLog);
addCommand ("Themes", radio.data.systemUrls.themesList);
addCommand ("Tools", radio.data.systemUrls.toolsList);
addCommand ("Prefs", radio.data.systemUrls.prefs);
addCommand ("Help", radio.data.systemUrls.help, fllastcommand:true);
bundle { //add help link
add (" " + radio.userinterface.helplink ("About the Radio menu"))};
return (htmltext)}
<<bundle //test code
<<html.setpagetableaddress (@scratchpad.params)
<<adminmenu ()
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.