webmcp
annotate framework/env/param/iterate.lua @ 414:015be25c98dd
Always write to document when "document_column" is set in class
| author | jbe | 
|---|---|
| date | Sat Jan 09 05:30:45 2016 +0100 (2016-01-09) | 
| parents | 9fdfb27f8e67 | 
| children | 
| rev | line source | 
|---|---|
| jbe/bsw@0 | 1 --[[-- | 
| jbe/bsw@0 | 2 for | 
| jbe/bsw@0 | 3 index, -- index variable counting up from 1 | 
| jbe/bsw@0 | 4 prefix -- prefix string with index in square brackets to be used as a prefix for a key passed to param.get or param.get_list | 
| jbe/bsw@0 | 5 in | 
| jbe/bsw@0 | 6 param.iterate( | 
| jbe/bsw@0 | 7 prefix -- prefix to be followed by an index in square brackets and another key | 
| jbe/bsw@0 | 8 ) | 
| jbe/bsw@0 | 9 do | 
| jbe/bsw@0 | 10 ... | 
| jbe/bsw@0 | 11 end | 
| jbe/bsw@0 | 12 | 
| jbe/bsw@0 | 13 This function returns an interator function to be used in a for loop. The CGI GET/POST parameter (or internal parameter) with the name "prefix[len]" is read, where 'prefix' is the prefix passed as the argument and 'len' ist just the literal string "len". For each index from 1 to the read length the returned iterator function returns the index and a string consisting of the given prefix followed by the index in square brackets to be used as a prefix for keys passed to param.get(...) or param.get_list(...). | 
| jbe/bsw@0 | 14 | 
| jbe/bsw@0 | 15 --]]-- | 
| jbe/bsw@0 | 16 | 
| jbe/bsw@0 | 17 function param.iterate(prefix) | 
| jbe/bsw@0 | 18 local length = param.get(prefix .. "[len]", atom.integer) or 0 | 
| jbe/bsw@0 | 19 if not atom.is_integer(length) then | 
| jbe/bsw@0 | 20 error("List length is not a valid integer or nil.") | 
| jbe/bsw@0 | 21 end | 
| jbe/bsw@0 | 22 local index = 0 | 
| jbe/bsw@0 | 23 return function() | 
| jbe/bsw@0 | 24 index = index + 1 | 
| jbe/bsw@0 | 25 if index <= length then | 
| jbe/bsw@0 | 26 return index, prefix .. "[" .. index .. "]" | 
| jbe/bsw@0 | 27 end | 
| jbe/bsw@0 | 28 end | 
| jbe/bsw@0 | 29 end |