/usr/local/CPAN/BBCode-Parser/BBCode/Tag/EMAIL.pm
# $Id: EMAIL.pm 284 2006-12-01 07:51:49Z chronos $
package BBCode::Tag::EMAIL;
use base qw(BBCode::Tag::URL);
use BBCode::Util qw(:parse encodeHTML);
use strict;
use warnings;
our $VERSION = '0.34';
sub validateParam($$$):method {
my($this,$param,$val) = @_;
if($param eq 'HREF') {
my $url = parseMailURL($val);
if(defined $url) {
return $url->as_string;
} else {
die qq(Invalid value "$val" for [EMAIL]);
}
}
return $this->SUPER::validateParam($param,$val);
}
sub replace($):method {
my $this = shift;
my $href = $this->param('HREF');
if(not defined $href) {
my $text = $this->bodyText;
my $url = parseMailURL $text;
if(not defined $url) {
return BBCode::Tag->new($this->parser, 'TEXT', [ undef, $text ]);
}
$this->param(HREF => $url);
}
return $this;
}
1;