1

When an entry is saved, what causes the entry's individual fields to be marked as "modified" in the POST request?

I'm trying to troubleshoot an issue where a modified Redactor field that is a child of a Neo field is not being saved. When I examine the POST data in the debug bar, I see that the field's updated content was posted, but the 'modified' key in the array is still set to '0'.

What's interesting is that if I modify the Redactor field by typing words in it, the field's 'modified' key is set to '1' in the POST data, as expected. However, if I try to just add a single period; highlight text and press delete; or try to copy and paste text into the Redactor field, the 'modified' key is not set to '1' when I save.

So it appears that, in order for the Redactor field to be marked as "modified", I have to type a certain amount of text into the field.

Edit: After more testing, it appears that adding or deleting a single character is not enough for the field to be marked as 'modified'. However, if you add at least two characters, with a pause between each character, the field will correctly be marked as modified. If you type a word quickly, and then save, the field is not marked as modified. If you type a word and be sure to leave at least a second's pause between typing two of the characters, the field is marked as modified.

I'm trying to troubleshoot this issue and identify the root of the problem; is this an issue with the Redactor plugin not reporting that its field has been changed? Is it an issue of the Neo plugin getting in the way of its child field's Redactor field reporting the change, or is an issue with Craft, itself, not picking up on the field being modified?

Since the issue is in the request's POST data, it appears that this is a JavaScript issue, and not a server-side one (though I could be wrong, because I don't know all the ins and outs of how Craft saves entries).

If anybody has any suggestions of where the problem might lie, I'd be very grateful!

The versions involved are:

  • CraftCMS: 3.4.10.1
  • Redactor: 2.6.1
  • Neo: 2.6.5.1
1

When an Edit Entry page is loaded, Craft takes note of all the fields’ current form values, and when the form is submitted, only field values that have changed will be posted. As far as the back-end is concerned, if a field is included in the post data, then it was changed; otherwise it wasn’t.

I suspect that the modified param you are seeing is a Neo-specific thing. Sounds like maybe they have their own change tracking going on, which is separate from how Craft does it.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.