TYPO3 Typoscript Menü Snippets Überblick

 

Horizontales GMENU

### Typoscript Code ##########
temp.mainnavText = TEXT
temp.mainnavText {
  text.field = nav_title // title
  offset = 0,0
  fontFile = fileadmin/templates/fonts/Share-Regular.ttf
  fontSize = 20
  fontColor = #999999
  niceText = 1
  spacing = 0,9
}



page.includeLibs.menucount = fileadmin/scripts/count_submenu_items.php

lib.mainnav_neu = HMENU
lib.mainnav_neu{
  entryLevel = 0
  wrap = <div id="mainnavstart">|</div>
  1 = GMENU
  1{
    wrap = <ul id='menuListGM'>|</ul>
    IProcFunc = user_submenu->countmenu
    NO = 1
    NO {
        XY = [10.w]+20,22
        transparentBackground = 1
        10 < temp.mainnavText
        10.offset = 0,14
        10.align = left
        10.niceText = 1
        allWrap = <li>|</li>
    }
    IFSUB < .NO
    IFSUB{
      allWrap = <li>|
    }
    IFSUBRO < .NO
    IFSUBRO = 1
    IFSUBRO{
      10.fontColor = #000000
      20.fontColor = #000000
    }
    RO < .NO
    RO = 1
    RO{
      10.fontColor = #000000
      20.fontColor = #000000
    }
    ACT < .RO
    ACT = 1
    ACT{
      10.fontColor = #2166AC
      20.fontColor = #2166AC
      allWrap = <li class='menuItemAct'>|
    }
    CUR < .ACT
    CUR.doNotLinkIt = 1
    CUR = 1
    CUR{
      10.fontColor = #2166AC
      20.fontColor = #2166AC
      ATagParams = class="noLink"
    }
   
  }
  2 < .1
  2{
    wrap = <ul class='submenuListGM'>|</ul></li>
    expAll=1
    NO >
    NO = 1
    NO{
      transparentBackground = 1
        niceText = 1
        XY = [10.w]+5,13+[20.h]+5
        10 = TEXT
        10.text.override.field = nav_title
        10.text.field = title
        10.text.listNum.splitChar=|
        10.text.listNum=0
        10.fontSize=14
        10.fontColor=  #999999
        10.fontFile = fileadmin/templates/fonts/Share-Regular.ttf
        10.niceText=1
        10.offset = 1,12
        10.align = left
        20 < .10
        20.text.listNum=1
        20.offset=0,26
      allWrap = <li>|</li>
    }
    IFSUB < .NO
    IFSUB = 1
    IFSUB{
      allWrap = <li>|
    }
    IFSUBRO < .NO
    IFSUBRO = 1
    IFSUBRO.10.fontColor = #000000
    IFSUBRO.20.fontColor = #000000
   
    RO < .NO
    RO = 1
    RO.10.fontColor = #000000
    RO.20.fontColor = #000000

    ACT < .RO
    ACT = 1
    ACT.10.fontColor = #2166AC
    ACT.20.fontColor = #2166AC
   
    CUR >
  }
}
/*-------------CSS---------------------
/ Danke an Viktor Steinke
-----------------------------------------*/
ul#menuListGM ul{margin:0;padding:0;}
ul#menuListGM li{float:left;list-style-type:none;background-image:none;padding-left:0;}
ul#menuListGM li li{clear:both;margin-left:0;padding-left:0;}
#mainnavstart{clear:both;}

ul#menuListGM li a{
   float: none;
   z-index: 1;
   position: relative;
   display: block;
}
ul.submenuListGM{
   position: absolute;
   z-index: 2;
}
ul.submenuListGM li{
   float: left;
   list-style : none;
   margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px;
}
ul.submenuListGM li a{
    z-index: 1;
   position: relative;
}
<?php

class user_submenu {
   function countmenu($I,$conf) {
       // 1 ist die pid Root-Seite von der das Menü ausgeht
       if ($I['pid'] == 1 AND $I['val']['allWrap'] == "<li class='menuItemAct'>|") {
           $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery( 'pages.*','pages','pid='.$I['uid'].' AND pages.deleted=0 AND pages.hidden=0 AND pages.doktype!=254 AND pages.doktype!=255 AND pages.doktype!=199 AND pages.doktype!=6 AND pages.doktype!=5 AND pages.doktype!=254');
           $count = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
           $GLOBALS['TSFE']->page['li_height'][$I['pid']]['count']=$count;
       $li_height = $GLOBALS['TSFE']->page['li_height'][$I['pid']]['count'] > 0 ? ($GLOBALS['TSFE']->page['li_height'][$I['pid']]['count']*33).'px;' : 'auto;';
           $I['val']['allWrap']= '<li class="menuItem" style="height:'.$li_height.'">|';
       }
       // Returns:
       return $I;
   }
}
?>
Zu den Code Snippets