Index: UserProfile.pm =================================================================== --- UserProfile.pm (revision 465) +++ UserProfile.pm (revision 466) @@ -38,6 +38,65 @@ ) } +sub name_full +{ + my $self = shift; + my $name = $self->name; + if ( $name =~ /^(.*?),[\ \t]+(.*)$/ ) { + $name = $2.' '.$1; + } + return $name; +} + +sub name_part +{ + my $self = shift; + my $name = $self->name; + if ( $name =~ /^(.*?),[\ \t]+(.*)$/ ) { + $name = $2; + } else { + my @parts = split /\s+/, $name; + if ( @parts > 1 ) { + pop @parts; + } + $name = join ' ', @parts; + } + return $name; +} + +sub name_family +{ + my $self = shift; + my $name = $self->name; + if ( $name =~ /^(.*?),[\ \t]+(.*)$/ ) { + $name = $1; + } else { + my @parts = split /\s+/, $name; + if ( @parts > 1 ) { + $name = pop @parts; + } + } + return $name; +} + +sub name_first +{ + my $self = shift; + my @name = split /\s+/, $self->name_part; + + return $name[0]; +} + +sub name_middle +{ + my $self = shift; + my @name = split /\s+/, $self->name_part; + shift @name if @name; + my $name = @name ? join (' ', @name) : ''; + + return $name; +} + sub class_name { return 'Профиль пользователя';