/[wopi]/make_poll.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /make_poll.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.15 by dpavlin, Tue Oct 21 18:40:26 2003 UTC revision 1.20 by dpavlin, Sat Nov 8 22:42:18 2003 UTC
# Line 23  my @Modes = qw(object pass skip); Line 23  my @Modes = qw(object pass skip);
23  my $poll;  my $poll;
24  my $dowarn = 1;  my $dowarn = 1;
25    
26  my $question_nr = 0;            # curr. question  my $q_type = "q";               # q=question, u=unnumbered question
27    my %question_nr;                # curr. question numbers
28  my $question_tag = "";          # originalni oblik broja questions  my $question_tag = "";          # originalni oblik broja questions
29  my $page_nr = 1;                # prvo question na strani  my $page_nr = 1;                # prvo question na strani
30    
# Line 101  my %html = ( Line 102  my %html = (
102    
103  );  );
104    
105    # name of database colums
106    # for questions
107    my $q_db_col = "q";
108    # for unnumbered questions
109    my $u_db_col = "u";
110    
111    
112  #------------------------------------------------------------------  #------------------------------------------------------------------
113    
114  sub suck_file {  sub suck_file {
# Line 152  my $head_php=suck_file("head.php"); Line 160  my $head_php=suck_file("head.php");
160    
161  #------------------------------------------------------------------  #------------------------------------------------------------------
162    
163  $html{'kraj'}=suck_file($include_files{'thanks'});  $html{'thanks'}=suck_file($include_files{'thanks'});
164    
165  #------------------------------------------------------------------  #------------------------------------------------------------------
166    
# Line 236  close(PAGE); Line 244  close(PAGE);
244  $page_nr++;  $page_nr++;
245  open(PAGE, ">$poll/$next_fn") or die "Couldn't open $next_fn for writing:\n$!";  open(PAGE, ">$poll/$next_fn") or die "Couldn't open $next_fn for writing:\n$!";
246  print PAGE php_header($page_nr,@last_sql_update);  print PAGE php_header($page_nr,@last_sql_update);
247  print PAGE "$html{'header'} $html{'kraj'} $html{'footer'}";  print PAGE "$html{'header'} $html{'thanks'} $html{'footer'}";
248  close(PAGE);  close(PAGE);
249    
250  # dump sql structure  # dump sql structure
# Line 281  rename "$poll/01.php","$poll/index.php" Line 289  rename "$poll/01.php","$poll/index.php"
289    
290  # return unique name of question  # return unique name of question
291  sub new_que {  sub new_que {
292          my $out="p".$question_nr;          my $out=$q_type.( $question_nr{$q_type} || 0 );
293          $out .= "_".$p_suffix if ($p_suffix);          $out .= "_".$p_suffix if ($p_suffix);
294          $curr_suffix=$p_suffix;          $curr_suffix=$p_suffix;
295          $p_suffix++;          $p_suffix++;
# Line 290  sub new_que { Line 298  sub new_que {
298    
299  # current question  # current question
300  sub curr_que {  sub curr_que {
301          return "p".$question_nr.$curr_suffix;          return $q_type.( $question_nr{$q_type} || 0 ).$curr_suffix;
302  }  }
303    
304  #----------------------------------------------------------  #----------------------------------------------------------
# Line 524  sub nr { Line 532  sub nr {
532                          chomp $text;                          chomp $text;
533                          $question_tag .= x($text);                          $question_tag .= x($text);
534                  } else {                  } else {
535                          $question_nr = $question_tag;                          $question_nr{$q_type} = $question_tag;
536                          $question_nr =~ s/[^0-9a-zA-Z]//g;                          $question_nr{$q_type} =~ s/[^0-9a-zA-Z]//g;
537                          print "$question_nr ";                          print "$question_nr{$q_type} ";
538                  }                  }
539                  $p_suffix="";                  $p_suffix="";
540          };          };
# Line 542  sub que { Line 550  sub que {
550    
551          my ($xp, $el, $attref, $ncref) = @_;          my ($xp, $el, $attref, $ncref) = @_;
552    
553          $body.=$html{'que_before'} if ($html{'que_before'});          my $nonum = x($attref->{unnumbered});
554            if ($nonum) {
555                    $q_type = $u_db_col;    # unnumbered questions
556            } else {
557                    $q_type = $q_db_col;
558            }
559            
560            $question_nr{$q_type}++;
561    
562            # attribute markup_before override que_before
563            my $markup_before = x($attref->{markup_before});
564            my $markup_after = x($attref->{markup_after});
565    
566            if (defined($markup_before)) {
567                    $body.=$markup_before;
568            } elsif ($html{'que_before'}) {
569                    $body.=$html{'que_before'}
570            }
571    
572          $$ncref = sub {          $$ncref = sub {
573                  my ($xp, $text) = @_;                  my ($xp, $text) = @_;
# Line 550  sub que { Line 575  sub que {
575                  if (defined $text) {                  if (defined $text) {
576                          $body.=x($text);                          $body.=x($text);
577                  } else {                  } else {
578                          $body.=$html{'que_after'} if ($html{'que_after'});                          if (defined($markup_after)) {
579                                    $body.=$markup_after;
580                            } elsif ($html{'que_after'}) {
581                                    $body.=$html{'que_after'}
582                            }
583                  }                  }
584          }          }
585  }  }
# Line 560  sub subque { Line 589  sub subque {
589    
590          my ($xp, $el, $attref, $ncref) = @_;          my ($xp, $el, $attref, $ncref) = @_;
591    
592          $body.=$html{'subque_before'} if ($html{'subque_before'});          my $markup_before = x($attref->{markup_before});
593            my $markup_after = x($attref->{markup_after});
594    
595            if (defined($markup_before)) {
596                    $body.=$markup_before;
597            } elsif ($html{'subque_before'}) {
598                    $body.=$html{'subque_before'}
599            }
600    
601          $$ncref = sub {          $$ncref = sub {
602                  my ($xp, $text) = @_;                  my ($xp, $text) = @_;
# Line 568  sub subque { Line 604  sub subque {
604                  if (defined $text) {                  if (defined $text) {
605                          $body.=x($text);                          $body.=x($text);
606                  } else {                  } else {
607                          $body.=$html{'subque_after'} if ($html{'subque_after'});                          if (defined($markup_after)) {
608                                    $body.=$markup_after;
609                            } elsif ($html{'subque_after'}) {
610                                    $body.=$html{'subque_after'}
611                            }
612                  }                  }
613          }          }
614  }  }
# Line 579  sub ans { Line 619  sub ans {
619    
620          my ($xp, $el, $attref, $ncref) = @_;          my ($xp, $el, $attref, $ncref) = @_;
621    
622          $body.=$html{'ans_before'} if ($html{'ans_before'});          my $markup_before = x($attref->{markup_before});
623            my $markup_after = x($attref->{markup_after});
624    
625            if (defined($markup_before)) {
626                    $body.=$markup_before;
627            } elsif ($html{'ans_before'}) {
628                    $body.=$html{'ans_before'}
629            }
630                    
631          $$ncref = sub {          $$ncref = sub {
632                  my ($xp, $text) = @_;                  my ($xp, $text) = @_;
# Line 587  sub ans { Line 634  sub ans {
634                  if (defined $text) {                  if (defined $text) {
635                          $body .= x($text);                          $body .= x($text);
636                  } else {                  } else {
637                          $body.=$html{'ans_after'} if ($html{'ans_after'});                          if (defined($markup_after)) {
638                                    $body.=$markup_after;
639                            } elsif ($html{'ans_after'}) {
640                                    $body.=$html{'ans_after'}
641                            }
642                  }                  }
643          }          }
644  }  }
# Line 674  sub radiobuttons_tab { Line 725  sub radiobuttons_tab {
725          $$ncref = sub {          $$ncref = sub {
726                  my ($xp, $text) = @_;                  my ($xp, $text) = @_;
727                  if (! defined $text) {                  if (! defined $text) {
728                          my $nr=$attref->{nr};                          my $nr=$attref->{nr} || die "need <radiobuttons_tab nr=\"999\"> for number of buttons";
729                            # shownumbers="before|after"
730                            my $shownumbers=lc(x($attref->{shownumbers})) || 'no';
731                            my $showlabels=lc(x($attref->{showlabels})) || 'no';
732                            my $class=lc(x($attref->{class})) || '';
733                            $class=' class="'.$class.'"' if ($class);
734                          my $p=new_que();                          my $p=new_que();
735                          for (my $i=1; $i<=$nr; $i++) {                          for (my $i=1; $i<=$nr; $i++) {
736                                  $body.="<td><input type=radio name=$p value=$i></td> ";                                  $body.="<td$class>";
737                                    $body.=$i if ($shownumbers eq "before");
738                                    if ($showlabels eq "before" && $attref->{"label_$i"}) {
739                                            $body.=x($attref->{"label_$i"});
740                                    }
741                                    $body.="<input type=radio name=$p value=$i>";
742                                    $body.=$i if ($shownumbers eq "after");
743                                    $body.="</td> ";
744                          }                          }
745                          push @sql_create,"$p int4";                          push @sql_create,"$p int4";
746                          push @sql_update,"$p=\$$p";                          push @sql_update,"$p=\$$p";
# Line 863  sub config { Line 926  sub config {
926                                  $html{$file} = suck_file($include_files{$file});                                  $html{$file} = suck_file($include_files{$file});
927                          }                          }
928                  }                  }
929                    $q_db_col=x($attref->{q_db_col}) || 'q';
930                    $u_db_col=x($attref->{u_db_col}) || 'u';
931    
932          }          }
933  }  }

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.20

  ViewVC Help
Powered by ViewVC 1.1.26