Blog-Simple-HTMLOnly
view release on metacpan or search on metacpan
$CGI->param('author'),
$CGI->param('email'),
$CGI->param('summary'),
$content
);
print h2("Blogged!");
$BLOGGER->render_current($FORMAT,1);
print p("<a href='$ENV{SCRIPT_NAME}?all'>SHOW ALL BLOGS</a>");
}
} else {
my $err = join", ", (grep { $CGI->param($_) eq '' } $CGI->param);
if ($err){
$err = "Your forgot to do the <i>$err</i>.";
}
&form($err);
}
} else {
$BLOGGER->render_current($FORMAT,1);
}
&print_footer unless $CGI->param('template') and $CGI->param('template') eq 'false';
exit;
sub print_header {
local (*IN,$_);
open IN,$TEMPLATE_PATH or die "Could not open $TEMPLATE_PATH from dir ".cwd;
read IN,$_,-s IN;
close IN;
($TEMPLATE_TOP,$TEMPLATE_BOTTOM) = /^(.*)<!--\sinsert.*?-->(.*)$/sig;
$TEMPLATE_TOP =~ s/<\s*title\s*>.*?<\/\s*title\s*>/<title>$TITLE<\/title>/si;
print $CGI->header, $TEMPLATE_TOP;
}
sub print_footer { print $TEMPLATE_BOTTOM }
sub form { my $err=shift;
print
h1("Add a Blog"),
($err? h3($err):""),
start_form,
"<table align='center' cellpadding='1' cellspacing='1' border='0'>\n",
"<tr>",
"<td>Title:</small></td><td>",
textfield(
-name=>'title',
-size=>65,
-maxlength=>65
),
"</td></tr><tr><td>Summary: </td><td>",
textfield(
-name=>'summary',
-default=>'',
-size=>65,
-maxlength=>65
),
"</td></tr><tr><td>Content:</small></td><td>",
"<textarea name='content' rows='15' cols='50' wrap='soft'>",
$CGI->param("content")?$CGI->param("content"):"",
"</textarea>",
"</td></tr><tr><td>",
"Author: </td><td>",$CGI->popup_menu(
-name=>'author',
-values=>[qw/Lee/],
-default=>'Lee'
),
"</td></tr><tr><td>",
"E-mail: </td><td>", textfield(
-name=>'email',
-default=>'blog@leegoddard.com',
-size=>65,
-maxlength=>65
),
"</td></tr><tr><td>",
"Password: </td><td>",
password_field(
-name=>'password',
-default=>'',
-override=>1,
-size=>65,
-maxlength=>65
),
"</td></tr><tr><td colspan='2'><hr size='1'/>",
"</td></tr><tr><td> </td><td>",
submit,
"</td></tr></table>",
end_form;
}
sub format_text {
@_ = map {"<p>$_</p>"} split (/[\n\r\f]+/,shift) ;
return join ("",@_);
}
=head1 HTML TEMPLATE
The template isn't used by this script; instead SSI is used to pull this script's output
into an SHTML page. Note the C<template=false> in the query string.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Blah Blah Blah</title>
</head>
<body>
<!--#include virtual="/cgi-bin/blog.cgi?template=false" -->
<!--#include virtual="/cgi-bin/blogcal.cgi?template=false" -->
</body>
</html>
( run in 0.814 second using v1.01-cache-2.11-cpan-364913b4093 )