moved qdb here because matt is lazy

master
Jacob Parker 11 years ago
parent fb02a3f4c5
commit 2ee07a1396
  1. 22
      pub/qdb/.htaccess
  2. BIN
      pub/qdb/.install.txt.swp
  3. 111
      pub/qdb/changelog.txt
  4. 42
      pub/qdb/chirpy.ini
  5. 60
      pub/qdb/index.cgi
  6. 533
      pub/qdb/install.txt
  7. 340
      pub/qdb/license.txt
  8. 34
      pub/qdb/readme.txt
  9. 39
      pub/qdb/res/.htaccess
  10. 1
      pub/qdb/res/captcha/.htaccess
  11. BIN
      pub/qdb/res/themes/default/cite.ico
  12. 1104
      pub/qdb/res/themes/default/css/default.css
  13. 66
      pub/qdb/res/themes/default/css/styles/default.css
  14. 66
      pub/qdb/res/themes/default/css/styles/fish_tank.css
  15. 66
      pub/qdb/res/themes/default/css/styles/grayscale.css
  16. 66
      pub/qdb/res/themes/default/css/styles/nineties.css
  17. 66
      pub/qdb/res/themes/default/css/styles/spring.css
  18. 483
      pub/qdb/res/themes/default/js/administration.js
  19. 53
      pub/qdb/res/themes/default/js/ajax.js
  20. 1
      pub/qdb/res/themes/default/js/excanvas/AUTHORS
  21. 202
      pub/qdb/res/themes/default/js/excanvas/COPYING
  22. 22
      pub/qdb/res/themes/default/js/excanvas/README
  23. 93
      pub/qdb/res/themes/default/js/excanvas/examples/example1.html
  24. 513
      pub/qdb/res/themes/default/js/excanvas/examples/example2.html
  25. 284
      pub/qdb/res/themes/default/js/excanvas/examples/example3.html
  26. BIN
      pub/qdb/res/themes/default/js/excanvas/examples/ff.jpg
  27. 730
      pub/qdb/res/themes/default/js/excanvas/excanvas.js
  28. 594
      pub/qdb/res/themes/default/js/graph.js
  29. 230
      pub/qdb/res/themes/default/js/live_rating.js
  30. 157
      pub/qdb/res/themes/default/js/slider/boxsizing.htc
  31. 132
      pub/qdb/res/themes/default/js/slider/range.js
  32. 489
      pub/qdb/res/themes/default/js/slider/slider.js
  33. 62
      pub/qdb/res/themes/default/js/slider/timer.js
  34. 1
      pub/qdb/res/themes/default/js/style_switcher.js
  35. 65
      pub/qdb/res/themes/default/js/tabbed_pane.js
  36. 119
      pub/qdb/res/themes/default/js/tag_cloud.js
  37. 4
      pub/qdb/src/.htaccess
  38. BIN
      pub/qdb/src/cache/template/05/97c435de1f438f8dcb708dc88fa3f9
  39. BIN
      pub/qdb/src/cache/template/3e/46cdf3a4a085f1b3af728e719f8c06
  40. BIN
      pub/qdb/src/cache/template/76/3e31852f24c555c67307d4f934cdae
  41. 282
      pub/qdb/src/locales/en-US.ini
  42. 850
      pub/qdb/src/modules/Chirpy.pm
  43. 172
      pub/qdb/src/modules/Chirpy/Account.pm
  44. 93
      pub/qdb/src/modules/Chirpy/Configuration.pm
  45. 569
      pub/qdb/src/modules/Chirpy/DataManager.pm
  46. 1256
      pub/qdb/src/modules/Chirpy/DataManager/MySQL.pm
  47. 219
      pub/qdb/src/modules/Chirpy/Event.pm
  48. 1159
      pub/qdb/src/modules/Chirpy/Locale.pm
  49. 153
      pub/qdb/src/modules/Chirpy/NewsItem.pm
  50. 254
      pub/qdb/src/modules/Chirpy/Quote.pm
  51. 1444
      pub/qdb/src/modules/Chirpy/UI.pm
  52. 2594
      pub/qdb/src/modules/Chirpy/UI/WebApp.pm
  53. 962
      pub/qdb/src/modules/Chirpy/UI/WebApp/Administration.pm
  54. 117
      pub/qdb/src/modules/Chirpy/UI/WebApp/Captcha.pm
  55. 132
      pub/qdb/src/modules/Chirpy/UI/WebApp/Captcha/Authen_Captcha.pm
  56. 278
      pub/qdb/src/modules/Chirpy/UI/WebApp/Captcha/GD_SecurityImage.pm
  57. 231
      pub/qdb/src/modules/Chirpy/UI/WebApp/Session.pm
  58. 157
      pub/qdb/src/modules/Chirpy/UI/WebApp/Session/DataManager.pm
  59. 146
      pub/qdb/src/modules/Chirpy/UpdateChecker.pm
  60. 249
      pub/qdb/src/modules/Chirpy/Util.pm
  61. 150
      pub/qdb/src/modules/Chirpy/Util/IniFile.pm
  62. 172
      pub/qdb/src/modules/Chirpy/Webauth.pm
  63. 9
      pub/qdb/src/templates/default/_foot.html
  64. 51
      pub/qdb/src/templates/default/_head.html
  65. 11
      pub/qdb/src/templates/default/_search_form.html
  66. 61
      pub/qdb/src/templates/default/administration.html
  67. 18
      pub/qdb/src/templates/default/confirm.html
  68. 6
      pub/qdb/src/templates/default/error.html
  69. 42
      pub/qdb/src/templates/default/feeds/atom10.xml
  70. 34
      pub/qdb/src/templates/default/feeds/rss20.xml
  71. 25
      pub/qdb/src/templates/default/login.html
  72. 6
      pub/qdb/src/templates/default/message.html
  73. 128
      pub/qdb/src/templates/default/quote_list.html
  74. 12
      pub/qdb/src/templates/default/quote_search.html
  75. 35
      pub/qdb/src/templates/default/start_page.html
  76. 90
      pub/qdb/src/templates/default/statistics.html
  77. 35
      pub/qdb/src/templates/default/submit_quote.html
  78. 20
      pub/qdb/src/templates/default/tag_cloud.html
  79. 27
      pub/qdb/src/welcome.html
  80. 195
      pub/qdb/util/chirpy_rqms_import.php
  81. 132
      pub/qdb/util/gzip.pl
  82. 145
      pub/qdb/util/setup.pl
  83. 2
      templates/default.html

