| 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 |
|
|
|