GMENU_FOLDOUT klappt nicht dynamisch aus [Gelöst]

  • lucky23 lucky23
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    20. 11. 2007, 11:07

    hi,

    folgendes problem. Hab ein GMENU_FOLDOUT in die Seite eingebunden. Der TS-code ist aus der t3 documentation.
    Funktioniert soweit auch ganz gut, menü wird angezeigt und passt soweit alles.

    Das Problem liegt darin, das das menü nach einem klick nicht dynamisch aufklappt, sondern erst nach neuladen der seite aufklappt.
    Der Fehler kommt daher, das in den erzeugten links das onclick ereignis fehlt.
    normalerweise müsste in den oberpunkten sowas stehen

    onclick="GF_menu(0); return false;"

    jetzt ist die frage, wie ich dieses onclick ereignis in die links reinbekomm, bzw. warum dieses nicht ausgegeben wird.

    auszug aus der gmenu_foldout.php

    1. /**
    2. * Processing before the links are created.
    3. * Basically this is setting an onclick handler for clicking the menu item.
    4. *
    5. * @param integer Pointer to $this->menuArr[$key] where the current menu element record is found
    6. * @return void
    7. */
    8. function extProc_beforeLinking($key) {
    9. $this->I['addATagParams']='';
    10. $this->WMsubmenu = $this->subMenu($this->I['uid'], $this->WMsubmenuObjSuffixes[$key]['sOSuffix']);
    11. if (trim($this->WMsubmenu)) {
    12. $this->I['addATagParams']=' onclick="GF_menu('.$key.');'.($this->mconf['dontLinkIfSubmenu'] ? ' return false;' : '').'"';
    13. if ($this->isActive($this->I['uid'], $this->getMPvar($key)) && $this->mconf['displayActiveOnLoad']) { // orig: && $this->WMisSub, changed 210901
    14. $this->WM_activeOnLoad='GF_menu('.$key.');';
    15. }
    16. }
    17. }

    mein TS

    [TS]## GMENU_FOLDOUT
    includeLibs.gmenu_foldout = media/scripts/gmenu_foldout.php

    temp.foldoutMenu = HMENU
    temp.foldoutMenu.1 = GMENU_FOLDOUT
    temp.foldoutMenu.1.expAll=1
    temp.foldoutMenu.1.NO {
    wrap = | <br />
    XY = 150,20
    backColor = silver

    10 = TEXT
    10.text.field = title
    10.fontSize = 12
    10.fontColor = Blue
    10.offset = 2,10
    }

    temp.foldoutMenu.1.RO < temp.foldoutMenu.1.NO
    temp.foldoutMenu.1.RO = 1
    temp.foldoutMenu.1.RO {
    10.fontColor = red
    }

    temp.foldoutMenu.2 = TMENU
    temp.foldoutMenu.2.NO {
    linkWrap = <nobr><font face="verdana" size="1" color="black"><b>|</b></font></nobr><br />
    stdWrap.case = upper
    }

    temp.foldoutMenu.1 {
    dontLinkIfSubmenu = 1
    displayActiveOnLoad = 1
    stayFolded=1
    foldSpeed = 6
    subMenuOffset = 10,18
    menuOffset = 100,20
    menuBackColor = silver
    bottomBackColor = silver
    menuWidth = 170

    arrowNO = media/bullets/arrow_no.gif
    arrowACT = media/bullets/arrow_act.gif
    arrowImgParams = hspace=4 align=top

    }

    lib.subnav >
    lib.subnav < .temp.foldoutMenu
    [/TS]


  • 1
  • surf surf
    R2-D2
    0 x
    71 Beiträge
    0 Hilfreiche Beiträge
    20. 11. 2007, 11:30

    hallo lucky,
    vergleich das mal hiermit

    [url]http://www.typo3.net/forum/list/list_post//42837/?page=1&sword=foldout#pid161508[/url]

  • lucky23 lucky23
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    20. 11. 2007, 14:15

    hi,

    ich habe mal den ordner media/scripts/ angelegt und dort die 4 dateien reinkopiert. Scheinbar wenn der ordner nicht existiert, dann wird automatisch der ordern typo3/sysext/cms/tslib/media/scripts/ genommen, und dort liegen die files ja auch drin.

    wie gesagt, das menü funktioniert soweit korrekt, nur dieses onclick event wird nicht in den link eingefügt.

    hatte mal testweise in den additionalParams vom GMENU das ereignis reingeschrieben
    onclick="GF_menu(0); return false;"

    dann funktionierte das menü richtig, allerdings klappte dann eben immer nur das erste menü aus.

  • lucky23 lucky23
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    29. 11. 2007, 11:41

    hi,

    hab das problem gelöst...

    hier ein teil der veränderten gmenu_foldout.php

    1. /**
    2. * Processing before the links are created.
    3. * Basically this is setting an onclick handler for clicking the menu item.
    4. *
    5. * @param integer Pointer to $this->menuArr[$key] where the current menu element record is found
    6. * @return void
    7. */
    8. function extProc_beforeLinking($key) {
    9. $this->I['addATagParams']='';
    10. $this->WMsubmenu = $this->subMenu($this->I['uid'], $this->WMsubmenuObjSuffixes[$key]['sOSuffix']);
    11. if (trim($this->WMsubmenu)) {
    12. $this->I['addATagParams']=' onclick="GF_menu('.$key.');'.($this->mconf['dontLinkIfSubmenu'] ? ' return false;' : '').'"';
    13. if ($this->isActive($this->I['uid'], $this->getMPvar($key)) && $this->mconf['displayActiveOnLoad']) { // orig: && $this->WMisSub, changed 210901
    14. $this->WM_activeOnLoad='GF_menu('.$key.');';
    15. }
    16. }
    17.  
    18. /* =========== USER CHANGE ========================*/
    19. $this->I[linkHREF]["onClick"] = 'GF_menu('.$key.'); return false;';
    20. /* =========== USER CHANGE ========================*/
    21. }

    das problem war scheinbar das die variable $this->I['addATagParams'] nicht ausgewertet wurde. Es wurde zwar das onclick ereignis korrekt eingetragen, aber später nicht ins menü übernommen.

    woher das kommt, weis ich auch net

    meine Typo version 4.1.2

  • 1