Blocks, Types versus Instances, and Fetching Instances

Permalink
I feel like I must be missing something here. A lot of blocks are generic types, like an image or some HTML. But an instance of a block that appears in one place should be able to appear in another, right? I can find nothing in the menus or documentation that would seem to allow me to call the same instance of a block to two different pages.

Let's say I'm working with a number of publications, like books. I make a block type called book—its a generic block with book info like title, author, published date, etc. I want to call a specific book into the home page in one area, the sidebar of another page, and I would like the book to appear in a grid on a catalog page. I don't have to create the block on all three pages and re-enter the book information do I? How do I add a specific block instance on a page—not just a block type?

If I'm being a dunce and missing something, please just post the URL to the requisite documentation. I'll read it if I can find it, but so far, I've seen no mention of this.

russellbits
 
enlil replied on at Permalink Reply
enlil
What version of c5 are you using? If it's a modern version what you want to do is use Stacks. You could create one stack with the page list in it and then add that stack to each page or in page type defaults. Problem solved.
russellbits replied on at Permalink Reply
russellbits
I'm using 5.6.3.1 and you're absolutely right about using stacks for navigation like you mention. However, stacks don't address my problem quite as well when it comes to specific block content.

For instance, I create a specific instance of a block (like a book from my example above) and at some point I'm working on the site and I delete the block, by accident or whatever. I can go and re-create the block, but there's still a block in my DB with all that information. There's no way to call that back in a new instance of the block type?

Another difficulty is that this is going to results in a LOT of stacks for my users to sort through—every conference would be its own stack, every publication, every reference—at least with blocks they're categorized by type. Stacks aren't (from what I can tell)
JohntheFish replied on at Permalink Reply
JohntheFish
I think this is another case where you need to think of pages as your data objects. Create a page for each book in the Main area of the page. If you don't want those pages to appear as actual pages, in the navigation or search, use attributes to hide them.

Use page attributes to classify the books pages.

Then use page list blocks to pull various subsets of the books onto the pages that need to show them.

If you just want one book pulled to a page, you can use the Global Areas block (addon by @mnkras, not the stack-like global page area ) or my Universal Content Puller block to pull a main area from a book page into another page.

http://www.concrete5.org/marketplace/addons/global-areas/...
http://www.concrete5.org/marketplace/addons/universal-content-pulle...