I'm exploring a publication project for Backdrop CMS in which the owner would be publishing 1-3 new (original content) articles every day and would like to be able to choose between 3-5 (or more) different layouts for each article. 

Using layout visibility rules would be far too cumbersome for this use case. We would be looking for a solution where they are able to choose from a selection of layouts (or create custom layouts) during the content creation process.

Do we have good Backdrop CMS tools in core or contrib for this use case or might this require a new solution (either custom or contrib)?

If it helps, my client is coming from working with Panopoly in Drupal 7. 

The only think that is coming to my mind right now as an option is possibly Paragraphs. 

Any other ideas?

Most helpful answers

Hi Tim

I can see an easy way to do this with existing functionality.  Add a field into the content type with a selectable tag (from taxonomy) so the user can select the layout they want. 

Use this field in URL Alias patterns then make visibility conditions on each of the url patterns.

[node:field_type]/[node:created:custom:ymd]/[node:title]

I wanted to share the "post" content type between "blog" and "news" - all details are the same but there is a "type" field that then forms the first part of the URL pattern.

I used a layout visibility condition to only show the "blog author" block on blog pages:

Current path is "blog/*"

Comments

"Paragraphs" and/or adding styles to CKEditor.

Of course, it depends on the type of layout the client is looking for.

Can you post some example layouts?

 

Hi Tim

I can see an easy way to do this with existing functionality.  Add a field into the content type with a selectable tag (from taxonomy) so the user can select the layout they want. 

Use this field in URL Alias patterns then make visibility conditions on each of the url patterns.

[node:field_type]/[node:created:custom:ymd]/[node:title]

I wanted to share the "post" content type between "blog" and "news" - all details are the same but there is a "type" field that then forms the first part of the URL pattern.

I used a layout visibility condition to only show the "blog author" block on blog pages:

Current path is "blog/*"

@oadaeh - Thanks for pointing out these modules, I was unaware of them both. I think either of them could work. I think that node_layout promises more features, but also seems buggy and is not in the Backdrop contrib space. I need to test it some more. 

Layout Nodes seems like another underappreciated module. I have a feeling that more folks might use this if they know about it. It seems stable (it has a beta release) and would probably solve me use case.

@yorkshirepudding - I find your idea interesting. I hadn't thought about it but can see where that might make sense. The modules suggested by @oadaeh seem like an easier way to meet my goals, but I'd like to test your idea, because it doesn't require modules and might have other benefits.