Tunar + Tunar Discussion Environment

Wow, I just remembered I still have a blog! And that I haven’t posted since June 17th! Time for some updates… :D

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. :P

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).

UserController class

TopicController class

ForumController class

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! :)

10 Responses to “Tunar + Tunar Discussion Environment”

  1. Omg! I love that layout! :o

  2. Ricky Menier says:

    First off, congrats on graduating Nils ^_^
    and second, good luck with the projects.
    TDE is looking and sounding pretty nice right now.
    I look forward to seeing it when it’s finished.

  3. Craig White says:

    Nice, forum software is a pretty big thing. Good progress.

  4. Sr.Tetris says:

    My language (PT-BR)

    Parabéns Nillus, Você é um grande programador
    Eu tambem escrevi um forum e fico faltando partes .

    Boa sorte com o Projeto !

  5. Florian says:

    Instead of looking for a new wordpress theme just try a lightbox/fancybox plugin ;)

    By the way: What application do you use under OSX to develop websites?

    • Nils says:

      Yeah Florian I’ll deffo look for that, it’s pretty annoying right now. :P

      I use Eclipse IDE (with PDT, aka PHP Development Tools) for this. Eclipse is cool as it runs on any platform + supports many languages and environments. I use the same Eclipse installation for both my Java and PHP work. :)

  6. Bertigo says:

    It would be awesome if you would use SVN to maintain your code. :-(

  7. Nick says:

    Congrats and good luck Nils. I know it’ll come out well! :D

    Just one thing, I think you should either base the forum script on your framework (when it’s done of course) or do one with your framework after. That way, if your framework and forum script come out good, people will think “Wow, that forum script is pretty nice, and it’s based on Tunar. I should probably try this Tunar”. It could give your framework more popularity.

    1 more thing, where did you get the name “Tunar” from? It reminds me of fish (tuna).

  8. Buildings are expensive and not everyone can buy it. But, home loans are created to support people in such kind of cases.

  9. jklj says:

    heeft u fobba gesloten?
    dan word ik heel erg boos!!!!!!!!!!!!
    ik typ dit samen met 2 anderen.
    als u fobba gesloten heeft krijgt u er probleemen mee

Leave a Response