kongondo Posted June 13, 2016 Share Posted June 13, 2016 (edited) I've noticed custom input areas or InputfieldText rendered in InputfieldMarkup and added to a fields 'details tab' are not getting saved when the field is saved. The values are sent alright. I can't find where and why in ProcessField.module ProcessWire is discarding them...The code below doesn't work... public function ___getConfigInputfields(Field $field) { $f = $this->modules->get("InputfieldText"); $f->attr('id+name', 'test'); $f->attr('value', $field->test); $f->label = $this->_('Test'); // ALTERNATIVE TO ABOVE..hence same 'name' (NOT being used together) $customInput = '<input type="text" name="test" value="'. $field->test .'">'; $markup = $modules->get('InputfieldMarkup'); #$markup = new InputfieldMarkup; $markup->attr('id', 'my_test_markup'); #$markup->attr('value', $f->render());// @note: input rendered but value not saved #$markup->value = $f->render();// @note: input rendered but value not saved $markup->attr('value', $customInput);// @note: input rendered but value not saved //$markup->value = $customInput;// @note: input rendered but value not saved $inputfields->append($markup);// @note: input rendered but value not saved //$inputfields->append($f);// normal method works return $inputfields; } Any ideas or this is it? Thanks. Edited June 13, 2016 by kongondo Link to comment Share on other sites More sharing options...
Soma Posted June 13, 2016 Share Posted June 13, 2016 I think this is possible like this. There's no fields PW sees and knows about, just custom markup. I think you'd have to use inputfields or maybe save the values yourself. Link to comment Share on other sites More sharing options...
kongondo Posted June 13, 2016 Author Share Posted June 13, 2016 (edited) Thanks Soma. I wish there was a way to let PW see my custom markup. Edit: The reason I need my own markup is so that I can tightly control the layout using a table. I have noticed even Inputfields in MarkupAdminTables don't get their values saved. For now, I think for each of my custom inputs I'll create an InputfieldHidden which will get updated with the value of its paired custom input (using jQuery). The InputfieldHidden will get saved and the custom input will display the saved value... Edited June 13, 2016 by kongondo Link to comment Share on other sites More sharing options...
LostKobrakai Posted June 13, 2016 Share Posted June 13, 2016 The thing is ProcessWire is evaluating all the fields, which are part of the form object and nothing more. You could try to hook before processInput() or alike and add those inputfields for real, so they can be saved even if those weren't used previously to generate the frontend representation. 3 Link to comment Share on other sites More sharing options...
kongondo Posted June 13, 2016 Author Share Posted June 13, 2016 (edited) Thanks Benjamin, below works a treat in my limited tests public function ___getConfigInputfields(Field $field) { // code to build custom inputs.... // hook into process #$this->addHookAfter('ProcessField::fieldSaved', function($event) {// either works... $this->addHookBefore('ProcessField::fieldSaved', function($event) { $field = $event->arguments(0); $field->test='testing testing';// values will be coming from $this->wire('input'); $field->save(); }); return $inputfields; } Edited June 13, 2016 by kongondo 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