Over the past two weeks I have been working on making several modifications to the punbb source. I decided to start with punbb because its very lightweight and very minimalistic, but I knew that my modifications would seriously alter the punbb source/structure (yes I realize that I wont be able to easily upgrade -- but I also dont really need many of the features in 1.3). Id like to know if I still need to include the copyright notices in my files and how to decide on where they need to be placed. I havent decided if I will release this to the public. The answers I receive will help better decide that. Obviously, I dont want to break any laws, but considering my mods below, Im not sure how to tackle it. The meat of what I have is still very similar, but the app structure and request handling have dramatically changed. It works similarly, but it has evolved into a very different beast.
mods include:
- moving all code out of the web root -- using mod_rewrite to push all requests (except images and css) through index.php (completely unrelated to index.php in a stock punbb release)
- elimination of all get variables -- clean urls all around
-- (/viewforum.php?id=1 => /view-forum/id/1 or /[forum-name])
-- (/viewtopic.php?id=23&p=3 => /view-topic/id/23/p/3 or /[forum-name]/[topic-title]/p/3)
-- (/profile.php?id=1§ion=essentials => /profile/id/1/section/essentials)
-- also keeps track of thread title changes -- old urls containing the old thread title will still load the correct thread
- eliminated cross-db-compatible switches (im only going to be using mysql)
- converted source to an OO structure (php5) (for instance profile.php was split into 17 objects (2 are abstracts, 1 per section and 1 per action), moderate.php was split into 7 (again, 1 per action) and so on) -- on avg it eliminates 1/2-1/3 of the code that gets parsed per request
- developed a simple template engine so that my designers arent tempted to screw up any php when editing html -- no html in any of the objects
- single code base for running multiple forums (separate dbs) -- forum and options are loaded based on the base url -- allows for different admins, mods, groups, etc per forum, but same users
- using a shared session instead of cookies to keep track of logged in users. this allows me to provide a single sign on to all of the forums.
- login based on email address -- allows users to have multiple usernames -- currently only admin can hand out additional usernames
- added a registry (similar to Zend Framework) for holding reused objects
Id love to show this off, but I just finished implementing the template engine, and it needs some more testing. Plus, my home connection doesnt have enough bandwidth to handle tons of requests. I would also like to resolve my concerns about copyright/license before I expose this to people outside of my dev team. FYI, for now I am planning to keep the link and the copyright notice at the bottom of the page, just slightly modified, so that I am still supporting punbb, because what I started with is well written and was easily modified.