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

system.verbs.builtins.radio.userInterface.editButton

on editButton (f=nil, buttonlabel="", systemImagePath=nil) {
	<<Changes:
		<<10/12/02; 4:14:43 AM by JES
			<<Localized the Edit This Page button.
		<<1/27/02; 5:32:10 AM by JES
			<<Don't display the Edit This Page button if pta^.radioResponder.flStaticRendering is true.
		<<1/26/02; 4:46:45 PM by JES
			<<Allow display of the Edit This Page button when accessing Radio remotely.
		<<12/12/01; 12:44:51 PM by JES
			<<Only add searchArgs to the action url for the form, if pta^.searchArgs is non-empty.
		<<11/19/01; 2:55:11 PM by JES
			<<Return the empty string for system pages, unless user.radio.prefs.flSystemEditor is true.
		<<7/25/01; 8:47:42 PM by JES
			<<New optional parameter: systemImagePath, is the path to an image in the www/system/images folder, to use for the button.
	local (pta = html.getPageTableAddress ());
	<<bundle //debugging code
		<<workspace.pt = pta^; edit (@workspace.pt)
	if defined (pta^.editThisPageButton) {
		if not pta^.editThisPageButton {
			return ("")}};
	if pta^.radioResponder.flStaticRendering {
		return ("")};
	<<if not pta^.radioResponder.flSameMachine
		<<return ("")
	if defined (pta^.flSystemPage) { //return the empty string for system pages
		if pta^.flSystemPage {
			if not user.radio.prefs.flSystemEditor {
				return ("")}}};
	if buttonlabel == "" {
		buttonlabel = radio.string.getLocalizedString ("buttons.editThisPage")};
	local (htmltext = "\r", indentlevel = 0);
	on add (s) {
		htmltext = htmltext + string.filledstring ("\t", indentlevel) + s + "\r\n"};
	local (action = "");
	bundle { //build action, adding searchArgs so that the reloaded page is still the same
		if defined (pta^.searchArgs) {
			if pta^.searchArgs != "" {
				action = "?" + pta^.searchArgs}}};
	add ("<form method=\"POST\" action=\"" + action + "\">"); indentlevel++;
	add ("<input name=\"command\" type=\"hidden\" value=\"edit\">");
	if f != nil {
		add ("<input name=\"f\" type=\"hidden\" value=\"" + string.urlencode (f) + "\">")};
	if systemImagePath == nil { //use a standard button
		add ("<input type=\"submit\" value=\"" + buttonlabel + "\">")}
	else { //use an image for the button
		local (flSameMachine = pta^.radioResponder.flSameMachine);
		local (imgUrl = string.nthField (radio.images.systemImageRef (systemImagePath, flFileUrl:flSameMachine), "\"", 2));
		add ("<input type=\"image\" value=\"submit\" src=\"" + imgUrl + "\">")};
	add ("</form>"); indentlevel--;
	return (htmltext)}



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.