Revision 296 (by ahitrov, 2013/03/26 17:59:01) |
Promosite (anthill) project source
|
<p>Всего проголосовало: <input type="text" name="<% $name.'_total' %>" value="<% $set->{total}||'0' %>" readonly></p>
<p>Кол-во вопросов: <input type="text" name="<% $name.'_question_amount' %>" value="<% $set->{question_amount} %>" maxlength=2 size=2></p>
% foreach my $question_id (0..($set->{question_amount}-1)) {
% my $prefix =$name.'_question'.$question_id.'_';
% my $question_data=$set->{questions}->[$question_id];
<p><b>Вопрос номер <% $question_id+1 %>:</b>
<& text.msn, name => $prefix.'question', check => $question_data->{question}, prop=>{rows=>2} &>
<br>Кол-во вариантов ответа: <input type="text" name="<% $prefix.'amount' %>" value="<% $question_data->{amount} %>" maxlength=2 size=2>
<br>Шкалирование ответов (от 1 до ...): <input type="text" name="<% $prefix.'range' %>" value="<% $question_data->{range} %>" maxlength=2 size=2>
<br>Возможность множественного выбора: <input type="checkbox" name="<% $prefix.'allow_multi' %>" value="1" <% $question_data->{allow_multi} ? 'checked':'' %>>
%#<br>Шкалирование ответа: <input type="checkbox" name="<% $prefix.'scale_answer' %>" value="1" <% $question_data->{scale_answer} ? 'checked':'' %>>
% if ($question_data->{amount}) {
<table width=100% border=0>
<tr><td width=10% nowrap>N ответа</td><td>Random</td><td width=80%>Текст или ID картинки в формате <% pictures_N %></td><td width=10%>Всего за</td></tr>
% foreach my $answer_id (0..($question_data->{amount}-1)) {
% my $inner_prefix=$prefix.'answer'.$answer_id.'_';
% my $answer_data =$question_data->{choices}->[$answer_id];
<tr>
<td width=10% align="center"><% $answer_id+1 %></td>
<td width=5% align="center"><input type="checkbox" name="<% $inner_prefix.'random' %>"<% $answer_data->{random} ? ' checked' : '' %>></td>
<td width=75%><input type="text" name="<% $inner_prefix.'choice' %>" value="<% html_escape($answer_data->{choice}) %>" style="width:100%;"></td>
<td width=10%><input type="text" name="<% $inner_prefix.'votes' %>" value="<% $answer_data->{votes}||'0' %>" readonly></td>
</tr>
%}
</table>
%}
<hr>
%}
<p>Кол-во свободных полей: <input type="text" name="<% $name.'_freefields_amount' %>" value="<% $set->{freefields_amount} %>" maxlength=2 size=2></p>
<table width=100% border=0>
<tr><td width=10% nowrap>N поля</td><td width=90%>Текст</td></tr>
% foreach my $freefield_id (0..($set->{freefields_amount}-1)) {
% my $prefix =$name.'_freefield';
% my $question_data=$set->{freefields}->[$freefield_id];
<tr>
<td width=10% align="center"><% $freefield_id+1 %></td>
<td width=90%><input type="text" name="<% $prefix.$freefield_id %>" value="<% html_escape($question_data) %>" style="width:100%;"></td>
</tr>
% }
</table>
<hr>
PS: Внимание поддержка многих features из видимых в этой форме остается на template формы и template результатов. И <font color="red">не гарантируется</font> на шаблонах по умолчанию или старых шаблонах.
%#<pre>
%#<% Data::Dumper::Dumper($set) %>
%#</pre>
<%args>
$name => undef
$check => undef
</%args>
<%init>
use vars qw($VAR1);
my $set={};
if ($check)
{
eval ($check);
if ($@)
{
warn "cannot eval $name with value '$check'";
}
else
{
$set=$VAR1;
}
}
</%init>
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.