39 |
|
|
40 |
my $authed = shift; |
my $authed = shift; |
41 |
|
|
42 |
my $r = ''; |
my @r; |
43 |
my @d = $authed->descendants('name'); |
my @d = $authed->descendants('name'); |
44 |
foreach my $i (0 .. $#d) { |
foreach my $i (0 .. $#d) { |
45 |
$r .= $self->formatname($d[$i]); |
push @r, $self->formatname($d[$i], $i); |
|
|
|
|
if ($i < $#d - 1) { |
|
|
$r .= $self->comma; |
|
|
} elsif ($i == $#d - 1) { |
|
|
$r .= ' ' . $self->and . ' '; |
|
|
} |
|
46 |
} |
} |
47 |
return $r; |
|
48 |
|
return $self->andlist(@r); |
49 |
} |
} |
50 |
|
|
51 |
sub formatname { |
sub formatname { |
52 |
my $self = shift; |
my $self = shift; |
53 |
|
|
54 |
my $name = shift; |
my $name = shift; |
55 |
|
my $pos = shift; |
56 |
|
|
57 |
my ($given, $von, $family, $extrafamily, $jr) |
my ($given, $von, $family, $extrafamily, $jr) |
58 |
= (perhapstext($name->first_child('given')), |
= (perhapstext($name->first_child('given')), |
325 |
|
|
326 |
my $type = $self->getatt('type'); |
my $type = $self->getatt('type'); |
327 |
|
|
328 |
if ($type eq 'phd') { |
$self->outputtext($self->thesis($type)); |
|
$self->outputtext($self->phdthesis); |
|
|
|
|
|
} elsif ($type eq 'master') { |
|
|
$self->outputtext($self->mastersthesis); |
|
|
|
|
|
} else { |
|
|
$self->warning("Unknown or missing type attribute"); |
|
|
} |
|
329 |
} |
} |
330 |
|
|
331 |
sub formatdateasyear { |
sub formatdateasyear { |