No one person can be attributed to getting the Board to where it is today. Following the History of the Board, there have been four Web Masters and there will be more down the line. Each has brought their own flavor and expertise to make the Board something that so many people enjoy, a different direction that has helped the Board to grow through the years. Countless hours have been poured into this beast of a project, and we have all been pleased with what we have contributed.
This said, you can imagine how protective we are of our code. As such, it is against Web Master policy (which we happen to regulate ourselves) to provide this code to others. There are several reasons:
And now you know. Aside from this, a gzipped tar of our entire system is well over half a gigabyte. Granted, that's more than code, but I wanted to make it sound impressive.
In all seriousness, you are probably more interested in at least knowing how the Board works so that you can use some of the same ideas and concepts in your own website. With this thought in mind, the remainder of this article will be devoted to what the Board does to run on a daily basis.
The Board runs on PHP 4.4.1 with MySQL v4.1. The server is Linux-based, providing us with applications like crontab and Perl. By the end of Board 4.0's life we had upgraded the server a few times and eventually ran using PHP 5.2.4 with MySQL 5.0.
When you use the Board, there is a single page that manages everything: index.php . Aside from a couple of pages, security, authentication, themeing, and everything else is done through this one page.
Using the "area" variable in the query string, the PHP code will then proceed to determine what datasource should be pulled from. First our database is checked to see if there is content associated with the given area. This gives our Editors the ability to create pages on the fly which are stored in the database rather than in a flatfile. If an entry does not exist in the database, a filename based on the area is searched for in our filesystem and used. If still nothing exists, the Board gives up and gives an error message to the users. Because of the security issues with dynamically loading files based on user input, each file is self-contained to only operate when it is properly called within the code. This means that even if someone figured out the filename for managing users, loading it will only procure a blank, white page.
Although the user only ever sees a single page, they can still bookmark specific areas by retaining the query string after the page in the URL. It also means that all code for your site is relative to where this one file resides, making it easier to do tasks like load library files.If there is another area of the Board that you would like to learn more about, please send in a question and we will do what we can to add to this article.