summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xquips.cgi76
-rw-r--r--template/default/info/quips.tmpl64
2 files changed, 113 insertions, 27 deletions
diff --git a/quips.cgi b/quips.cgi
index d6fff6cfa..f1a41b4b9 100755
--- a/quips.cgi
+++ b/quips.cgi
@@ -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;
diff --git a/template/default/info/quips.tmpl b/template/default/info/quips.tmpl
new file mode 100644
index 000000000..b48bb631a
--- /dev/null
+++ b/template/default/info/quips.tmpl
@@ -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 %]