--- make_poll.pl 2003/10/23 22:13:30 1.16 +++ make_poll.pl 2003/11/08 01:08:44 1.17 @@ -23,7 +23,8 @@ my $poll; my $dowarn = 1; -my $question_nr = 0; # curr. question +my $q_type = "q"; # q=question, u=unnumbered question +my %question_nr; # curr. question numbers my $question_tag = ""; # originalni oblik broja questions my $page_nr = 1; # prvo question na strani @@ -101,6 +102,13 @@ ); +# name of database colums +# for questions +my $q_db_col = "q"; +# for unnumbered questions +my $u_db_col = "u"; + + #------------------------------------------------------------------ sub suck_file { @@ -281,7 +289,7 @@ # return unique name of question sub new_que { - my $out="p".$question_nr; + my $out=$q_type.( $question_nr{$q_type} || 0 ); $out .= "_".$p_suffix if ($p_suffix); $curr_suffix=$p_suffix; $p_suffix++; @@ -290,7 +298,7 @@ # current question sub curr_que { - return "p".$question_nr.$curr_suffix; + return $q_type.( $question_nr{$q_type} || 0 ).$curr_suffix; } #---------------------------------------------------------- @@ -524,9 +532,9 @@ chomp $text; $question_tag .= x($text); } else { - $question_nr = $question_tag; - $question_nr =~ s/[^0-9a-zA-Z]//g; - print "$question_nr "; + $question_nr{$q_type} = $question_tag; + $question_nr{$q_type} =~ s/[^0-9a-zA-Z]//g; + print "$question_nr{$q_type} "; } $p_suffix=""; }; @@ -542,6 +550,15 @@ my ($xp, $el, $attref, $ncref) = @_; + my $nonum = x($attref->{unnumbered}); + if ($nonum) { + $q_type = $u_db_col; # unnumbered questions + } else { + $q_type = $q_db_col; + } + + $question_nr{$q_type}++; + $body.=$html{'que_before'} if ($html{'que_before'}); $$ncref = sub { @@ -674,10 +691,16 @@ $$ncref = sub { my ($xp, $text) = @_; if (! defined $text) { - my $nr=$attref->{nr}; + my $nr=$attref->{nr} || die "need for number of buttons"; + # shownumbers="before|after" + my $shownumbers=lc(x($attref->{shownumbers})) || 'no'; my $p=new_que(); for (my $i=1; $i<=$nr; $i++) { - $body.=" "; + $body.=""; + $body.=$i if ($shownumbers eq "before"); + $body.=""; + $body.=$i if ($shownumbers eq "after"); + $body.=" "; } push @sql_create,"$p int4"; push @sql_update,"$p=\$$p"; @@ -863,6 +886,8 @@ $html{$file} = suck_file($include_files{$file}); } } + $q_db_col=x($attref->{q_db_col}) || 'q'; + $u_db_col=x($attref->{u_db_col}) || 'u'; } }