In the last few months I have really spammed my own personal blog about one of my largest projects - BalfBlog. As you probably noticed I have also been updating my personal blog with the latest changes by an automated update (builds automatically and is deployed with a cron job).
In the latest update to BalfBlog, I aim to move back to a blog dedicated to it as more and more changes are brought to it. In fact, the blog I'm dedicating to it is actually the exact subsite that is being used for live development. You are welcome to visit this testing site to see the changes as they happen but don't expect a fancy front-end, I've got no time to focus on those sorts of things.
You can find the live build here:
http://balfblog.projects.jamiebalfour.scot/
It's important to note that although BalfBlog 2.4 does not require all of HTML5, it does require a browser with at least half-decent CSS support, so this excludes Internet Explorer 8.
Today I am happy to announce that every feature has been added to version 2.4 of BalfBlog. Yep, that's right. It's now fully functioning.
But please note, this is not the end of 2.4, in fact it's just the basics of it. The next things that need to be done are mostly refactoring code and adding validation systems in as there is currently none of that.
Most of the features of 2.4 are now finished, some of them need furnishing and some of them are completely new. The newest feature added just yesterday and finished today is the build in 'View content' option, which allows you to view a post from within the dashboard, rather than going to the front end to view it. This will have a special purpose very soon.
Templating is still to be improved and moving from constants to a data object is still to be implemented. I'm still well on schedule for the end of July for the release of 2.4.
I'm so impressed by the power and features that version 2.4 (Ben Lawers) brings to the table compared with version 2.3 (Schiehallion) just under a month ago. The whole engine has been redesigned to take advantage of the object oriented design that came to BalfBlog when it went by the name of the JBlogs. The redesign makes BalfBlog easier to develop at a very small cost to performance. It makes other things such as dealing with Ajax so simple that it's not even worth considering it a separate part of the system. It integrates so much very seamlessly that you wouldn't know it's changed, that is unless you are a developer.
2.3 didn't care about developers the way that 2.4 does. Everything is developed in the most object oriented way it can be. Inheritance has become a staple feature of BalfBlog with the latest release and inclusion is no longer the only way to get run things (this doesn't need to make sense to you, but developers who fiddle with BalfBlog will understand).
A new templating system brings so much in terms of performance and easy of use. It also moves even further from the limitations on the content that were the key aim that BalfBlog aims to improve. Emails recently got put into the standard templating system, which is set for a complete renewal in 2.5 (I aim to improve the efficiency considerably by writing a new templating language).
Since I've now got full approval to include FileManager in BalfBlog, 2.4 will now include it by default and there will be no option to switch it off. However, as this is a new addition, it may still be limited in features until I've got it perfected.
So BalfBlog 2.4 is nearly ready for a late July release.
However, several features are still to be added as absolute essentials.
- All the way in version 2.4, the delete user functionality is not ideal. This really needs to be fixed. I will work on this again tonight and tomorrow and improve it.
- Ajax functionality stopped working for the front end when I updated the system to version 2.4.
- Themes have been a much requested feature but will not be a focus of 2.4, so might not make it into this release.
- CKEditor is not confirmed to work any longer. I will work on fixing this for the release date, but may remove it in the meantime.
- Users are supposed to be able to store notes, this has been underway for the last few days and I will be including this in the release.
- The whole data file needs a complete redesign now that I am using an object oriented methodology for the back end.
- Finally, I want to have an introduction help page to help new users understand BalfBlog's back end.
These features will soon appear in the changelog, so keep an eye on it and soon enough you'll be able to use them too.
For the last few days I have been looking at using something called FileManager in BalfBlog for managing users' files. The great news is, and I have great pleasure in saying this, but FileManager will now be bundled with BalfBlog 2.4.
After an requesting free bundling with BalfBlog 2.4 by asking the creator, I am pleased to say that it resulted in a very satisfactory result:
I'm very happy to announce that BalfBlog 2.4 will now be bundled with FileManager!
Here's a portion of transcript between us:
I love FileManager and I am interested in whether you would permit me to bundle it as part of an open source CMS project which I plan to share? If not, no worries.
Cheers,
Jamie Balfour
This resulted in a very good result for all BalfBlog users:
Ok no problem
So I am very happy to announce that BalfBlog will now be bundled with the well built, well designed and possibly the best file manager for any web project known as FileManager!
BalfBlog 2.4 is designed to do a lot. In this very short post I will outline the new design of the BalfBlog core and how it will make BalfBlog more efficient than before.
Architecture
As someone who cares about organisation, BalfBlog 2.3 and before always upset me. Currently version 2.4 minimises the issue of organisation by organising files in an MVC pattern with a single dashboard controller than routes requests easily. Everything is passed through the main controller. The way that the new version has been designed also takes advantage of the object oriented features of PHP to make the architecture even more seamless. By the release of 2.4, the architecture should be perfect.
Features
As well as organisation, all features have been integrated into the dashboard. The AJAX requests pages have now also been seamlessly integrated to make sure that if AJAX isn't supported by the browser (for instance if JavaScript is not enabled, why on earth would you disable JS?!) then it has a PHP fallback.
New features have also been added in terms of the way posts are produced, information is retrieved and the way in which you interact with the content management system.
Performance
Performance has seen a slight increase since 2.3 but I cannot be 100% about this because I also have changed to a VPS since version 2.3, so I might see the increase in performance because of this.
The next big change to BalfBlog is designed to make it even more powerful whilst extending it's MVC pattern to be even further refined.
Actions can now performed very easily using links which store references to each individual action and it's corresponding view. The controller then decides whether or not to access the view or model. BalfBlog is still incredibly lightweight and fast, and the new query engine makes it even faster to retrieve results from the past.
In the front end, Ajax has been removed from all individual modules and is now a system wide option if it is supported (it should be since BalfBlog expects your browser to be at least a bit modern).
Since I created this post, a lot of stuff has been fixed and is ready for release. I will hold out until the end of July for 2.4 however.
I rushed BalfBlog 2.3 out a few weeks ago and realised the installer which was made on the day of release was just not perfected enough. In the next few weeks, I intend to release BalfBlog 2.3.
I'm also astonished to say that it's changed internal a huge amount. 2.4 and 2.5 aim to make the system more powerful, but in terms of features, since I first released 2.3, it has come a long way. The interface has been modified to make it more flexible on mobile and desktop, it now features glyphs on the options, a new help feature, a more powerful API and much more Ajax support. The UI focuses more on a blue look, something taken from my own website but has become a staple part of the BalfBlog interface.
2.3 will also be the last version to include procedural modules. In 2.4 I aim to move all of these modules to a more object-oriented design, one that will make the system easier to maintain. As well as that, I've cut out several old JBlogs methods that were being used for very little purpose. For starters, there is no longer the GetPostsForUser or GetXPosts functions, both of these have been solidified by the single GetPosts method, which now accepts an associative map of parameters, these will be documented in due course.
Security has been improved as part of the object-oriented design, so it's even easier to protect your dashboard.
2.4 will focus on finishing off the object-oriented features, adding the updater and on validation and sanitisation of data. Either version 2.4 or 2.5 will focus on the addition of a plugin system. The log entries that are stored will also soon be improved because this feature was an original JBlogs feature from 2014 and hasn't seen any updates since it started. 2.4 will also focus on the integrated messaging system that I've spoken about for a while. Also, multiple categories are also coming. So you can easily categorise posts in two multiple categories. I'm also thinking about adding my own styled custom dialogs rather than using the basic JavaScript alert popups that I use at the moment (and funnily enough I have written my own one already, just not quite got round to putting it into BalfBlog).
For those who are interested as well, the focus on BalfBlog has detracted from BalfBar (and the rest of my Web Independently Styled Project) and ZPE. Once I've properly launched BalfBlog 2.3 I will focus on these again for a bit, so no worries. I plan to redo the ZPE page on my website, breaking it down into a smaller documentation on each individual feature. Also, I'm very happy to say that ZPE has been downloaded 5,000+ times as of April 2017! That's amazing!
If you are interested in downloading 2.3 please get in touch or wait until the middle of May for the official release! :)
I'm starting to produce a new version of BalfBlog each month, similar to how ZPE works.
This will allow me to add new features every month that make huge changes to the way you can use BalfBlog.
Here are a list of new features set for the middle of May:
- New custom alert boxes
- Validation on forms (something I have wanted to have for a while but as I've rebuilt it, everything has changed so much)
- CSS, JavaScript and PHP tidy up
- A central database query generator
- A tidy up of the IA of the system
- User preferences
- All Ajax posting will also have an equivalent non-Ajax version and vice-versa.
A huge change has recently made BalfBlog even more object oriented, now the whole core of the system is being divided up into smaller classes, all of which are included appropriately when needed. This makes it easier to develop in BalfBlog.
BalfBlog needs to maintain its focus and not get lost the way that some other CMSes have. The focus must be on getting it to the level where it allows you to produce articles and blog effectively and not stray from that. Plugins will soon be available to improve features but not detract from the original aim.
We are here now! Version 2.3 of BalfBlog will officially be launched today, and more importantly hosted on a website other than my own!
That's right! BalfBlog will now be hosted on a website that's not related to me!
In a just in time way, I managed to complete the installer for 2.3 just this morning which makes a huge difference to the way that BalfBlog is installed. 2.3 also focuses on adding templating back into BalfBlog, which makes it so easy to make posts fit into your website.
With 2.4, BalfBlog will hopefully get a new, proper name and an updater that will update all files automatically.