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

system.verbs.builtins.radio.prefs.numberPref

on numberPref (prompt, adrnumber, lowerbound=0, upperbound=infinity, colspan=1, textToRight="", labelAlign="right") {
	<<Changes:
		<<10/28/07; 9:48:16 AM by DW
			<<Optional param, labelAlign, defaults to right.
		<<8/3/02; 8:43:10 PM by JES
			<<Quote characters in addresses were mangling the HTML, so now addresses are url-encoded when generating the form element. When processing a POST, we look for the url-encoded field in the postArgs table.
		<<2/5/02; 11:34:44 AM by PBS
			<<Conditionalized to work in Frontier.
	local (pta = html.getpagetableaddress ());
	local (size = sizeof (string (upperbound)));
	if sizeof (string (lowerbound)) > size {
		size = sizeof (string (lowerbound))};
	local (maxlength = size, type = "text");
	local (error = "");
	if pta^.method == "POST" {
		local (value);
		try {
			if system.environment.isRadio { //PBS 02/05/02: conditionalized to work in Frontier
				value = number (pta^.radioresponder.postargs.[string.urlEncode (string.popFileFromAddress (adrnumber))])}
			else {
				value = number (pta^.postargs.[string.urlEncode (string.popFileFromAddress (adrnumber))])};
			if value < lowerbound {
				error = radio.prefs.errorstring ("Can't set the number because it is too small. The smallest permissible value is " + lowerbound + ".")};
			if value > upperbound {
				error = radio.prefs.errorstring ("Can't set the number because it is too large. The largest permissible value is " + upperbound + ".")};
			if sizeof (error) == 0 {
				local (adr = address (string.popFileFromAddress (adrnumber)));
				adr^ = value}}
		else {
			error = radio.prefs.errorstring (tryError)}};
	local (inputField = "<input type=\"" + type + "\" name=\"" + string.popFileFromAddress (adrnumber) + "\" size=\"" + size + "\" maxlength=\"" + maxlength + "\" value=\"" + string (adrnumber^) + "\">");
	local (s = "<tr><td colspan=\"2\"><table><tr><td valign=\"middle\">" + prompt + ":</td><td valign=\"middle\">" + inputField + textToRight + "</tr></table></td></tr>");
	return (error + "<tr><td align=\"" + labelAlign + "\" nowrap>" + prompt + ":</td><td align=\"left\" valign=\"top\" colspan=\"" + colspan + "\" width=\"70%\"><input type=\"" + type + "\" name=\"" + string.urlEncode (string.popFileFromAddress (adrnumber)) + "\" size=\"" + size + "\" maxlength=\"" + maxlength + "\" value=\"" + string (adrnumber^) + "\">" + textToRight + "</td></tr>");
	return (error + s)}



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.