User enters panel and creates project A, fills info, saves etc.
Within project A user creates update 1 page, and a few days later update 2 page.
Even later user creates update 3 page, which is related to update 2. S/he then selects update 2 page from a type:pages field populated by siblings. In the frontend, visiting update 3 page shows a sidebar with a list of related updates, which reads from this pages field, and so update 2 is shown.
But if 2 and 3 related it just makes sense that when visiting 2, 3 also shows on the related sidebar, so it should be included in the panel page of this update, in its type:pages field.
This is where the original question comes from.
I could have the user set all this relations in a single field in project A’s panel page. But imo when user creates update 3 and wants to establish a relation with update 2, it makes sense s/he can do it right there right now, instead of going up one level to do it, every time.
I do not explicitly need to update all pages via hooks, tho, but a way to set and get all the relations from every page. It could be two fields in every update page, a disabled field which reads the relations for that page from a centralized source, and displays them, and another field that allows the user to set relations for that particular page.
I was asking about query lang, because I thought perhaps I can build a custom function that receives the page object and returns its relations by reading them from somewhere in project A .txt file. Then I could have , for example, a disabled multiselect field, which would call this function via query lang.
This would solve the ‘get’ or ‘display’ part of the problem, but not the ‘set’ part… that is why I was asking when does a field update its contents in a panel page. I mean, in the case of the multiselect field, if the source of the query changes while we are in the page, in which case would the field display these changes ? On page save for example ? Or only exiting and entering the page again ?
I could have a type:pages field populated via siblings, then user could select related siblings, and on save, a hook would store this siblings somewhere in project A and clean the field. But I would like to know if on save, the disabled multiselect will show the changes, or if I can make it show them via a hook.