Feedback: "Easy mode" with components

The problem:
When you create a website for a client, they usually have zero clue how to work with the editor. They will probably break something on their site while trying to edit some content. Back in the early days, we prevented this by hardcoding templates and letting the user edit only parts we wanted. Some CMSs are even designed this way now. But with full-page visual editors, it’s a problem that components can fix.

Current situation:
I tried components, and for now, you can use them in 2 ways:

  1. Replace some repetitive parts. This is what you designed components for, I assume.
  2. Replace every section in the structure with a component. When the client tries to edit a page, this approach will open ā€œeasy modeā€ for him at first. And this is what I want to achieve for my clients. But there’s a restriction now – you can’t use 1 and 2 together.

The solution:

  1. Allow components to be placed inside other components. For example, I have a section with heading, description, and bunch of speakers. Speakers are repetitive parts that I want to place inside a component. But I also want to move the entire section inside a component to create that ā€œeasy modeā€ for a client, where he can edit only the header and description.
  2. After that step 1, I want client to be able to move, duplicate, and edit speakers inside the ā€œsection componentā€. For now, he can do this only by editing the ā€œsection componentā€, but that means he have to leave that flat ā€œeasy modeā€. So this approach needs another mechanism. Let’s say you can set a new property in a component – ā€œcontainer for componentsā€. You can add bunch of these in root component and set for each of them what kind of components can be placed inside. And then user can’t move, edit, delete, or duplicate the container itself, he can only move, edit, delete or dublicate components inside. I assume this is how it could look in the structure: https://i.imgur.com/bk4QG21.png
  3. Finnaly, step 2 leads us to this. Add a permission setting to restrict some users from editing components. For example, we have a ā€œcontent managerā€ in a team who has a ā€œwriterā€ role on a site and zero skills with page builders. I want him to use Bricks only in ā€œeasy modeā€ – edit only the properties of components, move components inside root components, duplicate them, and edit their properties as well.
  4. New setting - ā€œlocalā€ or ā€œglobalā€ components. Some components shoud be reusable on other pages and some not. Same goes for classes and variables. I think we need an option to chose - do we need this element on other pages or not. And possibility to change this option in the future.

Maybe there’s easier way to achieve everything I just described, but this is how I see ā€œeasy modeā€ possible with components.

3 Likes

did you ever tried the editor role and only giving editing content to a user ?
try it
it works amazing :slight_smile:

I like the idea 1 nestable components might be usefull I agree

@sinanisler I did. It’s not how I imagine ā€œeasy modeā€ would work. If you set ā€œedit contentā€ to Editor role, he can only edit, that’s fine. But he can’t move speakers, he can’t dublicate them to add another one. I could probably fix this with ACF, but then we’re backing off from ā€œfull page editingā€ into ā€œtry to find out how to edit this part of a pageā€ approach again. I don’t like where this is going. For example, we have ā€œprogramā€ page with 4 types of different blocks. Editor should be able to copy-paste them to add new block in program. So I’ll have to use ACF to let editor choose from 4 types of block and set 4 types of fields to fill. That’s a mess imo.

Also, Editor can see full structure of the page inside Bricks. It’s overloaded and there’s a lot of things he doesn’t need to see. But if I could place whole sections into components, then editor would see only important stuff that he should edit / move / dublicate. It’s more like a Concrete5 approach. But with Concrete5 you have to hardcode your theme to set ā€œparts where editor can add widgetsā€. WIth Bricks you don’t have to hardcode anything.

P.S. For everyone who just heard about Concrete5 and started google it - I do not recommend you to use this CMS. It’s very capricious, especially when updating. It broke on me several times with no obvious reasons. You have to be proper developer to actually maintain it.

Hi @HeavyLogic,

thank you for your suggestion! I think your use case is really interesting and it makes sense! But to sum it up, so that I don’t miss anything, all we would need is:

  • Allow to have nested components
  • Add additional permissions, so that we can restrict users from editing a component in certain ways.

That would be it, right? Just so that I can property record it :slight_smile:
Thanks!

1 Like

In my example Editor should be abble to dublicate, move and edit speakers somehow (components inside component): https://i.imgur.com/bk4QG21.png
I described how to make this editable ā€œthe easy wayā€ in first post → the solution → step 2. I think my solution will be hard to implement, so maybe you’ll have better idea.

Here’s another example that we often use on our sites - program: https://i.imgur.com/kqv8wvd.png
I can break this down to components, but ā€œeditor guyā€ cooks the program. He should be able to dublicate, move and edit those components to add more content to the program.

1 Like

Yep, thanks. I got it and recorded it that way :slight_smile: Interesting and unique idea :slight_smile:

3 Likes

I’m also fully in support of this idea - components already have huge potential but being able to nest them and expose only what we need to clients would be a total game changer.

3 Likes

@Matej This is pretty similar to one of my requests made on the idea board. I think the mechanism by which this can be achieved would be analogous to Gutenberg’s InnerBlock. Have an element that becomes an insertion point. At the point of insertion you select which components are allowed for selection. You can then move this insert point element anywhere within the component, have multiple of them, and have them nested. For the editor the insertion point would present a plus button which provides the list of allowed components for insertion.

2 Likes

Did you ever think about using a Custom Post Type and splitting data from the design? Speaker could be a Custom Post type, the client can add and remove speakers without the chance of breaking the UI. You donā€˜t need to secure every page from the client and lock it down.

All this is available right now and works like a charm.

For the event details the client can use Gutenberg to create the content and add text and a nested list there. I provide exactly the same functionality as you describe without the client even knowing which builder I use and they wouldnā€˜t even notice, when I switch builders. And never need to learn using my favourite builder.

My company arranges meetings once a year. So there’s +1 page every year that has different speakers and different program. But it’s not even the main reason why ACF is not an option for me. You can set ā€œyearā€ field in ACF and get away with it. The main problem that program is always different and there’s speakers all over the place. I can’t just query them in one place. There could be a ā€œsubjectā€ and a speaker or 2 speakers. Or it could be discussion section with several speakers. Content manager should be able to drag them all over the place and create all kind of nonsense from blocks that I provided for him originally (he uses copy-paste a lot). I would love to make this easier for him and lock most of things that he don’t need, but I can’t for now.

I consider myself one of the lucky ones - I work with content manager who understands builder basics. But when you’re freelancing it’s a big pain. You done the project, you pass it to a client, then you have to explain to a client how to edit it, what he can touch and what he shouldn’t touch. And then he will break things anyway. Especially in Bricks because we have ā€œnested widgetsā€ where you drag something wrong and it breaks.

Addition to the main subject. Turns out there’s a module in Advanced Themer called Strict Editor View. But I don’t want to use it because I don’t want Advanced Themer. I’m into KISS principle and Advanced Themer is oposite of that. Also it’s +1 plugin. Also it’s a Bricks plugin that can break some things in Bricks. I got Fancy Animations plugin for Bricks. I tried it once and it broke Bricks for me. I get some console errors often and Bricks stops to update preview. So, I’m very cautious about third-party plugins for Bricks and I would love to have some kind of ā€œeasy modeā€ out of the box.