Wow, I just remembered I still have a blog! And that I haven’t posted since June 17th! Time for some updates…
Me
I’ve graduated from Dutch ’secondary school’ / ‘high school’ and I’ll be studying computer science in September. I also went for a 8 days summer vacation with friends to Sunny Beach, Bulgaria. Great stuff. My MacBook Pro is doing great aswell and I might buy an iPhone 4 in September. On to the projects…
Tunar PHP framework
Jordan and me always wanted to write a decent framework in PHP, but it never really worked out between us two because of conflicts over system design. So, I started on my own, ‘Tunar-niggus’. Its a very barebony MVC framework with the usual View and Controller stuff, URL routing, input validation, but I skipped the ‘Model’ part in MVC. I never liked the bloated autoquery (SQL database) generators in framework such as CakePHP, so I didn’t went with that approach. However, UPDATE and INSERT queries are built on the fly (SQLDatabase->update()) and this works great. It also returns generated IDs for easy insertion of records. You still have to write your own SELECT queries, but I’ve always liked the freedom this gave you into using JOINs or functions such as MAX() etc. It also has caching wrappers for APC or a custom, lastresort, filecache. (serialize() / unserialize() approach)
Forum software
I’m developing this framework at the same time as I’m developing forum software from scratch, dubbed Tunar Discussion Environment (TDE for short). Forum software has always been challenging me. There are alot of solutions out of there, but there’s always room for improving and… unique features!
“You shouldn’t write your own forum software, there are timetested solutions available on the net!”
Well, yes, there sure are. You have vBulletin, Invision Power Board and even free products such as phpBB and MyBB. Still, they are not what I am looking for. And more important, I love designing, creating and testing new stuff, so why not develop my own software? A great example of how this can work out is shown at FOK!forum, the largest Dutch forum and one of the largest forums on the net. It runs on custom, nowhere-else-used forum software called Replique, written in PHP aswell. It is closed source and developed by a Dutch guy, who also uses it for his blog. Replique is vastly different from other forum systems, in features, namings, usage and all that stuff. And Replique is what inspired me to develop my own forum software, meaning I’m also incorporating a few of it’s ‘unique features’.
On to the progress…
- Breadcrumbing, can be hyperlinks (like index > [forumname] -> [topicname])
- Event codes, all notification messages have event/error codes like TDE_FORUMNOTFOUND and TDE_SESSION_EXPIRED, show up with their numerical representation to users
- Sessions, users can login and logout to their account, sessions are stored in the database and can be logged out remotely. Users can also attach a label/location to their sessions, such as ‘laptop’, ‘work’, etc. Sessions can optionally be locked to IPs, so they will invalidate automatically when used from a different IP than the address the session was started with
- User registration with email activation link
- Reset password with email reset link
- Forums and other frequently requested objects are cached for a while to eliminate the majority of the database queries
- Forum index with categories, forums, subforums, last posttime, amount of topics/posts etc
- Browse subforums + topics in forum, showing with title, poster, posticon, locked topics, stickied topics, etc
- Create topics in forums where you have posting rights
- Browsing topics and posting replies, postcount increments if the forum is configured this way (ability to have ‘Spamzilla’ forums)
- Topics and post have posticons, and moderators can set a ‘moderation note’ for a topic, like ‘Don’t post Facebook links to the people that you might know from Harry’s post, it will lead to a ban!’
- Basic BBcode implementation ([b], [i], [img], [url], [s], [center], etc), to be expanded with smilies and things such [quote]
- Edit your posts and calculate procentual difference between text
- View posthistory and profiles of users
- Session manager so users can see their open sessions, reset/delete/log them out, etc
In Tunar, application/business logic is completely separated from the presentation (HTML for example). So, Tunar is easy to skin/layout/template/theme. The default layout is, to complete my adoration for Replique… the default layout of FOK!forum, it’s dubbed ‘baggerlayout’ and soon it will be gone due to FOK! switching to a new type of layout. So, I’m having Bart replicate their current baggerlayout as much as possible. On first sight, Tunar Discussion Environment looks alot like a FOK! clone, hahaha.
Screenshots
Description below the image. If you can’t see the full image (I need a new WordPress theme…), then rightclick -> View Image, or whatever your browser wants you to do. ‘Iceberg’ is the name of my testing forum by the way.

Database

Forum index, categories and their forums

Login

Registration of new user

Browsing a forum

Browsing a topic (no real layout yet)

Adding a reply, also no real layout yet
Remember, these are just screenies of the current state in the current FOK! baggerlayout replica. It’s about the logic behind it…
Code
Three snippets of current code. The URL routing system works like: http://site.com/user/profile/1337… will route to a call to UserController::profile(1337) No need to write URL routing mappings (but I might make something to override this).
Plans
Tunar-niggus, the PHP framework, will probably be released under the GPL when it’s more mature. The forum software will be either used privately or sold in some way.
Wow, long post. Enjoy & leave your thoughts!








