Hi,
Bubulina wrote:
hello
i am trying to understand how the "edit a page" works, how does it
know(where is sending the request) to preload the data of the page in the
editor(wysiwyg). If the developers take a look on this topic, please give me
a trail to follow. the flow at least . thank you
Here's what happens when you choose Edit > WYSIWYG from the menu:
1) The browser requests the edit URL:
xwiki/bin/edit/Space/Page?editor=wysiwyg
2) The editwysiwygnew.vm velocity template is evaluated.
3) wysiwyg_editProperty velocity macro (from macros.vm) is called to
replace the "content" plain text area with the WYSIWYG editor.
4) wysiwyg_inputProperty velocity macro (from macros.vm) is called to
prepare the WYSIWYG editor input value. A key for the input URL (see
below) is generated and this key is used to store the editor input value
of the session.
5) wysiwyg_storeConfig velocity macro (from macros.vm) is called to
configure the WYSIWYG editor. The inputURL configuration parameter looks
like xwiki/bin/edit/Space/Page?xpage=wysiwyginput&key=yXrg&render=true .
Notice the key in the query string.
6) The browser receives the response and executes the JavaScript code
7) A new WYSIWYG editor instance is created using the configuration that
was generated on the server by the wysiwyg_storeConfig velocity macro.
8) The editor replaces the plain text area identified by the hookId
parameter with an iframe and sets its src attribute to the inputURL
configuration parameter.
9) The browser makes a request to the inputURL in order to load the iframe
10) The wysiwyginput.vm velocity template is evaluated.
11) The key from the query string is used to retrieve the editor input
value from the session.
12) The browser receives the response and triggers the load event on the
iframe.
13) The WYSIWYG editor, which listens to the load event, is notified and
makes the iframe editable then loads the editor plugins and the rest of
its UI.
Hope this helps,
Marius