Commit 6ae2fd1c authored by gerv%gerv.net's avatar gerv%gerv.net

quips.cgi rewrite and templatisation.

parent 779c0c0c
......@@ -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";
PutHeader("Quips for the impatient", "Add your own clever headline");
# Use the template toolkit (http://www.template-toolkit.org/)
use Template;
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.
# Create the global template object that processes templates
my $template = Template->new(
{
INCLUDE_PATH => "template/custom:template/default",
RELATIVE => 1,
PRE_CHOMP => 1,
});
<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;
[%# 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 %]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment