parent
fb02a3f4c5
commit
2ee07a1396
@ -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   instead |
||||
of , 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 |
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; |
||||
} |
||||