1 |
296 |
ahitrov |
<p>Всего проголосовало: <input type="text" name="<% $name.'_total' %>" value="<% $set->{total}||'0' %>" readonly></p> |
2 |
|
|
<p>Кол-во вопросов: <input type="text" name="<% $name.'_question_amount' %>" value="<% $set->{question_amount} %>" maxlength=2 size=2></p> |
3 |
|
|
|
4 |
|
|
% foreach my $question_id (0..($set->{question_amount}-1)) { |
5 |
|
|
% my $prefix =$name.'_question'.$question_id.'_'; |
6 |
|
|
% my $question_data=$set->{questions}->[$question_id]; |
7 |
|
|
<p><b>Вопрос номер <% $question_id+1 %>:</b> |
8 |
|
|
<& text.msn, name => $prefix.'question', check => $question_data->{question}, prop=>{rows=>2} &> |
9 |
|
|
<br>Кол-во вариантов ответа: <input type="text" name="<% $prefix.'amount' %>" value="<% $question_data->{amount} %>" maxlength=2 size=2> |
10 |
|
|
<br>Шкалирование ответов (от 1 до ...): <input type="text" name="<% $prefix.'range' %>" value="<% $question_data->{range} %>" maxlength=2 size=2> |
11 |
|
|
<br>Возможность множественного выбора: <input type="checkbox" name="<% $prefix.'allow_multi' %>" value="1" <% $question_data->{allow_multi} ? 'checked':'' %>> |
12 |
|
|
%#<br>Шкалирование ответа: <input type="checkbox" name="<% $prefix.'scale_answer' %>" value="1" <% $question_data->{scale_answer} ? 'checked':'' %>> |
13 |
|
|
|
14 |
|
|
% if ($question_data->{amount}) { |
15 |
|
|
<table width=100% border=0> |
16 |
|
|
<tr><td width=10% nowrap>N ответа</td><td>Random</td><td width=80%>Текст или ID картинки в формате <% pictures_N %></td><td width=10%>Всего за</td></tr> |
17 |
|
|
% foreach my $answer_id (0..($question_data->{amount}-1)) { |
18 |
|
|
% my $inner_prefix=$prefix.'answer'.$answer_id.'_'; |
19 |
|
|
% my $answer_data =$question_data->{choices}->[$answer_id]; |
20 |
|
|
<tr> |
21 |
|
|
<td width=10% align="center"><% $answer_id+1 %></td> |
22 |
|
|
<td width=5% align="center"><input type="checkbox" name="<% $inner_prefix.'random' %>"<% $answer_data->{random} ? ' checked' : '' %>></td> |
23 |
|
|
<td width=75%><input type="text" name="<% $inner_prefix.'choice' %>" value="<% html_escape($answer_data->{choice}) %>" style="width:100%;"></td> |
24 |
|
|
<td width=10%><input type="text" name="<% $inner_prefix.'votes' %>" value="<% $answer_data->{votes}||'0' %>" readonly></td> |
25 |
|
|
</tr> |
26 |
|
|
%} |
27 |
|
|
</table> |
28 |
|
|
%} |
29 |
|
|
<hr> |
30 |
|
|
%} |
31 |
|
|
<p>Кол-во свободных полей: <input type="text" name="<% $name.'_freefields_amount' %>" value="<% $set->{freefields_amount} %>" maxlength=2 size=2></p> |
32 |
|
|
<table width=100% border=0> |
33 |
|
|
<tr><td width=10% nowrap>N поля</td><td width=90%>Текст</td></tr> |
34 |
|
|
% foreach my $freefield_id (0..($set->{freefields_amount}-1)) { |
35 |
|
|
% my $prefix =$name.'_freefield'; |
36 |
|
|
% my $question_data=$set->{freefields}->[$freefield_id]; |
37 |
|
|
<tr> |
38 |
|
|
<td width=10% align="center"><% $freefield_id+1 %></td> |
39 |
|
|
<td width=90%><input type="text" name="<% $prefix.$freefield_id %>" value="<% html_escape($question_data) %>" style="width:100%;"></td> |
40 |
|
|
</tr> |
41 |
|
|
% } |
42 |
|
|
</table> |
43 |
|
|
<hr> |
44 |
|
|
PS: Внимание поддержка многих features из видимых в этой форме остается на template формы и template результатов. И <font color="red">не гарантируется</font> на шаблонах по умолчанию или старых шаблонах. |
45 |
|
|
%#<pre> |
46 |
|
|
%#<% Data::Dumper::Dumper($set) %> |
47 |
|
|
%#</pre> |
48 |
|
|
|
49 |
|
|
<%args> |
50 |
|
|
$name => undef |
51 |
|
|
$check => undef |
52 |
|
|
</%args> |
53 |
|
|
<%init> |
54 |
|
|
use vars qw($VAR1); |
55 |
|
|
my $set={}; |
56 |
|
|
if ($check) |
57 |
|
|
{ |
58 |
|
|
eval ($check); |
59 |
|
|
if ($@) |
60 |
|
|
{ |
61 |
|
|
warn "cannot eval $name with value '$check'"; |
62 |
|
|
} |
63 |
|
|
else |
64 |
|
|
{ |
65 |
|
|
$set=$VAR1; |
66 |
|
|
} |
67 |
|
|
} |
68 |
|
|
</%init> |
69 |
|
|
|