Greenwood: A PHP Wiki Engine
What is it?
Greenwood is a minimalistic Wiki engine, developed for small to medium informational websites.
Examples include home pages, course websites, or general Wiki's.
Unlike a general Wiki, pages are immutable by the public.
Greenwood is a fork of PhpWiki that has been heavily modified and extended.
It is geared toward using file-system storage, and has a Wiki syntax similar to MoinMoin.
Major features:
- Greenwood is fast. It exploits a small code base (less than 10,000 lines of PHP), and takes advantage of native-speed PHP routines (like regular expressions) wherever possible.
- Greenwood is geared for file-system storage. In many situations, you may not have access to a database, so filesystem storage may be your only option. However, this may be a security issue on some installations (see Limitations).
- Greenwood is easy to install. It depends only on PHP, which most web servers have installed already.
- Greenwood's HTML output conforms to W3C standards.
How do I get it?
First, check that you meet the following requirements:
- You don't mind that Greenwood is beta software. Not all the features are yet complete, so I cannot make a release in good faith.
- You have access to subversion either on your local machine or via shell access to your web server.
- Your web server has support for PHP, and runs PHP 4 or PHP 5. PHP5 is the primary test bed for development, but PHP4 support should be maintained.
Using Subversion allows you to update the source code at any time, without re-installing. Since the source code is changing often, Subversion allows fixes to be deployed instantly.
If Greenwood is for you, then use subversion to checkout a local copy:
svn co http://greenwood.svn.sourceforge.net/svnroot/greenwood/trunk
If you wish to update your source code, use the subversion update command:
svn up .
Alternatively, you may choose which parts to update. See the subversion documentation for more.
To get started, you will need to modify the file lib/config.php. Here you may change the site name, file-system settings, localization settings, navigation settings, and more. Directions are provided in the file in the form of comments, so this process should be straightforward.
Once you have a working copy of the files on your webserver, you'll need to change the permissions to meet the requirements of your webserver.
- All source files should be world-readable
- The pages and files directories should be world-readable and -writeable.
Next, you will need to set up the lib/users.php file to allow at least one authorized user. As before, instructions are provided as comments in the file on how to proceed.
Limitations
Following is a list of limitations at the time of this writing. I only have so much development time, so if you would like to help out, please let me know.
- Database options other than the file-system database are generally broken. New features were added to the file-system database, so these need to be added to the other libraries (like MySQL) and tested.
- There's no access control list system implemented. Either the user is public (pages are immutable), or an administrator (all pages are mutable).
Detailed Features
- In-browser Wiki text editor. This is the primary way of editing your pages.
- Support for saving and loading drafts. The draft can also be compared to the current version.
- Support for previewing the draft. The preview can also be opened in a new window, allowing side-by-side composing.
- Change comments. The new revision can be given a comment.
- Page history. You can view any older version of the page, or compare differences (in Wiki markup) between any two versions.
- Recent Changes page. Each change that's made is recorded here with a summary of the change and a link to the page. An alternative access to this information is provided as an RSS XML feed.
- Back Links. Get a list of pages that link to the current page. This is useful for navigation.
- Upload, replace and delete files. Files are uploaded in the same way that new Wiki pages are created: by first creating a link, and then following the link. The AttachedFiles metapage is also available to give a summary of the files and allow administrator actions like replace/delete.
- Template code seperate from PHP code. If you know HTML and CSS, it should be relatively simple to change the look of your installation.
- Macros allow the Wiki syntax to be easily extensible. If you know PHP, simply open up lib/macros.php and define your own macros!
Sites Running Greenwood
e-mail me, and I'd be happy to post your address here.
© Ryan Helinski, hosted by SourceForge.net