[% contains_options = [ {value => 'contains', label => l('Contains')}, {value => 'nocontains', label => l('Does not contain')}, {value => 'phrase', label => l('Contains phrase')}, {value => 'exact', label => l('Matches exactly')}, {value => 'starts', label => l('Starts with')} ]; contains = CGI.param('contains'); queries = CGI.param('query'); bools = CGI.param('bool'); qtypes = CGI.param('qtype'); rowcount = 3; # scalar.merge treats the scalar as a 1-item array WHILE queries.size < rowcount; queries = queries.merge(['']); END; WHILE bools.size < rowcount; bools = bools.merge(['and']); END; WHILE qtypes.size < rowcount; qtypes = qtypes.merge(search.default_qtypes.${qtypes.size} ? [search.default_qtypes.${qtypes.size}] : ['keyword']); END; FOR qtype IN qtypes; c = contains.shift; b = bools.shift; q = queries.shift; %] [% INCLUDE "opac/parts/qtype_selector.tt2" query_type=qtype %] [% l('Remove row') %] [% END %]