What is a Block?
A block is some content or functionality you can edit from within a page in concrete5. Think of legos, these are the actual building blocks that go together to make your site. There are many types of blocks. Your concrete5 install comes with about a dozen basic blocks including the Content block, Survey, Guestbook, Slideshow, etc. You can find more blocks, both free and commercially supported in our marketplace.
How can I move Blocks around the page?
How do Blocks go together to make a site?
Your site is a collection of pages arranged in a hierarchy called the site tree. Each page in your site is associated with a page type and theme. That combination of page type & theme defines parts of the page which can have editable content or functionality. These are called block areas. Inside any given block area, you may have many blocks.
When you add a specific type of block to a specific block area, you have created an instance of that block.
Permissions can be tied to pages, block areas, or even specific instances of a block. It is entirely possible to have a group of site editors who can edit some parts of the page, but not everything.
Blocks do not generally span more than one page. With a few exceptions, blocks generally do or display something that exists within a specific page on your site. For example, creating a searchable database of recipes should include some new page types, some custom attributes, and perhaps a block or two. Blocks are as granular as concrete5 gets while providing editing abilities, so you should be thinking small and reusable.
What's in a Block?
Blocks have several parts, losely following a MVC architecture.
Every block has some Model to it. It's likely the block is storing some data in the database in a table that it requires.
Every block has a basic view, custom templates allow the site editor to choose between multiple views.
Every block has a controller that includes an edit interface for the block which the site owner sees after putting a page in edit mode and then choosing a specific block instance to edit.