# I tamed the boards! 🤕 Evil laughter

**URL:** https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988
**Category:** Using Concrete / Help
**Created:** [February 9, 2023, 12:32am UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988 "2023-02-09T00:32:38Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![ampersand](https://forums.concretecms.org/user_avatar/forums.concretecms.org/ampersand/32/6245_2.png) [@ampersand](https://forums.concretecms.org/u/ampersand)
#### Post date: [February 9, 2023, 12:32am UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/1 "2023-02-09T00:32:38Z")

</div>

3 days ago, after adding an entry about an important action for animals, my board after regeneration fell out. It crashed and stopped working, period. Error page. Drama.

I set up a bypass - I unhooked the board (in fact, the entire Blog section on which this board is located), and wherever possible, I set up quick redirection of links directly to the article, because there is no turning back here, the QR code with a link to this particular one went to print pages and the collection action for the shelter starts on days.

However, I decided to try to recreate the situation and fix it on the twin test site.  
Then on the other  
and on the third…  
Oh yes, a few hours.  
But we managed to partially put it up and reconfigure the board.  
And you know what I’ll tell you?

I think the devil lives in Portland ;).

While we managed to tame the meanders of how to connect it (board) together after a few hours (of course, on the full version - it doesn’t work at all on the empty one), and it was probably ok, **I was tempted to regenerate.**

**Boards are pure evil.**  
**Such that it can’t be any worse.**

_&_&&^#@@#@#$$ EvIL and lots of F.words

It crashed. Of course.  
Evil laughter.

