Understanding C5 architecture1 user found helpful
I've been playing around & using concrete5 for a couple of months now. Just poking around the editor, building a few pages. I even managed to convert Skeleton theme into a quick concrete theme using this great tutorialhttp://documentation.concrete5.org/developers/designing-for-concret...
Previously I have been a Drupal & Wordpress developer and one thing I've found that helps newbies is to understand the most basic element that a CMS is built around.
For instance Drupal is build around nodes (well it was until D8), understanding node_ids is critical, Wordpress most basic element is posts and the post_id.
At the moment I can't get my head around C5's architecture. Is it pages, whats the basic element in the database so when one develops add-ons, custom blocks etc. What am I manipulating or referencing.
Also is C5 Block analogous to a Drupal block.
The docs online are great but don't seem to have the depth I'm looking for. Maybe theres a reference or book I haven't found yet.
Look forwarding to responses and getting stuck into C5 (or unstuck :-))
If you are a capable PHP programmer check out the classes in the /concrete/src directory to see how to interact with the API and how these classes work together.
The most important ones for everyday theme development use are probably: Page, User and Attribute.
Thanks for the heads up, I'll have a look through those classes first.
Also does C5 use the concept of custom content types for say products or a simple customer database. Or do I store meta data in a Attribute type by say creating new keys or ID's?
To create something like a customer database you can either create new User Attributes to track the data or create your own database tables.
Everything within Concrete5 is more or less build on pages. You also have Single Pages (those are programmatically build by your Add-On/Package).
Is it something like this you were searching for?
In Drupal you use the CCK & Views modules.
In Ruby Rails or CodeIgniter you start by defining your models first, then controller, then views.
Working with pages & themes first is counterintuitive to me but thats just my old muscle memory at work.
Maybe I just need to start by building a few sites first in C5 :-)
I wonder why this hasn't been included in the 5.7 documentation?
The 5.7 Docs are a WIP (with some very recent significant progress).
I'm pretty certain once you get your brain wrapped around Concrete5 you will fall in love with it. I believe most devs who have come from Drupal and actually took the time to get acquainted ended up appreciating the elegance and sophistication of Concrete5.