[TYPO3-core] RFC #11224: Special menu directory only renders 1st level if special.value is a mount point

Xavier Perseguers typo3 at perseguers.ch
Sun Sep 13 18:50:17 CEST 2009


Hi,

REMINDER #8

Xavier Perseguers wrote:
> Hi,
> 
> Sorry to have forgotten to send reminders but as I reverted my whole 
> trunk directory yesterday to test some pending tasks without 
> side-effect, I discover this morning that this one was not yet committed...
> 
> Thanks for taking care of my REMINDER #7.
> 
> 
> Xavier Perseguers wrote:
>> Hi,
>>
>> REMINDER #6
>>
>>
>> Xavier Perseguers wrote:
>>> Hi,
>>>
>>> REMINDER #5
>>>
>>>
>>> Xavier Perseguers wrote:
>>>> Hi,
>>>>
>>>> REMINDER #4
>>>>
>>>> Xavier Perseguers wrote:
>>>>> Hi,
>>>>>
>>>>> REMINDER #3
>>>>>
>>>>>
>>>>>
>>>>> Xavier Perseguers wrote:
>>>>>> Hi,
>>>>>>
>>>>>> REMINDER #2
>>>>>>
>>>>>> Xavier Perseguers wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> REMINDER #1
>>>>>>>
>>>>>>>
>>>>>>> Xavier Perseguers wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> This is a SVN patch request with step-by-step explanation on 
>>>>>>>> how-to reproduce.
>>>>>>>>
>>>>>>>> Type: Bugfix
>>>>>>>>
>>>>>>>> Bugtracker reference:
>>>>>>>> http://bugs.typo3.org/view.php?id=11224
>>>>>>>>
>>>>>>>> Branches:
>>>>>>>> trunk (previous may certainly apply too)
>>>>>>>>
>>>>>>>> Problem:
>>>>>>>> Create a directory menu with special.value being a mount point 
>>>>>>>> (Substitute Mount Point (this page) with Mounted page is not 
>>>>>>>> set). E.g.,
>>>>>>>>
>>>>>>>> lib.menu = HMENU
>>>>>>>> lib.menu.special = directory
>>>>>>>> lib.menu.special.value = 6
>>>>>>>>
>>>>>>>> lib.menu.1 = TMENU
>>>>>>>> lib.menu.1 {
>>>>>>>>     expAll = 0
>>>>>>>>     # standard configuration for NO, CUR, ...
>>>>>>>> }
>>>>>>>> lib.menu.2 < lib.menu.1
>>>>>>>> lib.menu.3 < lib.menu.2
>>>>>>>>
>>>>>>>> 1st level is shown but once an entry from 1st level become 
>>>>>>>> active, 2nd level (and of course 3rd level will never be shown).
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Solution:
>>>>>>>> Make sure to "slide-down" mount point information (_MP_PARAM) to 
>>>>>>>> children record in the rootline otherwise isNext() method will 
>>>>>>>> never return TRUE and submenus won't be generated.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Additional information:
>>>>>>>> Patch contains variable substitution from existing code in the 
>>>>>>>> part that was modified in order to make the block of code more 
>>>>>>>> readable.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> How-to reproduce:
>>>>>>>> Set-up your environment with e.g.,
>>>>>>>>
>>>>>>>> root
>>>>>>>> |-- [1] page1
>>>>>>>> | `-- [2] page1.1
>>>>>>>> | `-- [3] page1.1.1
>>>>>>>> |
>>>>>>>> |-- [4] page2
>>>>>>>> | `-- [5] page2.1
>>>>>>>> |
>>>>>>>> |-- [6] pageMP (--> 7)
>>>>>>>> |
>>>>>>>> `-- [7] sysfolder
>>>>>>>>     |-- [8] page3
>>>>>>>>     | `-- [9] page3.1
>>>>>>>>     | `-- [10] page3.1.1
>>>>>>>>     |
>>>>>>>>     `-- [11] page4
>>>>>>>>
>>>>>>>> Create your menu with TS from this bug's description and let
>>>>>>>>
>>>>>>>> lib.menu.special.value = 1
>>>>>>>>
>>>>>>>> You see a menu with
>>>>>>>>
>>>>>>>> page1
>>>>>>>> page2
>>>>>>>>
>>>>>>>> Once you activate page1, you see next level:
>>>>>>>>
>>>>>>>> page1
>>>>>>>>   page1.1
>>>>>>>> page2
>>>>>>>>
>>>>>>>> and same behaviour with page2 active or page1.1 active. Every 
>>>>>>>> active page lets you see its children.
>>>>>>>>
>>>>>>>> Now change entry point:
>>>>>>>>
>>>>>>>> lib.menu.special.value = 6
>>>>>>>>
>>>>>>>> You get a menu
>>>>>>>>
>>>>>>>> page3
>>>>>>>> page4
>>>>>>>>
>>>>>>>> But when you activate page3, you don't see page3.1
>>>>>>>>
>>>>>>>> Now apply patch and test again. Normal menu (page1, page2) still 
>>>>>>>> works, menu with mount point now shows
>>>>>>>>
>>>>>>>> page3
>>>>>>>>   page3.1
>>>>>>>> page4
>>>>>>>>
>>>>>>>> When page3 is active and shows
>>>>>>>>
>>>>>>>> page3
>>>>>>>>   page3.1
>>>>>>>>     page3.1.1
>>>>>>>> page4
>>>>>>>>
>>>>>>>> when page3.1 is active.

-- 
Xavier Perseguers
http://xavier.perseguers.ch/en

One contribution a day keeps the fork away


More information about the TYPO3-team-core mailing list