# $Id: CODE.pm 284 2006-12-01 07:51:49Z chronos $ package BBCode::Tag::CODE; use base qw(BBCode::Tag::Block); use BBCode::Util qw(encodeHTML multilineText); use strict; use warnings; our $VERSION = '0.34'; sub BodyPermitted($):method { return 1; } sub BodyTags($):method { return qw(:TEXT URL EMAIL); } sub NamedParams($):method { return qw(LANG); } sub RequiredParams($):method { return (); } sub validateParam($$$):method { my($this,$param,$val) = @_; if($param eq 'LANG') { $val =~ s/_/-/g; if($val =~ /^ \w+ (?: - \w+ )* $/x) { return $val; } else { die qq(Invalid value "$val" for [CODE LANG]); } } return $this->SUPER::validateParam($param,$val); } sub toHTML($):method { my $this = shift; my $pfx = $this->parser->css_prefix; my $lang = $this->param('LANG'); my $body = $this->bodyHTML; $body =~ s#
$##mg; $body =~ s#
#\n#g; return multilineText qq(
\n), qq(
), (defined $lang ? encodeHTML(ucfirst "$lang ") : ""), qq(Code:
\n), qq(
\n),
		qq($body\n),
		qq(
\n), qq(
\n); } 1;