@ -0,0 +1,22 @@
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([0-9]+|0x[0-9A-Fa-f]+|0b[01]+)$ index.cgi?id=$1 [L]
RewriteRule ^(rss|atom)$ %{REQUEST_URI}/qotw [L,R=301]
RewriteRule ^(rss|atom)/([a-z_]+)$ index.cgi?action=$2&output=$1 [L]
RewriteRule ^ms/([a-z_]+)$ index.cgi?action=$1&output=ms [L]
RewriteRule ^search/(.+) index.cgi?action=search&query=$1 [L]
RewriteRule ^tags/([^\ ]+)$ index.cgi?action=search&query=tag:$1 [L]
RewriteRule ^([a-z_]+)(/([a-z_]*))?$ index.cgi?action=$1&admin_action=$3 [L,QSA]
</IfModule>
<IfModule mod_access.c>
<Files chirpy.ini>
order deny,allow
deny from all
</Files>
</IfModule>
AuthType WebAuth
require valid-user
AddHandler cgi-script .cgi

Binary file not shown.

@ -0,0 +1,111 @@
_____________________________________________________________________________
/ \
| Chirpy! v0.3 2007-02-09 |
\_____________________________________________________________________________/
* Added statistics page
* Users can now revert their vote if, for example, they accidentally clicked
on the wrong link
* Now keeping (and displaying) vote counts per quote
* Radically changed order of top and bottom quotes, by introducing quote
scores: score = (positive votes + 1) / (negative votes + 1), as suggested by
sp3000 at irc.mozilla.org #bs on 2006-10-28
* Added metadata-based logging, including search
* Made rating and reporting links use POST instead of GET and added
intermediate confirmation page for non-AJAX users
* Added microsummaries
* You can now edit quotes before approving them
* Added wildcard searching
* Made tag cloud ignore unapproved quotes
* Tag cloud can now use logarithmic calculation, to make tag use distribution
appear more even
* Added dynamic tag cloud pruning based on number of quotes
* Administrative interface now only displays tabs that are available
* Improved and simplified captcha support; added preliminary support for
GD::SecurityImage as an alternative for Authen::Captcha; to enable captchas,
simply webapp.captcha_provider=Authen_Captcha should suffice
* Made pages point to their own feeds instead of QotW (where applicable)
* Added description field in chirpy.ini, for use in feeds
* Made quote titles in feeds more meaningful
* Put page title in feed title instead of subtitle
* Improved feed modification detection
* Made templates use HTML::Template's caching feature, which is pretty fast
* Template parameters are now global, which means you can include parameters
from outside a loop
* Renamed template parameters for search form; they are now always available
and the default theme includes a search form with search results
* Optimized template parsing a little
* Moved administration-related subs to a separate class, speeding up non-admin
pages somewhat
* Extended quick style linking method: <> is now omitted and link text can be
changed by separating it from URL by whitespace, e.g.
Surf to <http://chirpy.sourceforge.net/ The Chirpy! web site>!
* Simplified RSS feed: using HTML in <description> and removing
<content:encoded> and <xhtml:body>, making feedvalidator.org like it more
* Added tags as categories in feeds
* Made check for expired sessions a lot faster
* News body on start page is now divided into paragraphs; opening and closing
tag are included, so update your templates
* Bugfix: live rating no longer throws a JavaScript error in IE
* Bugfix: quote rating up log entry now includes quote ID (#1493589)
* Just for fun, quote IDs can now be in binary and hex notation too, as per
<http://quotes.burntelectrons.org/844>
_____________________________________________________________________________
/ \
| Chirpy! v0.2 2006-05-02 |
\_____________________________________________________________________________/
* Fixed SQL injection vulnerabilities
* Fixed logging of author when editing or removing news items (#1289047)
* Added on-the-fly gzip compression to Chirpy::UI::WebApp--webapp.enable_gzip=1
in your configuration file enables it
* Added optional captcha image to Chirpy::UI::WebApp's quote submission page
* Added quote tagging
* Made search query Google-style and added tag: prefix for searching for quotes
with a certain tag
* Made top and bottom quotes browsable
* Added periodic update check (site owners only)
* Made ui.quotes_per_page apply to random, top and bottom quotes instead of
individual setting per page type
* Added webapp.quotes_per_feed to set maximum number of quotes in feeds
individually
* Made Atom 1.0 feed valid by adding feed ID and webmaster name. Webmaster name
must be configured as webapp.webmaster_name
* Added quote_count method to Chirpy::DataManager and APPROVED_QUOTE_COUNT,
UNAPPROVED_QUOTE_COUNT, and TOTAL_QUOTE_COUNT to templates
* Added mass quote approval and unflagging to Chirpy::UI::WebApp's
administration section
* Changed Chirpy::DataManager's API so add_* methods set IDs
* Added option to automatically turn URLs and e-mail addresses in quotes into
hyperlinks
* Made Chirpy::UI::WebApp escape all e-mail addresses to prevent spam
* Made Chirpy::UI::WebApp replace sequences of whitespaces with &#xA0; instead
of &nbsp;, so the Atom feed remains valid
* Made quote reporting require session information to prevent false positives
from crawlers
* Fixed sub account_count in Chirpy::DataManager::MySQL; removing accounts now
works again
* Optimized fetching single quote in Chirpy::DataManager::MySQL
* Made Chirpy::UI::WebApp::Session automatically remove expired sessions every
24 hours; util/remove_expired_sessions.pl is now obsolete
* Fixed US English (and Dutch) locale: quote_submission_thanks_administrator is
now quote_submission_thanks_no_approval
* Extended feed templates with a couple of variables and added rating and
report URLs as well as notes to the default templates
* Replaced feed templates' CSS with legacy HTML
* Cosmetic fixes to Chirpy::UI::WebApp's live rating system
* Mentioned Chirpy::UI::WebApp::Session::DataManager in Chirpy::DataManager's
documentation
* Cosmetic fix in Account Manager: space after New Account
* Replaced table for vertical split on start page with divs
* No longer overriding old onunload function in style switcher
* Added some debugging features
* Added changelog.txt
_____________________________________________________________________________
/ \
| Chirpy! v0.1 2005-09-12 |
\_____________________________________________________________________________/
* First official release

@ -0,0 +1,42 @@
[general]
title=CSC Quote Database
description=Quotes from the CSC
base_path=./src
locale=en-US
rating_limit_count=60
rating_limit_time=60
update_check=1
[data]
type=MySQL
mysql.hostname=localhost
mysql.port=3306
mysql.username=mimcpher
mysql.password=oq5VuqPtNfLTFRZozDsH
mysql.database=mimcpher
mysql.prefix=qdb_
[ui]
type=WebApp
date_time_format=%Y-%m-%d %H:%M GMT
date_format=%Y-%m-%d
time_format=%H:%M GMT
use_gmt=1
quotes_per_page=30
recent_news_item=3
moderation_queue_public=1
tac_cloud_logarithmic=1
webapp.webmaster_name=Calum T. Dalek
webapp.webmaster_email=calum@csclub.uwaterloo.ca
webapp.site_url=https://csclub.uwaterloo.ca/~j3parker/pub/qdb/
webapp.resources_url=https://csclub.uwaterloo.ca/~j3parker/pub/qdb/res
webapp.theme=default
webapp.welcome_text_file=welcome.html
webapp.cookie_domain=csclub.uwaterloo.ca
webapp.cookie_path=/~j3parker/pub/qdb
webapp.session_expiry=+3d
webapp.enable_short_urls=0
webapp.enable_feeds=1
webapp.quotes_per_feed=50
webapp.enable_gzip=0
webapp.enable_autolink=1

@ -0,0 +1,60 @@
#!/usr/bin/perl
###############################################################################
# Chirpy! 0.3, a quote management system #
# Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net> #
###############################################################################
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 51 #
# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
###############################################################################
###############################################################################
# index.cgi #
# Initialization script #
###############################################################################
# $Id:: index.cgi 291 2007-02-05 21:24:46Z ceetee $ #
###############################################################################
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser set_message);
BEGIN {
unshift @INC, 'src/modules';
set_message(sub {
my $msg = shift;
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"', $/,
'"http://www.w3.org/TR/html4/strict.dtd">', $/,
'<html>', $/,
'<head>', $/,
'<meta http-equiv="Content-Type"', $/,
'content="text/html; charset=UTF-8">', $/,
'<title>An Error Occurred</title>', $/,
'</head>', $/,
'<body>', $/,
'<h1>An Error Occurred</h1>', $/,
'<blockquote><pre>', $msg, '</pre></blockquote>', $/,
'<p><em>Powered by <a', $/,
'href="http://chirpy.sourceforge.net/">Chirpy!</a></em></p>', $/,
'</body>', $/,
'</html>';
exit;
});
}
use Chirpy 0.3;
chirpy('./chirpy.ini');
###############################################################################

@ -0,0 +1,533 @@
###############################################################################
# Chirpy! 0.3, a quote management system #
# Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net> #
###############################################################################
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 51 #
# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
###############################################################################
###############################################################################
# INSTALLATION INSTRUCTIONS #
###############################################################################
CONTENTS
========
1. INTRODUCTION
2. REQUIREMENTS
3. INSTALLATION
3.1. Copy files
3.2. Configure
3.2.1. The [general] Section
3.2.2. The [data] Section
3.2.3. The [ui] Section
3.3. Setup
3.4. Import
4. UPGRADING
5. RUN CHIRPY!
6. NEXT STEPS
6.1. Your Own Theme
6.2. Your Own Locale
6.3. Your Own Data Manager
6.4. Your Own User Interface
1. INTRODUCTION
===============
Thank you for trying this Chirpy! beta version. Note that, while every feature
contained in this product is functional unless stated otherwise, you may very
well run into problems here and there. However, in most cases, there's probably
an easy fix. You may find the following URLs helpful:
* Trackers (Bugs, Support, Feature Requests)
http://sourceforge.net/tracker/?group_id=147270
* Chirpy! web site
http://chirpy.sourceforge.net/
* API Specification (mainly for developers)
http://chirpy.sourceforge.net/pod/
2. REQUIREMENTS
===============
To install Chirpy!, you'll need web space that gives you access to Perl 5.8 and
a SQL server running MySQL 4.1 or higher. Those version numbers are expected
to drop a little in an upcoming version.
In addition, you'll need these Perl modules:
Carp Data::Dumper HTML::Template
Digest::MD5 DBD::mysql HTTP::Date
Encode DBI URI::Escape
POSIX Storable
It seems like a long list, but most of them are common and come with standard
distributions of Perl. Other modules will need to be installed separately; you
should probably ask your host about that. If any of these modules are missing,
Chirpy! will not work.
In addition, Chirpy! uses the CGI::Carp module for verbose error reporting,
which makes problems easier to trace. While this module is also really common,
you can drop the dependency by removing statements containing "CGI::Carp" or
"set_message" from the scripts.
3. INSTALLATION
===============
If all the requirements are met, you are ready to begin the installation of
Chirpy!. Let's go!
3.1. Copy files
---------------
Since you're reading this file, we'll assume that you've already extracted the
entire installation package.
First, we'll take a quick look at the contents of the package. You should have
the following directories and files in the root:
res/ The resources directory. Resources are public files that
are required by themes, such as images and style sheets.
src/ The source directory. Contains all the necessary files to
run Chirpy!, including its modules, locales, templates and
configuration file.
util/ Contains some utilities that you may find useful while
installing or using Chirpy!.
.htaccess Has some directives that enable short URLs. Covered later
in this document.
changelog.txt All the stuff that's changed between Chirpy! releases.
index.cgi The main script. Will be the only URL that is accessed
directly by visitors.
install.txt This document.
license.txt The GNU General Public License, under which Chirpy! is
distributed.
Now, we're going the copy the files to a public path on the web server. This is
usually done using an FTP client.
As for the files in the package root directory, the only one you really need is
index.cgi. Since this is a Perl script, it has to be inside a path where the
server allows execution of scripts. Most servers these days will allow that
anywhere, but yours might require that you put it inside a cgi-bin/ directory,
which may even be outside the document root on the FTP server. This is no
problem--just make sure it wants to execute it and not display the contents.
The index.cgi file needs some attributes. This is done by issueing a SITE CHMOD
command on the FTP server. If you use a graphical FTP client, you can probably
right-click on the file and tick off the necessary attributes. They are:
Owner READ WRITE EXECUTE
Group READ - EXECUTE
Others READ - EXECUTE
This translates to the string representation "rwxr-xr-x" or, numerically, 755
on UNIX systems. On most systems, this step is essential. You will get an error
page if you fail to change the file's attributes. Also, if you are using an FTP
client, make sure you have uploaded index.cgi in ASCII (text) mode, not image
(binary).
You may want to copy the .htaccess file from the package root as well. Make
sure you don't confuse it with the one in the src/ directory! The one covered
here allows you to use short URLs, which are easy to remember, using the
mod_rewrite Apache module. To use that option, you will need to run Chirpy! on
an Apache web server that has the mod_rewrite module. Note that, while short
URLs will not work if mod_rewrite is not enabled, it should be safe to have the
.htaccess file there anyway, since it checks for the module first. Moreover, it
also attempts to block access to the configuration file, so you might want to
have it anyway; we will cover that configuration file in a moment.
The res/ directory only holds static files and should reside in a public path
on the server, like <http://www.yourserver.com/chirpy/res>. You can upload it
anywhere, even on a different server. We'll need the URL later for the
configuration.
Next up: the src/ directory. This one does not have to be publicly accessible
and for security reasons, it really shouldn't be either. Chirpy! takes some
precautions to disallow access to it by placing a .htaccess file in it, that
holds code specific to the Apache web server. However, placing the directory
outside the document root (if possible) is a MUCH safer choice.
Alternatively, you can keep chirpy.ini, the configuration file, which we will
cover later in this document, outside the document root and the src/ directory.
Inside the src/ directory, you will find a directory called cache/. Make sure
it is empty. Also, it needs to be world-writable, i.e. its attributes must be
set to "rwxrwxrwx" or 777.
The util/ directory should NOT be uploaded. You are however likely to need the
setup.pl script inside it, but we'll get to that in a moment.
That covers uploading the files--almost. We'll need to upload a configuration
file at the end of the next step.
3.2. Configure
--------------
Chirpy! stores its configuration in a standard .INI file, a basic format which
is common on Windows systems. In this step, we'll create such a configuration
file.
By default, Chirpy! looks for chirpy.ini in the working directory (which is
where you put index.cgi) and inside the src/ directory if it is directly inside
the working directory. Otherwise, you will have to edit index.cgi. As explained
above, that little bit of editing is recommended, so your configuration file
resides outside the public domain. After all, it will contain your MySQL server
password, and we don't want visitors to read that, now, do we?
Right, let's create that chirpy.ini file now. Here is a basic example:
-------------------------------------------------------------------------------
[general]
title=My Little QDB
description=A place for my quotes
base_path=./src
locale=en-US
rating_limit_count=2
rating_limit_time=60
update_check=1
[data]
type=MySQL
mysql.hostname=localhost
mysql.port=3306
mysql.username=my_username
mysql.password=my_password
mysql.database=my_database
mysql.prefix=chirpy_
[ui]
type=WebApp
date_time_format=%Y-%m-%d %H:%M GMT
date_format=%Y-%m-%d
time_format=%H:%M GMT
use_gmt=1
quotes_per_page=10
recent_news_items=3
moderation_queue_public=1
tag_cloud_logarithmic=1
webapp.webmaster_name=John Doe
webapp.webmaster_email=you@yourserver.com
webapp.site_url=http://www.yourserver.com/cgi-bin/chirpy
webapp.resources_url=http://www.yourserver.com/chirpy/res
webapp.theme=default
webapp.welcome_text_file=welcome.html
webapp.cookie_domain=yourserver.com
webapp.cookie_path=/cgi-bin/chirpy
webapp.session_expiry=+3d
webapp.enable_short_urls=0
webapp.enable_feeds=0
webapp.quotes_per_feed=50
webapp.enable_gzip=0
webapp.enable_autolink=0
-------------------------------------------------------------------------------
A lot of the values don't look very interesting right now, but we'll have to
change some of the others.
3.2.1. The [general] Section
----------------------------
title Change this value to the title you want your QDB to have.
description Enter a brief description of the purpose of your QDB.
base_path Enter the absolute or relative path to the src/ directory
here. When using relative paths, this is again relative to
the directory where index.cgi is.
update_check Set this to 1 to tell Chirpy! to automatically check for
updates periodically. Only site owners will be informed of
available updates. This feature requires that libwww-perl
(LWP) be installed; if it is not, Chirpy! will just show
you an informative error message.
3.2.2. The [data] Section
-------------------------
mysql.hostname Enter the name of the MySQL server here. Usually, this will
be "localhost".
mysql.port Enter the port the MySQL server uses. The default is 3306.
mysql.username Enter your MySQL username. This is not necessarily the same
as your regular username.
mysql.password Enter your MySQL password. This is not necessarily the same
as your regular password.
mysql.database Enter the name of the MySQL database Chirpy! should use. If
it does not exist, you need to create it first. Do not
create any tables; Chirpy! will do that for you.
mysql.prefix If you only have one MySQL database, Chirpy! can make its
tables easy to find by prefixing their names with the text
you enter here. The default "chirpy_" is a wise choice.
3.2.3. The [ui] Section
-----------------------
webapp.webmaster_name
Your name.
webapp.webmaster_email
Your e-mail address. Don't worry about spam, Chirpy! will
use some fancy tricks to hide it.
webapp.site_url The URL where you put index.cgi.
webapp.resources_url
The URL where you put the res/ directory.
webapp.cookie_domain
Essentially the domain name (without the www prefix) from
your site's URL. This will be used to store cookies.
webapp.cookie_path The part that comes after the domain in the site URL. This
will also be used to store cookies.
webapp.enable_short_urls
Change this to 1 to enable the short URLs feature described
above. If you get "Not Found" errors while browsing the QDB
later, you should turn it off.
webapp.enable_feeds Chirpy! can offer an RSS 2.0 feed and an Atom 1.0 feed of
the Quotes of the Week, so visitors can syndicate them. If
you want to enable those, set this to 1.
webapp.quotes_per_feed
This is the maximum number of quotes to include in a feed.
In theory, Chirpy! can provide a content feed for any page,
and since feeds do not offer "Previous"/"Next" links, this
should be a sensible number. The default is 50.
webapp.enable_gzip Chirpy! can greatly decrease bandwidth usage by compressing
output on the fly if the browser supports it. Set this to 1
to enable that. It requires the Compress::Zlib Perl module.
webapp.enable_autolink
Change this to 1 to automatically turn URLs and e-mail
addresses in quote bodies into hyperlinks. This feature is
still sort of experimental, but should work fine.
webapp.captcha_provider
If you wish to prevent malicious users from spamming the
quote submission page, you will want to use captcha images.
This parameter sets the captcha provider, which will be
Authen_Captcha in most cases. Then Authen_Captcha provider
relies on Authen::Captcha being installed.
You may want to turn the captcha feature off at first, so you can test-drive
Chirpy!'s other features. Configuring the captcha feature should be easy in the
case of Authen_Captcha. The alternative is to use GD_SecurityImage. Support for
that one is preliminary for now. If you are interested in using it, please
consult the appropriate documentation.
That covers the configuration file. Save it as chirpy.ini and, as stressed
before, try to store it at a location on the server which cannot be accessed
using a Web browser.
Now, we'll have to modify index.cgi a little to tell it where to find the
configuration file. Again, it looks for chirpy.ini in the working directory and
inside src/, but hopefully, it won't be there. So we'll just open index.cgi in
a text editor and change the line
chirpy;
to the following:
chirpy('/path/to/chirpy.ini');
Again, you can use either an absolute path or a path relative to the working
directory. You'll also need this path in the next step.
While we're editing index.cgi, there are two more things you might have to
change. The first is the path to the modules/ directory inside src/. This path
is stored like:
unshift @INC, 'src/modules';
If you have not placed the src/ directory in the same directory as index.cgi,
update the path so Perl can find the Chirpy! modules.
The other thing you might have to change is the path to Perl itself. Most
servers have it at /usr/bin/perl, but if yours doesn't, change the first line
of index.cgi to "#!" followed by the exact path to Perl.
3.3. Setup
----------
Now that all the files are there, we'll grab setup.pl from the util/ directory
and open it in a text editor. Look for the line that reads
my $ch = new Chirpy();
and change that to
my $ch = new Chirpy('/path/to/chirpy.ini');
using the same path you entered in index.cgi. In addition, you will have to
update the path to src/modules/ and Perl itself again, if you had to do so for
index.cgi.
Now, upload setup.pl to the directory where index.cgi resides and change its
attributes so they are the same as index.cgi's; as described above, they should
be rwxr-xr-x (755). Again, since this is a Perl script, upload in ASCII mode!
Now, we're going to call your Web browser into action. Open it and surf to the
URL where setup.pl should be now, e.g.
http://www.yourserver.com/cgi-bin/chirpy/setup.pl
That should give you a basic page, welcoming you to the setup procedure. If
not, let's go over a few common problems ...
- If you get the source code of setup.pl or maybe a download window, the server
doesn't allow execution of Perl scripts in that directory. You'll probably
need to use the cgi-bin directory instead.
- If you get a Forbidden error, you probably didn't change the script's
attributes properly, as described above.
- If you get a fairly verbose error that has line numbers and lots of weird
characters and other stuff that confuses you in it, the server executed the
script, but it crashed somewhere along the way. Something may have gone wrong
with the upload of one or more files; upload them again. If that doesn't do
any good, paste the error message at the Support Tracker, to which you can
find the URL at the start of this document.
- If you get a generic "Internal Server Error" page, the server most likely
failed to execute the script at an earlier stage. Some files may have gotten
corrupted in the upload process; try uploading them again. If that doesn't
help, go over the text above to see if you didn't miss anything. If problems
persist, your host can give you a copy of the server's error log, which may
tell you more. If you can get an error message from the log, you can post
that at the Support Tracker; without it, the error will be nearly impossible
to trace.
Assuming you've reached the setup page now, you get to decide if you want to
keep your existing installation if any. If you're installing Chirpy! for the
first time, you should choose to keep data, since it's faster. That should give
you a page with a basic event log for the setup procedure. If it tells you the
setup procedure has been completed, you can go to the next step now. If not,
take a look at the error and see if you can fix things. If not, try the Support
Tracker for assistance.
3.4. Import
-----------
This step is optional. It only applies if you have the Rash Quote Management
System installed and you want to migrate its data to Chirpy!. If you have no
idea what this is about, just skip this step.
To import Rash's data, grab chirpy_rqms_import.php from the util/ directory.
Open it in a text editor and edit the configuration values at the start of the
script. Then place it in the directory where you installed Rash, so it can find
config.php. Surf to chirpy_rqms_import.php and everything should be clear from
there. If anything goes wrong, try the Support Tracker.
4. UPGRADING
============
If you are upgrading from Chirpy! version 0.1 or 0.2, you should just move the
updated setup.pl script from the "util" directory into Chirpy!'s root directory
for a second, make it executable, and surf to it. Chirpy! will then ask you if
you want to perform a fresh installation or an upgrade. Now, DO *NOT* CLICK ON
"FRESH INSTALLATION," because you would lose all your quotes, accounts, etc.
Instead, click the "UPGRADE" button, wait for the page to load, watch Chirpy!
inform you of the successful upgrade, and remove setup.pl again.
Additionally, as Chirpy! 0.3 offers quite a couple of new features, you will
probably want to play with those. Most of them just come down to adding a line
in the configuration file. For captchas, you will need to create a couple of
directories; just scroll back to section 3.2, where the configuration file is
explained--it's all there. Enjoy!
5. RUN CHIRPY!
==============
_____________________________________________________________________________
| |
| !!! DON'T FORGET TO REMOVE THE SETUP SCRIPT FROM THE SERVER FIRST !!! |
|_____________________________________________________________________________|
By now, the setup script should have directed you to your brand new Chirpy!
installation already. If not, append /index.cgi to your site URL and open that
URL. That should give you a cute little start page. You should be able to leave
off index.cgi in the URL now--try it. If it doesn't work, you should definitely
turn short URLs off. If something else goes wrong, you should try the Support
Tracker; the URL is at the beginning of this file.
Now, you're pretty much finished. Except that you should change the default
password. Surf to the administration section, log in as "superuser" with the
password "password" (if you didn't poke at setup.pl already) and click on the
"Manage Accounts" option. Select the "superuser" account and modify it.
That concludes the installation of Chirpy!. I hope you'll enjoy it. If you run
into a problem or you'd like to see a new feature in the next release, surf to
the Trackers.
Congratulations on a successful installation!
6. NEXT STEPS
=============
Now that you've got a working Chirpy! installation, you can tweak it to your
liking. Most of this is done from the configuration file. If you want to change
the welcome message, you just edit the file welcome.html in the src/ directory,
which is actually a template.
As Chirpy! is a work in progress, you can expect a lot more documentation on
customizing it in future releases. In the mean time, if you want to do more
advanced tweaking, here are a few possible scenarios:
6.1. Your Own Theme
-------------------
The easiest way to do this is to copy the existing "default" theme and modify
it, after which you change webapp.theme in the configuration file to use the
new theme. A theme is nothing but two directories named after it: the one in
src/themes/ holds the templates for the theme, the one in res/ holds its
resources. The template filenames are predefined, so you need to keep those
intact. The templates are parsed by the HTML::Template Perl module, so you will
probably have to look at its documentation for a second--or you could just
learn to use it by looking at the default theme's source code. The manual page
for HTML::Template can be found at
http://search.cpan.org/dist/HTML-Template/Template.pm
6.2. Your Own Locale
--------------------
You might want Chirpy! in your own language, and you can have it too. If you
look in the src/locales/ directory, you'll see that locales are actually just
INI files. Each locale string, along with some basic instructions for locale
creation, is documented in the POD, located at the URL at the start of this
document.
6.3. Your Own Data Manager
--------------------------
Chirpy! is extremely modular. If you'd rather have it store its data in your
choice of database, you are free to implement the Chirpy::DataManager class.
Its API is explained in the POD, which is available at the start of this
document or by typing "perldoc Chirpy::DataManager" from a console or command
prompt, if you have Perl installed.
6.4. Your Own User Interface
----------------------------
Apart from creating a backend, you can also write your own frontend class. This
class should implement Chirpy::UI. Unfortunately, the API documentation for it
is not yet available. Note that if your UI would be a web site, you should
probably just create a Chirpy::UI::WebApp theme as described in 5.1.
If you've created a theme, a locale, a data manager or a UI, please share your
work with the community! E-mail it to me at ceetee@users.sourceforge.net and it
might be included in the next Chirpy! release by default. Obviously, you would
get credit for it.
###############################################################################

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

@ -0,0 +1,34 @@
###############################################################################
# Chirpy! 0.3, a quote management system #
# Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net> #
###############################################################################
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 51 #
# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
###############################################################################
Installation instructions can be found in the install.txt file, which came with
Chirpy!. For anything else, please consult http://chirpy.sourceforge.net/.
Many thanks go out to the guys over at irc.mozilla.org #bs for helping me test
and giving me lots of useful feedback, to jX for hosting the irc.mozilla.org
QDB, the first real Chirpy! web site, and to F2O.org for providing their free
developer webspace, ideal for testing. Peace to you all. --ct
Chirpy! includes the projects listed below. Please consult their documentation,
which is also supplied with Chirpy!.
* ExplorerCanvas <http://excanvas.sourceforge.net/>
* WebFX Slider <http://webfx.eae.net/dhtml/slider/slider.html>
###############################################################################

@ -0,0 +1,39 @@
###############################################################################
# This file adds support for compressing static text content, such as CSS and #
# JavaScript files, in order to reduce traffic. To use it, you must perform #
# the following steps: #
# #
# 1. Move gzip.pl from the util/ directory to the root directory. If you had #
# to move index.cgi, e.g. because it had to be inside a cgi-bin, then move #
# gzip.pl there too. #
# 2. Modify the line use constant CACHE_DIR => '...'; in gzip.pl, setting the #
# cache directory to a writable path, where it can keep compressed files. #
# By default, this is a directory called "gzip" in your already present #
# "cache" directory. However, the path must be relative to the directory #
# where you puth gzip.pl! #
# 3. Change gzip.pl's attributes to rwxr-xr-x (755), like index.cgi. #
# 4. Comment out the lines below by removing the # in front of them. #
# 5. If gzip.pl is not in the root directory, modify its path in the line #
# that calls it below. #
# 6. Test! Obtain a tool that allows you to view HTTP headers and look at the #
# HTTP headers for a .js or .css file inside the res/ directory. If the #
# headers contain the line "Content-Encoding: gzip," the installation was #
# successful. No luck? Here are some common explanations: #
# a. Got an Internal Server Error? Verify that you uploaded gzip.pl in #
# ASCII mode and that you set its attributes. If you did, obtain an #
# error log from your host and see what that tells you. #
# b. If the server redirected the request to the same URL, with "?nogzip" #
# appended to it, the gzip.pl script did run, but decided compression #
# was not possible because of an incompatibility. #
# c. If the server neither compressed the file, nor redirected, then #
# gzip.pl didn't get invoked at all. The server might not support the #
# Rewrite module, or had trouble interpreting the directives below. #
###############################################################################
#<IfModule mod_rewrite.c>
#RewriteEngine On
#RewriteCond %{HTTP:Accept-Encoding} \bgzip\b
#RewriteCond %{QUERY_STRING} =""
#RewriteCond %{REQUEST_FILENAME} -s
#RewriteRule \.(css|js)$ ../gzip.pl?filename=%{REQUEST_FILENAME}&uri=%{REQUEST_URI}
#</IfModule>

@ -0,0 +1 @@
Options -Indexes

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because it is too large Load Diff

@ -0,0 +1,66 @@
/*
###############################################################################
# Chirpy! 0.3, a quote management system #
# Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net> #
###############################################################################
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 51 #
# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
###############################################################################
###############################################################################
# default.css #
# "Default" color theme for the default theme #
###############################################################################
# $Id:: default.css 291 2007-02-05 21:24:46Z ceetee $ #
###############################################################################
*/
a:hover, a:active {
color: #F63;
}
h1 a, h1 a:link, h1 a:visited {
background: #CFB;
border-top-color: #D6FFC6;
border-bottom-color: #C9F9B9;
}
ul#navigation li a:hover, ul#navigation li a:active,
ul.tabbed-pane-header li a:hover, ul.tabbed-pane-header li a:active {
background: #FDA;
border-color: #F0D0A0;
}
ul.quote-list li:hover h3.quote-header {
background: #FEC;
border-color: #FFE9C9;
}
ul.quote-list li:hover .quote-container {
background: #FFFCEC;
}
ul.quote-list li:hover .quote-footer, ul.quote-list li:hover .quote-tags a {
color: #BA9;
border-color: #FFE9C9;
}
ul.tabbed-pane-header li a.active-tab {
background: #ECF6EC;
border-top-color: #C0F0B0;
}
ul.tabbed-pane-contents {
border: 1px solid #ECF6EC;
}

@ -0,0 +1,66 @@
/*
###############################################################################
# Chirpy! 0.3, a quote management system #
# Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net> #
###############################################################################
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 51 #
# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
###############################################################################
###############################################################################
# fish_tank.css #
# "Fish Tank" color theme for the default theme #
###############################################################################
# $Id:: fish_tank.css 291 2007-02-05 21:24:46Z ceetee $ #
###############################################################################
*/
a:hover, a:active {
color: #3F6;
}
h1 a, h1 a:link, h1 a:visited {
background: #BCF;
border-top-color: #C6D6FF;
border-bottom-color: #B9C9F9;
}
ul#navigation li a:hover, ul#navigation li a:active,
ul.tabbed-pane-header li a:hover, ul.tabbed-pane-header li a:active {
background: #AFD;
border-color: #A0F0D0;
}
ul.quote-list li:hover h3.quote-header {
background: #CFE;
border-color: #C9FFE9;
}
ul.quote-list li:hover .quote-container {
background: #ECFFFC;
}
ul.quote-list li:hover .quote-footer, ul.quote-list li:hover .quote-tags a {
color: #9BA;
border-color: #C9FFE9;
}
ul.tabbed-pane-header li a.active-tab {
background: #ECECF6;
border-top-color: #B0C0F0;
}
ul.tabbed-pane-contents {
border: 1px solid #ECECF6;
}

@ -0,0 +1,66 @@
/*
###############################################################################
# Chirpy! 0.3, a quote management system #
# Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net> #
###############################################################################
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 51 #
# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
###############################################################################
###############################################################################
# grayscale.css #
# "Grayscale" color theme for the default theme #
###############################################################################
# $Id:: grayscale.css 291 2007-02-05 21:24:46Z ceetee $ #
###############################################################################
*/
a:hover, a:active {
color: #999;
}
h1 a, h1 a:link, h1 a:visited {
background: #ECECEC;
border-top-color: #F3F3F3;
border-bottom-color: #E9E9E9;
}
ul#navigation li a:hover, ul#navigation li a:active,
ul.tabbed-pane-header li a:hover, ul.tabbed-pane-header li a:active {
background: #F3F3F3;
border-color: #ECECEC;
}
ul.quote-list li:hover h3.quote-header {
background: #F6F6F6;
border-color: #F0F0F0;
}
ul.quote-list li:hover .quote-container {
background: #FCFCFC;
}
ul.quote-list li:hover .quote-footer, ul.quote-list li:hover .quote-tags a {
color: #BBB;
border-color: #F0F0F0;
}
ul.tabbed-pane-header li a.active-tab {
background: #E9E9E9;
border-top-color: #CCC;
}
ul.tabbed-pane-contents {
border: 1px solid #E9E9E9;
}

@ -0,0 +1,66 @@
/*
###############################################################################
# Chirpy! 0.3, a quote management system #
# Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net> #
###############################################################################
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 51 #
# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
###############################################################################
###############################################################################
# nineties.css #
# "Nineties" color theme for the default theme #
###############################################################################
# $Id:: nineties.css 291 2007-02-05 21:24:46Z ceetee $ #
###############################################################################
*/
a:hover, a:active {
color: #69C;
}