rtgx

Úprava menu pomocou funkcie IProcFunc

Zadanie

Potrebujeme vyrobiť textové menu, ktoré bude mať jednotlivé položky wrapované tagmi <li>|</li>, ktoré budú mať priradenú CSS triedu new, pokiaľ daná položka (stránka) menu má nastavenú hodnotu newUntil (Nový do), takže výstup by mal vyzerať napríklad takto (boldom označená položka má nastavenú hodnotu newUntil):

<ul>
<li><a href="index.php?id=182">layout: test 1</a></li>
<li><a href="index.php?id=195">menu text colored</a></li>
<li class="new"><b><a href="index.php?id=313">menu itemArrayProcFunc</a></b></li>
<li><a href="index.php?id=220">graphic header</a></li>
<li><a href="index.php?id=140">tooltip</a></li>
<li><a href="index.php?id=145">vts</a></li>
<li><a href="index.php?id=146">exif data</a></li>
</ul>

Takto to vyzerá výsledné menu >>

TS setup

includeLibs.usermenuitems = fileadmin/domain/inc/user_itemArrayProcFunc.php

page.10 = HMENU
page.10.1 = TMENU
page.10.1 {
wrap = <ul>|</ul>
IProcFunc = user_IProcFuncTest
}
page.10.1.NO {
allWrap = |
linkWrap = <li>|</li>
}

PHP (user_itemArrayProcFunc.php)

function user_IProcFuncTest( $I, $conf ) {

$itemRow = $conf['parentObj']->menuArr[$I['key']];
if( $itemRow['newUntil'] > 0 ) {
$I['parts']['notATagBeforeWrap_begin'] = '<li class="new"><b>';
$I['parts']['notATagBeforeWrap_end'] = '</b></li>';
}
return $I;
}

Poznámka

Iný príklad - pozri skript v inštalácii Typo3:
typo3/sysext/cms/tslib/media/scripts/example_itemArrayProcFunc.php