diff options
author | gerv%gerv.net <> | 2002-01-26 07:40:02 +0100 |
---|---|---|
committer | gerv%gerv.net <> | 2002-01-26 07:40:02 +0100 |
commit | 6ae2fd1cfdab799ea974100288d100bec1f0e81e (patch) | |
tree | 6094cdf1d58f2ecdf090e523bc12f7f7bc44a602 | |
parent | 779c0c0c410d04dcd4376fe6cb52a7fe0dad6344 (diff) | |
download | bugzilla-6ae2fd1cfdab799ea974100288d100bec1f0e81e.tar.gz bugzilla-6ae2fd1cfdab799ea974100288d100bec1f0e81e.tar.xz |
quips.cgi rewrite and templatisation.
-rwxr-xr-x | quips.cgi | 76 | ||||
-rw-r--r-- | template/default/info/quips.tmpl | 64 |
2 files changed, 113 insertions, 27 deletions
@@ -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 %] |