In-Portal Issue Tracker - In-Portal CMS
Viewing Issue Advanced Details
687 [In-Portal CMS] Front End bug report always 2010-04-09 00:02 2011-03-30 09:53
closed 5.0.3-B2  
none 5.1.2-B1
Fixes issue with highlighting active sub-menu
0000687: All Sub-menu Items appear as "current" when expanded Site Menu is printed
All sub-menu items appear as current, when you are printing expanded site
menu version.
   - menu1
      - menu11
      - menu12
      - menu13
   - menu2
      - menu21
      - menu22
      - menu23

For example when you want print menu mentioned above and highlight current
page in it, then you should compare this using given tag:
*<inp2:m_if check="m_Get" name="m_cat_id"
equals_to="$cat_id">highlighted</inp2:m_if>* .

Mentioned above tag will always display "highlighted" because of "m_cat_id"
request variable, which is compare here is always overwritten from
.../>* tag. It was done long ago to automatically pass category into menu
item links and for this tag to work: *<inp2:m_Link template="$template"/>*.

Proper way to build links to menu items is by directly passing category id
to them like this *<inp2:m_Link template="$template" m_cat_id="$cat_id"/>*.

As a fix I propose to remove code, that sets m_cat_id from st_CachedMenu tag
and patch all our themes (if needed). For users who have customized their
themes or created new onces I propose to write note about required change in
theme templates in "ChangeLogMessage" field in task, that would be created
based on this discussion.
Changes to be made in customized themes:

<a href="<inp2:m_Link template='$template'/>"><inp2:m_Param name="title"/></a>
<inp2:st_CachedMenu render_as="sub_menu_element"/>

<a href="<inp2:m_Link template='$template' m_cat_id='$cat_id' use_section='$use_section' m_cat_page='1'/>"><inp2:m_Param name="title"/></a>
<inp2:st_CachedMenu render_as="sub_menu_element" category_id="$cat_id"/>
patch sub_menu_highlight_fix.patch (788) 2011-01-05 02:46
Issue History
2011-03-30 09:53 Dmitry Note Added: 0003355
2011-03-30 09:53 Dmitry Status resolved => closed
2011-01-09 08:24 alex Changeset attached 5.1.x r14125
2011-01-09 08:24 alex Note Added: 0003175
2011-01-09 08:24 alex Status reviewed and tested => resolved
2011-01-09 08:24 alex Fixed in Version => 5.1.2-B1
2011-01-09 08:24 alex Resolution open => fixed
2011-01-09 08:24 alex Assigned To !COMMUNITY => alex
2011-01-05 13:27 Dmitry Issue Monitored: erik
2011-01-05 13:27 Dmitry Issue Monitored: gleb
2011-01-05 13:27 Dmitry Issue Monitored: nikita
2011-01-05 13:27 Dmitry Note Added: 0003170
2011-01-05 13:25 Dmitry Change Log Message => Fixes issue with highlighting active sub-menu
2011-01-05 13:22 Dmitry Note Added: 0003169
2011-01-05 13:22 Dmitry Status needs testing => reviewed and tested
2011-01-05 03:17 alex Note Edited: 0003129 bug_revision_view_page.php?bugnote_id=0003129#r648
2011-01-05 02:50 alex Note Edited: 0003129 bug_revision_view_page.php?bugnote_id=0003129#r647
2011-01-05 02:50 alex Note Added: 0003129
2011-01-05 02:50 alex Assigned To => !COMMUNITY
2011-01-05 02:50 alex Developer => alex
2011-01-05 02:50 alex Status active => needs testing
2011-01-05 02:46 alex File Added: sub_menu_highlight_fix.patch
2011-01-05 02:41 alex Additional Information Updated bug_revision_view_page.php?rev_id=645#r645
2010-12-06 12:48 alex Target Version Icebox => 5.1.2
2010-05-10 14:50 alex Target Version 5.0.4 => Icebox
2010-04-09 00:02 Dmitry New Issue
2010-04-09 00:02 Dmitry Reference =>

2011-01-05 02:50   
(edited on: 2011-01-05 03:17)
Here is test code, that I've placed in "footer.elm.tpl" of "advanced" theme:

(edit note to get correct HTML!!!)

    <inp2:m_DefineElement name="top_menu_element">

  •             <inp2:m_if check="m_Param" name="active">
                <a href="<inp2:m_Link template='$template' m_cat_id='$cat_id' use_section='$use_section'/>">
                    <inp2:m_Param name="title"/>

                <inp2:m_if check="m_Param" name="has_sub_menu">
                    <ul style="overflow: visible; border: 1px solid green;">
                        <inp2:st_CachedMenu render_as="sub_menu_element" category_id="$cat_id"/>

  •     </inp2:m_DefineElement>

        <inp2:m_DefineElement name="sub_menu_element">

  •             <inp2:m_if check="m_Param" name="active">
                    SUB ACTIVE:
                <a href="<inp2:m_Link template='$template' m_cat_id='$cat_id' use_section='$use_section'/>">
                    <inp2:m_Param name="title"/>

  •     </inp2:m_DefineElement>

        <ul style="overflow: visible; border: 1px solid red;">
            <inp2:st_CachedMenu render_as="top_menu_element" category_id="1"/>


    You need to have some 2nd level sections to be created to test, e.g. "Directory -> Sub Directory 1". Code above don't show "SUB ACTIVE" (even if 2nd level sub section is selected) until patch is applied.


    All themes were using correct tags, so no changes required there.

    2011-01-05 13:22   
    Reviewed and tested okay, please commit.
    2011-01-05 13:27   
    Reminder sent to: erik, gleb, nikita

    Erik, Gleb, Nikita,

    Please take a close look to this task since it will be affecting your TPL/HTMLs in the future.

    If any questions, please feel free to ask in Google Groups. Link to discussion can be found in Reference field of this task.
    2011-01-09 08:24   
    Fix committed to 5.1.x branch. Commit Message:

    Fixes 0000687: All Sub-menu Items appear as "current" when expanded Site Menu is printed
    2011-03-30 09:53   
    Closing, since 5.1.2 release has been released.