While I was editing a panelized node today with a member of our QA team, I found an issue with the interaction between the in place editor and the actual content callback (standard method).
I moved a pane to another region in the in place editor and then went to the content tab to show the similarities and differences between the two interfaces and discovered a disparity. The changes that I had made in the in place editor were not showing up in the regular callback.
I checked the in place editor again and it loaded the content as it was placed there, and the callback showed its placement. I believe when I changed it in the content callback it changed in the in place editor. So this might be a one sided desync between the two.
Comments
Comment #1
merlinofchaos commentedHad you actually saved the panel, or are you referring to moving the panes and hoping to see the intermediate state?
If you mean the latter, moving a pane does not actually trigger a send to the server until the save button is hit, so the back-end editor won't be aware of any changes you made (and vice versa).
Comment #2
merlinofchaos commentedWell that's not entirely true. Adding a new pane actually would show up, because that does go through the server and so is stored in the intermediate cache. Moves and deletions are not immediately sent however, and are only transmitted upon save.
Comment #3
merlinofchaos commentedChanging this would be a pretty structural change to Panels itself. It seems not likely to be worthwhile.
Comment #4
awebb commentedI believe I saved the changes, but I will try it again and verify. Thanks!
Comment #5
awebb commentedI checked and even when I hit save there is a disparity between the two content forms; in place editor and the content callback under panelizer.
To duplicate:
1. Create Panelizer node (make sure the in place editor is enabled on the panel)
2. Place content on the panelizer layout
3. Go to the node view page
4. Click the in place editor button
5. Arrange the fields across regions or even just reordering
6. Click save
7. Go to the Panelizer tab for content placement
You will notice that the content has not changed from where it was originally. So there is a difference in the in place editor settings and the settings that power the content tab.
If you go back to node view and click the in place editor again you will notice that the fields show as they were when we saved in the in place editor. So the in place editor has saved it's changes, but they are not picked up by the content tab.
Comment #6
merlinofchaos commentedHm. Maybe there's a locking issue. In theory if you're editing in the back, IPE shouldn't be allowed to edit in front. I thought IPE supported locks, but I bet panelizer isn't actually creating one.
Comment #7
patrickroma commentedsame here... Also sometimes nodes being modified by IPE return suddenly back to the default content... Still I am not sure what actually is happening... If I find a pattern I will tell...
Comment #8
patrickroma commentedWhat is supposed to happen with Already edited nodes when the Default panel is changed?
Edit: That is probally Not related to the locking issue mentioned above.
Comment #9
patrickroma commentedHmmm... So this is weird. There is a displacement between IPE and Panelizer Backend-Edit... Sorting does not get saved from IPE to the backend-edit and sometimes after sorting and adding content it throws the error:
Fatal error: Call to undefined method stdClass::render() in /var/www/mysite/htdocs/sites/all/modules/panels/panels.module on line 1023How to reproduce:
Add content to the penalized node via IPE and save. Click edit this page and do a resorting. Click save. Now go to node/nid/panelizer/content and see the results. Go back to the node and do another resorting. Click save and do a refresh. Now - but only sometimes - the above mentioned error appears. Going back to /node/nid/panelizer and disable IPE save and reset to default. The error is gone.
Disabling the IPE solves all the issues. I guess that this may be related to the issue that IPE and the panelizer-edit in the backend are not synchronized?
Comment #10
damienmckennaComment #11
damienmckennaUnless someone steps up to provide a patch, it's unlikely this will be worked on. If someone is willing to put time into it and build a patch then I'll happily review it.
Comment #12
damienmckennaThe 6.x-1.x branch is no longer supported, so this will not be resolved.