quips.cgi rewrite and templatisation.

This commit is contained in:
gerv%gerv.net 2002-01-25 22:40:04 +00:00
Родитель a29b076027
Коммит 9f7179af83
2 изменённых файлов: 113 добавлений и 27 удалений

Просмотреть файл

@ -19,6 +19,7 @@
# Rights Reserved.
#
# Contributor(s): Owen Taylor <otaylor@redhat.com>
# Gervase Markham <gerv@gerv.net>
use diagnostics;
use strict;
@ -28,40 +29,61 @@ use lib qw(.);
require "CGI.pl";
print "Content-type: text/html\n\n";
# Use the template toolkit (http://www.template-toolkit.org/)
use Template;
PutHeader("Quips for the impatient", "Add your own clever headline");
# Create the global template object that processes templates
my $template = Template->new(
{
INCLUDE_PATH => "template/custom:template/default",
RELATIVE => 1,
PRE_CHOMP => 1,
});
print qq{
The buglist picks a random quip for the headline, and
you can extend the quip list. Type in something clever or
funny or boring and bonk on the button.
<FORM METHOD=POST ACTION="new_comment.cgi">
<INPUT SIZE=80 NAME="comment"><BR>
<INPUT TYPE="submit" VALUE="Add This Quip">
</FORM>
# Define the global variables and functions that will be passed to the UI
# template.
my $vars =
{
'Param' => \&Param,
'PerformSubsts' => \&PerformSubsts,
};
if (exists $::FORM{show_quips}) {
print qq{
<H2>Existing headlines</H2>
};
my $action = $::FORM{'action'} || "";
if ($action eq "show") {
# Read in the entire quip list
if (open (COMMENTS, "<data/comments")) {
while (<COMMENTS>) {
print $_,"<br>\n";
}
my @quips;
push (@quips, $_) while (<COMMENTS>);
close COMMENTS;
$vars->{'quips'} = \@quips;
$vars->{'show_quips'} = 1;
}
print "<P>";
} else {
print qq{
For the impatient, you can
<A HREF="quips.cgi?show_quips=yes">view the whole quip list</A>.
};
print "<P>";
}
PutFooter();
if ($action eq "add") {
# Add the quip
my $comment = $::FORM{"quip"};
if (!$comment) {
DisplayError("Please enter a quip in the text field.");
exit();
}
if ($comment =~ m/</) {
DisplayError("Sorry - for security reasons, support for HTML tags has
been turned off in quips.");
exit();
}
open(COMMENTS, ">>data/comments");
print COMMENTS $comment . "\n";
close(COMMENTS);
$vars->{'added_quip'} = $comment;
}
print "Content-type: text/html\n\n";
$template->process("info/quips.tmpl", $vars)
|| DisplayError("Template process failed: " . $template->error())
&& exit;

Просмотреть файл

@ -0,0 +1,64 @@
[%# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): Gervase Markham <gerv@gerv.net>
#%]
[% INCLUDE global/header
title = "Bugzilla Quip System"
h1 = "Add your own clever headline"
%]
[% IF added_quip %]
<p>
<font color="red">
Your quip '<tt>[% added_quip %]</tt>' has been added.
</font>
</p>
[% END %]
<p>
Bugzilla will pick a random quip for the headline on each bug list, and
you can extend the quip list. Type in something clever or funny or boring
(but not obscene or offensive, please) and bonk on the button.
</p>
<form method="post" action="quips.cgi">
<input type="hidden" name="action" value="add" />
<input size="80" name="quip" />
<p>
<input type="submit" value="Add This Quip" />
</p>
</form>
[% IF show_quips %]
<h2>
Existing quips:
</h2>
<ul>
[% FOREACH quip = quips %]
<li>[% quip %]</li>
[% END %]
</ul>
[% ELSE %]
<p>
Those who like their wisdom in large doses can
<a href="quips.cgi?action=show">view the whole quip list</a>.
</p>
[% END %]
[% INCLUDE global/footer %]