[TYPO3-UG Dutch] userdefined menu ACT state

Stephan de Bruin stephan.de.bruin at dpdk.nl
Wed Jul 7 16:51:21 CEST 2010


Hallo,

ik heb een (hopelijk) klein vraagje over een userdefined menu.
Ik krijg het niet voor elkaar om aan een item een ACT-state toe te 
kennen, zodat het menu openklapt en ik visueel kan laten zien op welke 
pagina de gebruiker zich bevindt. (Ik gebruik het rgaccordion-menu als 
visueel menu, maar qua code lijkt me dit geen bottleneck).

Hieronder staat zowel de TS-code als de php-code waarmee het menu gevuld 
wordt.

Alvast bedankt voor de hulp.
Groeten,
Stephan

==========
TYPOSCRIPT
==========
lib.cl_menu = HMENU
lib.cl_menu.special = userdefined
lib.cl_menu.special.file = fileadmin/scripts/clMenu.php
lib.cl_menu.special.uid = 125
lib.cl_menu.special.pid = 2
lib.cl_menu.special.text {
   topics = Topics
   regions = Regions
   targets = Target groups
}

lib.cl_menu {
     1 = TMENU
     1 {
         wrap = <ul id="rgaccordmenu">|</ul>
         noBlur = 1
         expAll = 0
         NO >
         NO.wrapItemAndSub = <li class="topics">|</li> |*| <li 
class="regions">|</li> |*| <li class="targets">|</li>
         NO.linkWrap = <span class="toggle">|</span>
         IFSUB <.NO
         IFSUB.linkWrap = <span class="toggle topics" 
onmouseover="this.className='toggle topicsOver'" 
onmouseout="this.className='toggle topics'">|</span> |*| <span 
class="toggle regions" onmouseover="this.className='toggle regionsOver'" 
onmouseout="this.className='toggle regions'">|</span> |*| <span 
class="toggle targets" onmouseover="this.className='toggle targetsOver'" 
onmouseout="this.className='toggle targets'">|</span>
         IFSUB.doNotLinkIt = 1
         ACTIFSUB <.NO
         ACTIFSUB.linkWrap = <span class="open toggle">|</span>
     }
     2 = TMENU
     2 {
     wrap = <ul class="content">|</ul>
     NO.wrapItemAndSub = <li class="secondlevel">|</li>
     NO.linkWrap >
     IFSUB >
     IFSUB.linkWrap = <span class="toggle2">|</span>
     ACTIFSUB.linkWrap = <span class="open toggle2">|</span>
            ACT < .NO
            ACT {
              wrapItemAndSub = <li class="current">|</li>
            }
     }
}

==========
  PHP CODE
==========
<?php
//$cats[] = array('title' => $row['title'], 'uid' => $shopUid . 
'&cat_id=' . $row['uid'], 'ITEM_STATE' => 'ACT', '_SUB_MENU' => 
get_categories($pid, $shopUid, $row['uid'], $open));
//$cats[] = array('title' => $row['title'], 'uid' => $shopUid . 
'&cat_id=' . $row['uid'], 'ITEM_STATE' => 'NO');

$menu = array();
$menu[0] = array('title' => $conf['text.']['topics'], 'uid' => '', 
'ITEM_STATE' => 'NO', '_SUB_MENU' => array());
$menu[1] = array('title' => $conf['text.']['regions'], 'uid' => '', 
'ITEM_STATE' => 'NO', '_SUB_MENU' => array());
$menu[2] = array('title' => $conf['text.']['targets'], 'uid' => '', 
'ITEM_STATE' => 'NO', '_SUB_MENU' => array());

/* TOPICS */
$topic_rs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
     "*",
     "tx_topic",
     "pid = " . $GLOBALS['TYPO3_DB']->fullQuoteStr($conf['pid'], 
'tx_topic') . $GLOBALS['TSFE']->cObj->enableFields('tx_topic'),
     "",
     "name"
);

foreach ($topic_rs as $topic) {

     if ( isset($_GET['L']) && $_GET['L'] == 1 && $topic['name_ru'] != '' )
         $topic['name'] = $topic['name_ru'];

     $menu[0]['_SUB_MENU'][] = array('title' => $topic['name'], 'uid' => 
$conf['uid'], '_ADD_GETVARS' => 
'&tx_wi_pi1[search]=1&tx_wi_pi1[search_topic]=' . 
urlencode($topic['uid']), 'ITEM_STATE' => 'NO');
}

/* REGIONS */
$region_rs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
     "*",
     "tx_region",
     "pid = " . $GLOBALS['TYPO3_DB']->fullQuoteStr($conf['pid'], 
'tx_region') . $GLOBALS['TSFE']->cObj->enableFields('tx_region'),
     "",
     "name"
);
foreach ($region_rs as $region) {

     if ( isset($_GET['L']) && $_GET['L'] == 1 && $region['name_ru'] != '' )
         $region['name'] = $region['name_ru'];

     $menu[1]['_SUB_MENU'][] = array('title' => $region['name'], 'uid' 
=> $conf['uid'], '_ADD_GETVARS' => 
'&tx_wi_pi1[search]=1&tx_wi_pi1[search_region]=' . 
urlencode($region['uid']), 'ITEM_STATE' => 'NO');
}

/* TARGETS */
$target_rs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
     "*",
     "tx_target",
     "pid = " . $GLOBALS['TYPO3_DB']->fullQuoteStr($conf['pid'], 
'tx_target') . $GLOBALS['TSFE']->cObj->enableFields('tx_target'),
     "",
     "name"
);
foreach ($target_rs as $target) {

     if ( isset($_GET['L']) && $_GET['L'] == 1 && $target['name_ru'] != '' )
         $target['name'] = $target['name_ru'];

     $menu[2]['_SUB_MENU'][] = array('title' => $target['name'], 'uid' 
=> $conf['uid'], '_ADD_GETVARS' => 
'&tx_wi_pi1[search]=1&tx_wi_pi1[search_target]=' . 
urlencode($target['uid']), 'ITEM_STATE' => 'ACT');
}

$menuItemsArray = $menu;
?>


More information about the TYPO3-UG-Dutch mailing list