29 Apr 12
I've been working hard on ClayCMS. Here are some of the changes: new Dashboard Toolbar - the toolbar features action icons for displaying the Dashboard and performing various actions; new Dashboard Message system - a notification system to relay status messages and errors when performing actions, such as adding new items or editing and deleting items; new System message API for sending notifications to the Dashboard Message system; new AJAX form handler for Dashboard items - add/edit/delete items without refreshing the page, supports the Message system, and it's built-in (just use dashForm in your ID attribute to your form and the AJAX handler does the rest); new dashlink CSS class to open items in the Dashboard from anywhere on the site; improved customization - many of the test styles have been moved to style sheets for theme overrides; built-in support for Gravatar.com avatars - register your login email address at Gravatar and it works automatically; and lots of beginnings for other new features.
As you can see, the Dashboard has remained my primary focus. It is the central focal point for site administration and content features, so it is important to have it working as well as possible. I've also started on the User management tools, added lots of settings to be changed in the Site Settings dashboard menu, began the management tools for Privileges and Roles, and fixed lots of bugs along the way. I've had quite a few issues trying to decide how to implement the user profiles, blocks, and the dreaded main menu. With the work on the Dashboard moving into maintenance mode, those will begin to attract more of my focus. I've also started on a Social Tools applications, for support of features from Social Networking sites and a few of my own. Facebook comments and things like that will likely make it into that.
2 Years ago today I watched an amazing young man lose his life. It's something I can never forget. We miss you Rich.
05 Apr 12
I've been working steadily on ClayCMS for a couple of weeks now. The Dashboard is becoming extremely useful and I've made many improvements. ClayCMS is kind of in the middle of stable versions right now, so I will probably wait a few more days or may be a week or so before I update the site here. It's going to be a decent change though when it happens. :)
Hopefully more to come in the near future about clay-project.com and Clay Framework's Alpha 3 release.
22 Mar 12
I've moved a lot of code around and created new repos. Now it's time to settle in a little. I've decided to rename the repo currently named clay-installer on Github, to clay. That should simplify things quite a bit, since clay-installer now includes the clay-framework repo's stable builds. The clay repo will house the latest mature code from different packages. ClayCMS will get it's own repo, for now, named claycms. It will not be the full code, like clay, just the pieces that make up ClayCMS. Over time ClayCMS will be merged into the clay repo, I have yet to decide if I will release a standalone version of ClayCMS. Anyway, this should simplify things and lighten the merge nightmare I have been dealing with.
21 Mar 12
Sculpt is a name that I've used for a few things so far, but it's never stuck. Maybe this time it will.
The concept is a little different from the standard Content Management System, such as ClayCMS. It's one that I've tossed around in my head for a years now, mainly because it's very complex on the code side and very simple on the user side. Let's just roll into it, shall we?
Most CMSs have a structure designed to be built upon, such as modules, applications, plugins, hooks, etc, and they used by developers from the bottom up. You have core functionality and build upon that functionality to create new functionality. The idea behind Sculpt is to have a system that builds upon itself as the developer builds in parallel. It requires a dynamic system of models, views, and controllers to allow a developer to create functionality based on events, instead of writing code.
For instance, if the developer wanted to create a blog, s/he would (from a user interface) describe what the blog needed to work, how it would look, and what it would be called. Sculpt would then use that information to build the blog. Then if the developer wanted to create something else, say a photo gallery, Sculpt would build it, and then offer cross functionality between the blog and photo gallery. So now, you can post images in a blog post, which adds an image to your gallery. Or, you could add an image to the gallery and write a blog about it. The concept is building vertically and horizontally at once, whereas the conventional system builds vertically or horizontally, but not both.
It's been really hard not to branch off into CF 2.0 territory. I see a lot of places the new PHP 5.4 features will be useful and it's driving me crazy not to jump into it yet :) Alas, I know I need to keep CF 1.0 as PHP 5.3+, so that means I have to keep pushing with what I have for now.
I've been doing to long-term maintenance to Clay Framework. I'm trying to stabilize it to a point that will be sustainable for the near future. There won't be a lot of big changes from here out for CF 1.x, mostly just additions and bug fixes. The recent namespace milestone included some structure changes that I'm now trying to catch up to in ClayCMS. I don't want to have to do that again until there is a new major revision closer to CF 2.0. CF 0.9.1 is essentially on GitHub now, I just havent finished the code review so I can tag it.
I'm beginning to shift back toward documentation and reviewing the codebase for comments. I want to have both the documentation and Clay-Project.com aligned so I can do a release as soon as the site is up. That means writing docs and writing new apps to use of the site. I have some exciting ideas for project management apps.
13 Mar 12
I haven't upgraded the site yet, so I missed my scheduled bi-weekly update. I was hoping to have the Blocks app finished in time, but my real life work schedule has cut into my playtime quite a bit.
I'll probably get around to doing the upgrade this week, with or without the Blocks. Most of the changes are on the admin side, so it's not like I have anything special to show off right now anyway.
My goal this week is to have CF 0.9.1 on GitHub, [hopefully] along with compatibility updates to Clay Installer. I would also like to push the ClayCMS core. ClayCMS may not make it, or I may just not push the files to the master repo yet (create an Unstable branch and put a note in the readme file about what is going on).
CF 0.9.1 includes some namespace changes, in both libraries and applications. It's some major changes, so I'm having to review and test the code to make sure everything is correct. I'm also commenting code as I do the review, which is something I've neglected quite a bit in the past.
Note: I've already pushed the namespace changes to the master repo. My goal is to have the code ready to tag as 0.9.1, which is Alpha 2 (see previous post about Clay release schedule).
I've finally figured out how to effectively use eGit in Eclipse with the different repos. It's kind of a pain, but it's better than anything else I've tried. I basically have a local repo I use for development. I have clones of the repos from Github. I use branches in my dev repo to make changes and pull in updates from the various repos. Once I've made a change in the dev repo, I pull it into the clones, verfiy all the changes made it into the clone, then push upstream back to GitHub.
Like I said, it's a pain, but I've had worse. This allows me to keep CF in its own repo, so I can continue development without effecting any of the projects using it. It also allows me to break everything up and tier the repos. I have clay-frame, clay-installer (which will soon include clay-framework), and I'll soon be pushing up claycms (which will include clay-installer, which includes clay-framework). It may seem odd, but it's the only way I can think of to ensure the project meets its goals of providing different component for different project needs.