Therefore, **I repeat my request** from about a month ago in which **I suggested a tutorial [to recreate the content](https://forums.concretecms.org/t/suggestion-and-timid-new-years-request/4778)** - @EvanCooper thought it was worthwhile - so I closed the thread/post as resolved.

> Hi @ampersand - Yeah I think that sounds like a good idea. We will look into it. 👍

Unfortunately, neither on the forum nor during any of the meetings, be it in the Town Hall or during Fridays, this issue has not been raised so far.

Is there a chance we’ll see that using ConcreteCMS is child’s play. **Please do it.**

In my opinion, it’s worth it, you can see on the forum that not only new users have a problem with it.

If there is a possibility to do **a survey** here, it may help in making a decision.

Would it be worthwhile for the Portland team to create a tutorial showing how to recreate a website with the same/similar content after removing the pre-installed content?

Configuration of the blog, Resources, no finesse, just the initial state, so that it works without errors on mobile and desktop. Oh, good practice. Even in episodes.

1. **Helpful** - would be great
2. **Redundant** - everything is already known
3. I have **no opinion**

I cordially invite you to vote and discuss how to improve the efficiency of the configuration of this wonderful CMS.

Regards  
Marcin Przepiorka

---

<div class="post-metadata">

### Author: ![EvanCooper](https://forums.concretecms.org/user_avatar/forums.concretecms.org/evancooper/32/4597_2.png) [@EvanCooper](https://forums.concretecms.org/u/EvanCooper)
#### Post date: [February 9, 2023, 1:26am UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/2 "2023-02-09T01:26:47Z")

</div>

Hi @ampersand - I’m in the process of making the tutorial. We will release it as soon as it’s finished. 🙂

---

<div class="post-metadata">

### Author: ![EvanCooper](https://forums.concretecms.org/user_avatar/forums.concretecms.org/evancooper/32/4597_2.png) [@EvanCooper](https://forums.concretecms.org/u/EvanCooper)
#### Post date: [February 9, 2023, 1:30am UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/3 "2023-02-09T01:30:07Z")

</div>

That said, it sounds like you would recommend I jump to the boards portion, so I can do that!

---

<div class="post-metadata">

### Author: ![ampersand](https://forums.concretecms.org/user_avatar/forums.concretecms.org/ampersand/32/6245_2.png) [@ampersand](https://forums.concretecms.org/u/ampersand)
#### Post date: [February 9, 2023, 10:42pm UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/4 "2023-02-09T22:42:28Z")

</div>

@EvanCooper that looks like a good plan. Especially looking at the recent display of bugs with boards and blogs by many users, I think it’s a good idea. Please, do it.

---

<div class="post-metadata">

### Author: ![mnakalay](https://forums.concretecms.org/user_avatar/forums.concretecms.org/mnakalay/32/3625_2.png) [@mnakalay](https://forums.concretecms.org/u/mnakalay)
#### Post date: [February 10, 2023, 9:27am UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/5 "2023-02-10T09:27:00Z")

</div>

I absolutely upvote this 💯  
I just helped someone with a fix because regeneration was failing due to dates and timezones not in the right format

> [@Getting error when regenerating board instance](https://forums.concretecms.org/t/getting-error-when-regenerating-board-instance/4953/8):
>
> That’s an excellent question. It seems there is a problem with how dates and timezones were saved for your posts, I’m not sure why. What I would suggest, if you don’t have too many posts, is to go through each and save them again. Without any modification, just a save. Then try to regenerate the boards without the fixes we implemented and see if it works. There’s also a chance the issue is with some of the posts and not all. If that doesn’t solve the problem then you can either hire someone …

---

<div class="post-metadata">

### Author: ![ampersand](https://forums.concretecms.org/user_avatar/forums.concretecms.org/ampersand/32/6245_2.png) [@ampersand](https://forums.concretecms.org/u/ampersand)
#### Post date: [June 30, 2023, 11:25pm UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/6 "2023-06-30T23:25:27Z")

</div>

> [@EvanCooper](#):
>
> Hi @ampersand - I’m in the process of making the tutorial. We will release it as soon as it’s finished. 🙂

@EvanCooper How does the work with the tutorial look like - when can we see something?

---

<div class="post-metadata">

### Author: ![ampersand](https://forums.concretecms.org/user_avatar/forums.concretecms.org/ampersand/32/6245_2.png) [@ampersand](https://forums.concretecms.org/u/ampersand)
#### Post date: [December 30, 2023, 2:57am UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/7 "2023-12-30T02:57:22Z")

</div>

@EvanCooper it was in July - did you manage to get a handle on this issue?

---

<div class="post-metadata">

### Author: ![jasteele12](https://forums.concretecms.org/user_avatar/forums.concretecms.org/jasteele12/32/3878_2.png) [@jasteele12](https://forums.concretecms.org/u/jasteele12)
#### Post date: [January 1, 2024, 6:57pm UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/8 "2024-01-01T18:57:45Z")

</div>

@EvanCooper If this tutorial happened, I totally missed it (bump)

---

<div class="post-metadata">

### Author: ![JohntheFish](https://forums.concretecms.org/user_avatar/forums.concretecms.org/johnthefish/32/3767_2.png) [@JohntheFish](https://forums.concretecms.org/u/JohntheFish)
#### Post date: [January 1, 2024, 7:51pm UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/9 "2024-01-01T19:51:57Z")

</div>

There was a Friday on it. [https://www.youtube.com/watch?v=j-\_BeGmQuOo](https://www.youtube.com/watch?v=j-_BeGmQuOo)

Also, there could be many changes happening with boards, see

> <https://github.com/concretecms/concretecms/issues/11407>
>
> \### Description
> 
> \## Board Template Updates
> 
> Currently, boards have a mandato…ry Board template. In truth, we don't even always use these templates. For example, in one site our template is simply outputting 6 slots with no markup one right after another. This is silly. We should make these optional, with the only truly required thing in a template being a number of slots.
> 
> \## Dynamic Slots
> But what about that? Hard-coding the number of slots for a Board was a stopgap solution in order to get to a shipping 1.0 product. Boards should be able to have the number of slots defined, but also changeable based on the instance of the board.
> 
> \## Board Slot Templates
> 
> Next up, we have the concept of Board slots. In Atomik, Board slot templates include the following
> 
> \* Blog Card
> \* Blog Image Left
> \* Blog Image Right
> \* Blog Three Up
> \* Blog Two Up
> 
> In another site here are the ones we're using.
> \* Two Up White Blue
> \* Two Up White Orange
> \* Two Up Blue White
> \* Two Up Gray White
> 
> etc... 
> 
> These names probably sound familiar - check out the containers defined in that same site:
> 
> \* Two Up White Blue
> \* Two Up White Orange
> \* Two Up Blue White
> \* Two Up Gray White
> 
> etc... 
> 
> Yes, there are other containers and templates defined here, but the core of the issue remains: there is very little difference between container templates and board slot templates. And when you actually look at the content contained within these it becomes even more egregious. Check out these board slot templates:
> 
> \* Image Left Stripe
> \* Image Right Stripe
> 
> The contents of these are the same:
> 
> \<section\>
> \<?php
> $slot-\>display(1);
> ?\>
> \</section\>
> 
> These template files exist only due to the rules being used to govern intelligent content placement within boards. Once these are all configured the results ensure that boards look nice – but at the moment such a setup is actively developer-hostile: developers have to create lots of stub templates and route content types between them in order to get things to work nicely. It's no wonder that few have tried.
> 
> \### The Solution: Board Slot Templates become Containers
> 
> It's time to do what we should have done in the beginning but just didn't have enough of a system to pull off: we need to unify board slot templates and containers. Instead of board slot templates being inserted into board slots, containers will be inserted into the slots, and blocks will be placed into those containers. As stated before, we've basically rebuilt Concrete CMS inside boards as a custom system that has none of the benefits and reusability of Concrete blocks outside of Boards. We need to change that.
> 
> Beyond explaining the system to developers and some abstract concept of "cleaner code", why else would we do this? Simply put, by unifying these systems we're going to be able to integrate board contents into the larger Concrete ecosystem in some compelling ways. Read on for more information.
> 
> There may be some metadata about containers that we need to track in order to make this work, but thankfully we can add this onto containers as a progressive enhancement. In order for a container to be available in a board, it needs to have a container controller. This enables the container to specify how many slots it has, etc... By making this optional we'll enable containers to be backward compatible, while updating the ones available in Atomik and Oxford Shirt to support this new paradigm.
> 
> \## Content Slots
> 
> Once content makes its way into a board's slot, we need to change how it's stored. Currently there's a custom table that joins board instance slots to blocks. These blocks are all instances of the special core\_board\_slot block type, which joins content objects to various summary templates. It's needlessly complicated. Instead the blocks that these instance slots join to will simply be instances of the core\_container block type. Inside these containers will be real Concrete blocks.
> 
> \## Summary Block in the Core
> 
> In order to make this work, we will need to create an instance of the Summary block that we added to EW2 in the core. This should be done anyway - summary templares are a cool feature but without a block that exposes them they're only useful in boards - and if we want to treat board content like first class Concrete content we'll need to port this block over. 
> 
> \### Example
> 
> \_No response\_

> [@A little bit disappointed with boards](https://forums.concretecms.org/t/a-little-bit-disappointed-with-boards/1372/5):
>
> Looks like this will be addressed in a subsequent v9 or v10.

> <https://github.com/concretecms/concretecms/issues/11408>
>
> \### Description
> 
> Currently, Boards are automatically generated from a dynamic da…ta pool. You specify criteria for how pages or calendar events are added into the data pool, and periodically the pool is refreshed/added to, and boards are regenerated. There is no ability to add a specific page or event into the data pool, in order to generate a board. They are purely for content aggregation, at least until the board is created (at which point you \_can\_ put specific pieces of content into a specific slot.)
> 
> \## Collections
> 
> Let's add the concept of Collections to Concrete CMS (please set aside the fact that Collection is an early name for Page in Concrete CMS, so you may see the method \`getcollectionID()\` and the variable \`Collection\` strewn about existing code.) In this concept, Collections are bundles of pages, calendar events or other objects that users find useful. New themes will be created that add functionality for adding these objects into collections, like bookmarks, useful links, etc...
> 
> This is very similar to BrandCentral, which has its own concept of Collections and allows resources to be grouped into them.
> 
> Behind the scenes, Collection objects will be tracked against users. Additionally, Boards will be created for these collections, and objects placed into the collections will be placed manually into the Boards data pool.
> 
> \## Rendering Boards
> 
> Upon first visit to the view layer of a collection, a board will be generated and rendered for the objects in its data pool. The result? Collections of useful objects will automatically generate attractive, useful boards. These boards are personal to the user who created them, but can be made public and shareable. Boards will have private, non-guessable URLs, similar to Google Docs that are shareable with a link.
> 
> Users who build these boards from a collection may "re-roll" or "regenerate" the board by clicking a button next to the share, edit and delete button. Adding new objects or updating collections to remove objects will regenerate the board. 
> 
> \### Example
> 
> \_No response\_

> <https://github.com/concretecms/concretecms/pull/11700>
>
> Small improvements after first production ready use of boards
> 
> \--- Not related… to PR but to Topic
> 
> @aembler Who is responsible for the concept of this boards. I would like to add my experience to the development docs, but i am not sure i got it right. We did summary templates with categories for
> \* Blog with author image
> \* News with dates
> \* Products with product informations
> Now all of this are pages and all of them have all of this properties (author, dates, description). But depending on the context (Blog, News, Product) one of the property is more important and cause of them visible in the teaser design.
> So we did this by creating three custom datasource which all extend the page. But they have an own icon and an extra filter (datasource handler = summary template category). Does this make sense and should we describe this or was there a other idea for this?
> We did this cause otherwise the pemutation of boards gives you also every Blog Teaser with Designs for News, Products and so on for the others (News, Products). This makes the GUI exploding.
> 
> Here how we filtered and extended Page:
> 
> \`\`\`
> /\*\*
> \* The page object in Concrete encapsulates all the functionality used by a typical page and their contents including blocks, page metadata, page permissions.
> \*/
> class PagePublication extends Page
> {
> /\*\*
> \* {@inheritdoc}
> \*
> \* @see \\Concrete\\Core\\Summary\\Template\\Category\\CategoryMemberInterface::getSummaryCategoryHandle()
> \*/
> public function getSummaryCategoryHandle(): string
> {
> return 'page\_publication';
> }
> 
> public function getSummaryTemplates(): array
> {
> $app = Application::getFacadeApplication();
> $em = $app-\>make(EntityManagerInterface::class);
> $filter = $app-\>make(Filterer::class);
> $driverCollection = $app-\>make(\\Concrete\\Core\\Summary\\Data\\Extractor\\Driver\\DriverManager::class);
> $driverCollection = $driverCollection-\>getDriverCollection($this);
> if ($driverCollection) {
> $data = $driverCollection-\>extractData($this);
> $templates = $filter-\>getTemplates($this-\>getSummaryCategoryHandle(), $data);
> $items = $em-\>getRepository(\\Concrete\\Core\\Entity\\Page\\Summary\\PageTemplate::class)
> -\>findByCID($this-\>getCollectionID());
> }
> $pageTemplates = \[\];
> foreach ($items as $item) {
> $summaryTemplate = $item-\>getTemplate();
> if (in\_array($summaryTemplate, $templates)) {
> $pageTemplates\[\] = $item;
> }
> }
> return $pageTemplates;
> }
> }
> \`\`\`

---

<div class="post-metadata">

### Author: ![jasteele12](https://forums.concretecms.org/user_avatar/forums.concretecms.org/jasteele12/32/3878_2.png) [@jasteele12](https://forums.concretecms.org/u/jasteele12)
#### Post date: [February 26, 2024, 2:53pm UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/10 "2024-02-26T14:53:22Z")

</div>

I think a portion of my brain exploded. Guess we’ll see what comes out on the other side of v10.

In the meantime, I’ll just use [Mobirise](https://mobirise.com/) to design layouts and paste the code into views 🤓

---

<div class="post-metadata">

### Author: ![anon41318811](https://forums.concretecms.org/letter_avatar_proxy/v4/letter/a/e9a140/32.png) [@anon41318811](https://forums.concretecms.org/u/anon41318811)
#### Post date: [February 27, 2024, 8:52am UTC](https://forums.concretecms.org/t/i-tamed-the-boards-evil-laughter/4988/11 "2024-02-27T08:52:03Z")

</div>

I agree, a lot of taming in Concretecms.

We love Mobirise a lot for prototyping Concrete sites.

Wish for version 10:  
Have an easy, slimmed down version of Concretecms for prototyping and folks who just want a simple brochure website, without taming a complex system, - all others can use the proffesional version.

The Dev team should look at that.

Cheers  
Marco
