FamilyTreeInfo

 view release on metacpan or  search on metacpan

lib/Ftree/FamilyTreeBase.pm  view on Meta::CPAN

    my $anchor = $self->{cgi}->url( -relative => 0 ) . '?';
    my %params = CGI::Vars();
    while ( my ( $key, $value ) = each %params ) {
        if ( $key ne 'lang' ) {
            $anchor .= "$key=" . decode_utf8("$value") . ';';
        }

    }
    print "\n", $self->{cgi}->start_table( { -cellpadding => '3' } ), "\n",
      $self->{cgi}->start_Tr;
    my %lang_to_pict = Ftree::TextGeneratorFactory::getLangToPict();
    while ( my ( $lang, $pic ) = each %lang_to_pict ) {
        print $self->{cgi}->td(
            { -align => 'center' },
            $self->{cgi}->a(
                {
                    -href  => "${anchor}lang=$pic",
                    -title => $self->{textGenerator}->{$lang}
                },
                $self->{cgi}->img(
                    {
                        -width => 40,
                        -src   => "$self->{graphicsUrl}/flags/${pic}.gif",
                        -alt   => $self->{textGenerator}->{$lang}
                    }
                )
            )
          ),
          "\n",
          ;
    }
    print $self->{cgi}->end_Tr, "\n", $self->{cgi}->end_table,
      $self->{cgi}->br, "\n";

    return;
}

sub html_img {
    my ( $self, $person ) =
      validate_pos( @_, { type => HASHREF }, { type => SCALARREF } );
    if ( !defined $person ) {
        return "";
    }
    else {
        my $picture_file =
          defined $person->get_default_picture()
          ? $self->{photoUrl} . $person->get_default_picture()->get_file_name()
          : $self->{graphicsUrl}
          . (
              defined $person->get_gender()
            ? $person->get_gender() == 0
                  ? '/nophoto_m.jpg'
                  : '/nophoto_f.jpg'
            : '/nophoto.gif'
          );

        return $self->{cgi}->img(
            {
                -border => $self->{imgwidth} / 15,
                -src    => $picture_file,
                -class  => $person->get_is_living() ? 'alive' : 'dead',
                -alt    => ( defined $person->get_name() )
                ? $person->get_name()->get_full_name()
                : 'UNKNOWN',
                -width  => $self->{imgwidth},
                -height => $self->{imgheight}
            }
        );
    }
}

sub aref_tree {
    my ( $self, $to_ref, $person, $levels ) = validate_pos(
        @_,
        { type     => HASHREF },
        { type     => SCALAR },
        { type     => SCALARREF },
        { optional => 1, type => SCALAR }
    );
    if ( !defined $levels ) {
        $levels = $self->{reqLevels};
        $person = $self->$self->{target_person} unless ( defined $person );
    }
    if ( $levels > 0 ) {

        my $brief_info = $person->brief_info( $self->{textGenerator} );
        $brief_info = ( defined $brief_info ) ? $brief_info : "";
        my $password = $self->{settings}{password};
        $password = ( defined $password ) ? $password : "";
        return $self->{cgi}->a(
            {
                -href => "$self->{treeScript}?type=tree;"
                  . 'target='
                  . $person->get_id()
                  . ";levels=$levels;"
                  . "passwd=$password;lang=$self->{lang}",
                -title => $brief_info,
            },
            $to_ref
        );
    }
    else {
        return $self->{cgi}->a(
            {
                -href => "$self->{personScript}?target="
                  . $person->get_id()
                  . ";passwd=$self->{settings}{password};lang=$self->{lang}",
                -title => $person->brief_info( $self->{textGenerator} )
            },
            $to_ref
        );
    }
}

1;



( run in 0.983 second using v1.01-cache-2.11-cpan-483215c6ad5 )