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;
}
}
?>
