=================================== Content Structure Menu Improvements =================================== :Authors: Jan Kudlicka :Version: 0.1 Preface ------- From the experience with our customers and their projects, especially those bigger ones, we can say that the content structure menu in the administration interface is not implemented in the optimal way. Any change on a site which leads to the removal of cache-blocks removes the cached content of the tree menu as well and a user has to wait for long time to get a page containing the tree menu. This is caused by regenerating (and caching) HTML code for the menu by fetching whole structure of the site (or better to say one particular section of site) and rendering the menu in the templates. In addition this HTML code contains - information about all nodes, even those rarely used, - some pieces of information are duplicated many times, - as the result of the previous points, the generated HTML code is big in size (on some sites it can reach even hundreds of kilobytes) and must be transferred for all requests to the *content/view* view. Proposed solution ----------------- As practically all users work with the administration interface in modern browsers supporting XMLHTTPRequest objects (also known as AJAX request objects), we want to add implementation for the tree menu using this technique to get lists of children of a given node on fly, as they are needed (for example after clicking on an unfold icon). In addition, we would like to meet the following requirements: - the content of subtrees, transferred from the server to a client, should contain only the necessary information so that it would minimize the transfer size/rate, - to be able to cache the information both on a server and in browsers, - to bypass index.php and use a light-weighted script instead (to decrease reaction time). This dynamic content structure menu should be used in the administration siteaccesses only. The old implementation should not be removed and an administrator of a site should be able to switch between original and the new dynamic implementation of the content structure menu.