Making ZenMagick admin a first class citicen
One of the things I was looking really forward is currently happening: the ZenMagick admin pages are morphing into a real separate application on top of the ZenMagick MVC code.
Most of the code is shared with the storefront project, which, in turn, is becoming more and more of a real application too!
However, the real difference is that now the admin pages work without zen-cart’s application_top.php! In fact, the only zen-cart files used are (in that order): configure.php, filenames.php and database_tables.php.
I have to admin that this is one of the best things I’ve done within the ZenMagick project for a long long time. It’s great to see all the different pieces suddenly working together, exactly the way it has been planned all along.
Of course, not everything worked out-of-the-box, but expecting that would have been just a bit too much.
Along the way there have been numerous improvements to the MVC code itself, in particular to the areas that haven’t had any real usage so far. And all the things customizable worked like a treat, so while most code is shared between admin and storefront, the things that make each unique have unique implementations.
I am not saying all is done, but looking at my tracking page for this job there isn’t a lot left either
and all the fundamental issues have been address as far as I can see.
Some of the more fun bits included:
- Implement a db session handler compatible with the current zencart admin code
- An authorization handler that supports roles (this does work, however there isn’t any infrastructure (read: table) or UI to manage that)
- Getting the session code to work for real
- Finding out how much zencart code is actually still used deep within the codebase (at least for the admin side)
- Seeing that a (practically) independent app can make use of the ZenMagick API
- Implement things that were still missing in the MVC code. Some could have been done earlier, but without a real use case it’s hard to get that done and to get it right at the same time.
One of the things I might have to do now, though, is to go through all sources and come up with some better package names that reflect the new order. Also, I might re-think the idea of splitting off the MVC code into a separate project. Perhaps it’s not worth it, but it is really independent code, so it might be worthwhile.
Stay tuned…
