[TYPO3-core] RFC: Refactored clickmenu to speed up the BE

Ingmar Schlecht ingmar at typo3.org
Fri Nov 9 21:36:03 CET 2007


+1 based on testing (Konqui, FF, IE6) and code-review.

Fabulous patch!

cheers
Ingmar


Benjamin Mack schrieb:
> Hey all,
> 
> sorry, one file was missing in the last patch, the attached patch should
> take care of it. I tried out the just created patch. If you have strange
> behaviour where the clickmenu will show up, please clear your browser
> cache.
> 
> Sorry, Dmitry and Jeff!
> 
> greetings,
> benni.
> -SDG-
> 
> www.xnos.de // www.xnos.org
> 
> 
> Benjamin Mack wrote:
>> Hey guys,
>>
>> ok. here's my new version for the clickmenu patch!
>>
>> * Fixed almost all of Ingos recommendations (except the "put the
>> second layer 5 pixel below)")
>> * Created the patch against the latest trunk (sorry Dmitry for the
>> first time)
>> * Tested in IE 5.5,6,7, FF2 (linux), Opera and Konqueror
>> * Some additional changes for alt_clickmenu.php and for all uses in
>> the backend, since the getContextMenuCode() function from template.php
>> does not need to return anything anymore.
>>
>> The last addition makes it quite a lot to change but it's all trivial
>> and makes the Core code more readable IMHO.
>>
>> Enjoy and thanks for reviewing.
>>
>> -- 
>> greetings,
>> benni.
>> -SDG-
>>
>> www.xnos.de // www.xnos.org
>>
>>
>> Benjamin Mack wrote:
>>> Hey devs,
>>>
>>> This is a SVN patch request.
>>> Type: Feature
>>> Branches: trunk
>>> Description: I refacted the Clickmenu, or let's say: The server calls
>>> to display the clickmenu. It only speeds up the BE, but does not add
>>> something new in the user interface.
>>>
>>> Why should we need that?
>>> * The old code was all inline JS in template.php. Thus it get's
>>> included and loaded in every instance of the Backend (tree, every
>>> content frame call). Well, if we outsource it in an extra JS file, it
>>> get's loaded only once a session. This means the browser needs to
>>> download 8.3 KB less every request! We also separate the JS code from
>>> the PHP code.
>>> * The old code used it's own XMLHTTPRequest... why not just take
>>> prototype?
>>> * No crypted names anymore (GLV_...) ;-)
>>>
>>> What's so nice about it?
>>> * I included most of the old functions (marked as deprecated) to keep
>>> up compatibility.
>>> * It's tested in IE 6, IE 7, FF 2 and Konqueror.
>>>
>>> So, I have two files in the ZIP file.
>>>
>>> == clickmenu.js ==
>>> Includes the refactored clickmenu. Has to be copied in /typo3/js/.
>>> You probably need to create this directory in your test environment.
>>>
>>> == clickmenu.patch ==
>>> Changes 3 files:
>>>
>>> * typo3/stylesheet.css
>>> adds styles for the clickmenu containers. Was done via inlineCSS before.
>>>
>>> * typo3/tree.js
>>> the drag&drop code used the clickmenu code before to e.g. calculate
>>> the mouse position.
>>> This is now done via prototype.
>>>
>>> * typo3/template.php
>>> Almost all of the inline-javascript code dropped out. Only a couple
>>> of lines of some
>>> runtime configuration is done here.
>>>
>>> The JS style is similar to the tree.js, most of the changes are done
>>> in JS, almost none
>>> of the PHP code was touched.
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> TYPO3-team-core mailing list
>>> TYPO3-team-core at lists.netfielders.de
>>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-team-core
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Before posting to this list, please have a look to the posting rules
>> on the following websites:
>>
>> http://typo3.org/teams/core/core-mailinglist-rules/
>> http://typo3.org/development/bug-fixing/diff-and-patch/
>> _______________________________________________
>> TYPO3-team-core mailing list
>> TYPO3-team-core at lists.netfielders.de
>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-team-core


More information about the TYPO3-team-core mailing list