556 |
} else { |
} else { |
557 |
$q_type = $q_db_col; |
$q_type = $q_db_col; |
558 |
} |
} |
559 |
|
|
560 |
$question_nr{$q_type}++; |
$question_nr{$q_type}++; |
561 |
|
|
562 |
$body.=$html{'que_before'} if ($html{'que_before'}); |
# 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) = @_; |
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 |
} |
} |
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) = @_; |
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 |
} |
} |
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) = @_; |
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 |
} |
} |
728 |
my $nr=$attref->{nr} || die "need <radiobuttons_tab nr=\"999\"> for number of buttons"; |
my $nr=$attref->{nr} || die "need <radiobuttons_tab nr=\"999\"> for number of buttons"; |
729 |
# shownumbers="before|after" |
# shownumbers="before|after" |
730 |
my $shownumbers=lc(x($attref->{shownumbers})) || 'no'; |
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>"; |
$body.="<td$class>"; |
737 |
$body.=$i if ($shownumbers eq "before"); |
$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>"; |
$body.="<input type=radio name=$p value=$i>"; |
742 |
$body.=$i if ($shownumbers eq "after"); |
$body.=$i if ($shownumbers eq "after"); |
743 |
$body.="</td> "; |
$body.="</td> "; |