Somewhere along the line building a blog became the new Hello World. Coding a simple setup from scratch really helps new developers push themselves and figure out a language a little better. It forces you to interface with a database, or work with flat files; date formatting and string manipulations galore. And it’s very easy to build a simple blog. It really is just a text area that saves some data to a database and another page that pulls it out.
But what about a full featured blog? I’m talking comments, categories, tags, a wysiwyg editor coupled with a theme engine to make it all look pretty. Those are a little rarer to come by, and most people just hop straight to WordPress. After all, it’s easier.
Over the weekend I began work on my own blog engine and I will hopefully be transitioning Where My Feet Have Been over to it sometime later this month. I want to force myself to finish it, so I will be porting over before everything is done. So there will be a lot of features implemented and tested before being pushed live. I’m also going to be doing a quick tutorial on the insides of the thing.
The new engine is tentatively nicknamed PHP Blog & Journal or PB&J and I’m hoping that it will provide all the features I need in a blog engine while still being easy to use and skin. The default theme is a minimalist one called Shipyard, and hopefully you’ll get a screenshot soon enough!
Here’s a list of planned features:
- Theme Engine (Mostly done)
- Posts (Being worked on continuously. I have the database set up with the necessities and will be expanding it as I go.
- Comments
- Unlimited Nesting Categories
- Tag with easy Tag Cloud support (it’s really just a count of how many times a tag appears. I’m surprised more blogs don’t do this to cut down on DB queries)
- Static Pages
- Basic Hook System – think Drupal but less stupid
I think one of the things that I REALLY like about it so far is the easy of skinning everything. I’ll post a more detailed overview, but there really is no limit to what you can do. You need a few files (header.php, footer.php, main.php, single.php, sidebar.php, Themename.php) and you can do whatever you want. Want to get all the posts? $blog->getPosts(); Want posts in specific categories? $blog->getPosts(array('cat1','cat2','cat3').
From the administration point of view there really doesn’t need to be much. A way to list posts, categories and tags and a way to edit/create/delete them. And then a way to set global settings, such as the website name.
This is going to be the first major project I’ve undertaken utilizing my GridView and MySqlAdapter classes so I’ll be able to flesh them out and optimize them before re-releasing them. Wish me luck!
Awesome news! can’t wait to see it. Good luck, and just wondering if it will be open source? if not it’s ok
Cheers.
Open source all the way. I don’t believe in restricting the use of my projects.
Sweet news that is. May the force be with in this project my friend and good luck!