pixelschiff.net Posted December 8, 2021 Share Posted December 8, 2021 Hey there! I've got a shop with product-categories and the template "product-category". The childs are articles "product-page". As soon as I'm creating a new product, it will copy the defined dynamic fields from the parent and add them to itself. Each product-category can have different dynamic fields (within a repeater maybe): - Simple textfield - Number input - Page references - Options select My problem at the moment is that I would like to predefine "sizes" or "color" in each product-category. For example an options field. But they have to be different in each category and should be fetched by their children. Would it be easily doable with the "pro fields" module? Best regards Link to comment Share on other sites More sharing options...
elabx Posted December 8, 2021 Share Posted December 8, 2021 41 minutes ago, pixelschiff.net said: My problem at the moment is that I would like to predefine "sizes" or "color" in each product-category. I'd approach this with either Page fields. Would it matter if the available sizes available for selection in appear on every product-category?? Link to comment Share on other sites More sharing options...
pixelschiff.net Posted December 8, 2021 Author Share Posted December 8, 2021 That's the tricky part. Each category should have his own selection. I already thought about page fields but then they will repeat everywhere. For example T-Shirts have got "sizes (S, L, M, etc.)" and Batteries will also have the sizes field. Just an example. 1 Link to comment Share on other sites More sharing options...
bernhard Posted December 8, 2021 Share Posted December 8, 2021 The easiest solution would probably be to add all fields to your template and then just hide the ones you don't need via hook: <?php $wire->addHookAfter("ProcessPageEdit::buildForm", function(HookEvent $event) { $page = $event->object->getPage(); $form = $event->return; if(...) $form->remove('yourfield'); }); 1 Link to comment Share on other sites More sharing options...
pixelschiff.net Posted December 8, 2021 Author Share Posted December 8, 2021 3 hours ago, bernhard said: The easiest solution would probably be to add all fields to your template and then just hide the ones you don't need via hook: <?php $wire->addHookAfter("ProcessPageEdit::buildForm", function(HookEvent $event) { $page = $event->object->getPage(); $form = $event->return; if(...) $form->remove('yourfield'); }); Thanks for that idea. I will think about it in detail. Link to comment Share on other sites More sharing options...
elabx Posted December 8, 2021 Share Posted December 8, 2021 7 hours ago, pixelschiff.net said: That's the tricky part. Each category should have his own selection. I already thought about page fields but then they will repeat everywhere. For example T-Shirts have got "sizes (S, L, M, etc.)" and Batteries will also have the sizes field. Just an example. Something else I've done is dynamically manage the options available for a page reference field depending on where it is in the page tree through a few hooks. So, say each product category has as children two more "parent pages", one for the products, and one for the specific categories of that product page. I won't go into much detail right now as I don't even know if if suits your case. Link to comment Share on other sites More sharing options...
bernhard Posted December 8, 2021 Share Posted December 8, 2021 We also have a dynamic options module Link to comment Share on other sites More sharing options...
pixelschiff.net Posted December 11, 2021 Author Share Posted December 11, 2021 Thank you all for your help and ideas. I solved my issue with creating some magic with dynamic options, hiding fields depending on their parent and using some kind of namespace for the fields to match them to the categories. While developing this I learned a lot about the fields API and remembered how awesome processwire is 😄 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now