I think Pinegrow should be the way to go to create Gutenberg blocks. It makes it so easy. I am right now using some custom made gutenberg blocks and pinegrow blocks. I wish that I only use Pinegrow in future to make blocks. I want to have more controls on the block like padding/margin controls and also blockstyles support. I wish Pinegrow had this and FSE support. I will never have to touch any other tool then. It’s so powerful and can be more powerful.
Agree! But it’s probably hard to implement margin/padding controls in a way every user likes it.
What Matjaz suggested me in a Facebook-Group is to use one of those basic FSE-Themes and create your Gutenberg-Blocks inside of a plugin. That would solve the issue with FSE until Pinegrow will have that available. I think they want to wait until it’s more matured (my personal opinion).
Regardless of the fact that I’d also love to see more options like <input type="range> control for example and maybe other controls, I also like the Idea of creating HTML Websites and converting it then to Gutenberg Blocks with the minimal possible amount of Controls so my Clients can then Edit the text-Fields and maybe change background-colors and so.
But from my experience with the traditional Page-Builders (have used Elementor, Oxygen and now Bricks) is that there will always comes a point where a customer want’s to change something of his website by his own. And that’s where the Pinegrow Blocks really shine in my opinion.
@Wolfgang.Hartl I am surprised to see you here. I have seen you commenting a lot on the Bricks forum. I am actually using a basic fse theme right now. But not able to override woocommerce templates with a pinegrow plugin. What is the reason for using Bricks over Pinegrow? Is that the Bricks client control they come with allowing easy editing to the clients from the builder?
Yeah, I’m actively and intensively using Bricks. But I’m not 100% satisfied with client-control in any page-builder. It’s just too overwhelming for the clients to have all that controls available (even reduced) and I always end up restoring backups or finish their stuff they tried to achieve.
I just started a new Project where I can’t use Bricks because that existing website already relies on another, very old (with WPBakery), theme which can’t be replaced without recreating the whole site. So I thought this would be the perfect opportunity to learn a bit more about Pinegrow. And I like the idea of having it alongside with Bricks for managing my CPTs. Before I’ve used MetaBox (which I will also still use if i need to handle predefined data in REST-API for example), but now I can give the customers a more visual way of editing the content without overwhelming them with any controls. It’s pretty cool. And in Gutenberg you can create templates which get placed on any new Post of a specific CPT (which is in my opinion a killer-feature). So the Jobportal im doing right now will load on every new job-posting a complete layout of the page and the customer just have to replace the text-fields and maybe change some colors and so. Only those controls I allow them to use, which is pretty cool. In the screenshot below for example they can play around with that image (full-width or not) and place that text-box inside in any vertical and horizontal directions. I don’t want them to do more here.
The reason for me to still use Bricks over Pinegrow is that I can develop really really fast complicated sites with it. And the huge amount of Filters which allow me to adapt Queries, Conditional-Logic and so on.
I’m not looking for a replacement of Bricks, definitely not, I’m looking for an addition to it and I think i found a very cool one in Pinegrow (bought it yesterday, so I didn’t cover the whole stuff available in Pinegrow). It was a bit tricky to find a way to register a huge amount of custom code inside the same plugin as the block-export, but I think I’ve come up with a cool solution which gives me absolutely 100% the possibility to extend the blocks with any custom-plugin-functionality I’d like to!
Thanks for your reply. I appreciate you taking time to help me.
I thought the latest Bricks RC fixes the client control and now only allow editing text. But not sure. Cwicly also came out with client control. From the looks of it’s video it seems to be expansive. Update 1.1.8 - Role Editor - YouTube
But I can see the perfect control in your approach of having gutenberg attributes for stuff which clients need to edit without being overwhelmed. For rest you can edit in pinegrow.
Regarding gutenberg template defaults, how does it work? Do you define something like this? I do this but this does not allow me the placement. It’s one block below one.
Also pinegrow plugin (not theme) like you are using on this site with wpbakery theme can override the templates (single-post.php) for example?
Possible, to be honest I didn’t have a look at the client control for a few weeks now. It’s also a bit of personal dislike of letting the clients work in the Builder! , but I’m definitely gonna have a look at it, thanks!
Yes, that’s kind of a hack you have to use. As Gutenberg only allows you to nest 1 level deep you would need to create a small workaround. What I did is the following:
- I have one wrapping block which is basically nothing different then a container with a “Block Inner Content” attribute on it. That Inner-Block Attribute allows me to specify a template inside of Pinegrow. So what I did is creating child-blocks and specify them in the template (you can also use the core Gutenberg-Blocks there for text and so)
- To ensure that those child-blocks are only used inside my container I’ve specified a parent-container on them to make sure, which hides them from the “+ add” panel if I’m not inside that parent container.
If you want to entirely hide them. there would be a feature called “multiple → false” in Gutenberg, but I wasn’t able to find that in pinegrow yet (that’s a small workaround for this problem: Gutenberg-Block: supports: multiple => false)
You can nest child-blocks inside those mentioned child-blocks and achieve multiple deep nested levels with that technique.
Register that Parent-Container (mentioned in 1.) in my plugin for the Template-Part as you did it in your snippet. So whenever the page loads it automatically adds the childs and grandchilds and so on of that parent container. And voila you’ve now a complete Page-Layout loaded inside of Gutenberg automatically!
Not sure about overriding, but that should probably also be possible. I’ve created a child-theme for testing purposes where I registered that single-**.php template. But as that job-portal should run on several different websites I’m gonna do it inside of the plugin then with a filter like
I’m not sure if that also overrides the existing single-php template. You could try to run that filter with a very late by adding a priority of 999 or so. But as my single-php doesn’t exist I don’t need to override mine.
By the way if you’re interested in the plugin-structure, see screenshot below (the src folder is only to have the whole project in github available, whenever I install the plugin I won’t upload that folder too). But the export location from pinegrow is set inside that “blocks” folder and inside of functionality i have my custom code. Inside of plugin.php i use
require_once() to register the gutenberg-blocks again. Took me a while to recognize that I could do it that way, so maybe you (or someone else reading this) needs such a solution for his/her next project!
That’s the screenshot (couldn’t post it as new users are not allowed to post more than one image)
That is really helpful! This approach will be solid enough for me. You are awesome! Thanks
@Wolfgang.Hartl and @Pinegrow_Learner thank you for this in-depth discussion! I will study the details and come up with a way to support extended options, both setting up the post type templates and flags such as multiple.
Awesome, thanks for your reply!