Probleme mit IProcFunc wurde Beantwortet

Autor Nachricht
Verfasst am: 15.05.2008 [20:37]
susanne

[Themenersteller]
dabei seit: 24.08.2005
Beiträge: 123

Hallo zusammen,

ich möchte in meinem Menu gewisse Änderungen an den Einträgen der zweiten Ebene vornehmen. Dazu habe ich IProcFunc benutzt.

Template
Typoscript:Zeilennummerierung:  An / Aus

  1. //---------------------------------
  2. // LEFTMENU
  3. //---------------------------------
  4. page.includeLibs.user_functions = typo3conf/ext/vip_util/class.vip_user_functions.php
  5. page.10.marks.LEFTMENU = HMENU
  6. page.10.marks.LEFTMENU{
  7.       entryLevel = 2
  8.      
  9.  
  10.       // 1.Menuebene = Textmenu
  11.       1 = TMENU
  12.       1{
  13.         wrap = <ul>| </ul>
  14.         noBlur = 1
  15.  
  16.         //Normalfall
  17.                 NO.wrapItemAndSub = <li>|</li>
  18.                 NO.stdWrap.fieldtitle
  19.        
  20.         // Mit Unterpunkten
  21.         IFSUB = 1
  22.         IFSUB.wrapItemAndSub = <li>|</li>
  23.         IFSUB.stdWrap.fieldtitle
  24.                 IFSUB.ATagParams = class="with_subs"
  25.  
  26.         ACT = 1
  27.         ACT.wrapItemAndSub = <li>|</li>
  28.                 ACT.ATagParams = class="with_subs_open"
  29.                
  30.         // Angewählt
  31.         CUR = 1
  32.         CUR.wrapItemAndSub = <li>|</li>
  33.         CUR.ATagParams = class="active"
  34.         CUR.stdWrap.fieldtitle
  35.  
  36.         CURIFSUB = 1
  37.         CURIFSUB.wrapItemAndSub = <li>|</li>
  38.                 CURIFSUB.ATagParams = class="with_subs_open_active"          
  39.                 CURIFSUB.stdWrap.fieldtitle
  40.        
  41.       }
  42.      
  43.       // 2.Menuebene = Textmenu
  44.       2 = TMENU
  45.       2{
  46.      
  47.       IProcFunc = user_functions->getMenuClass
  48.         wrap = <ul>|</ul>
  49.         NO = 1
  50.         NO.linkWrap = <li>|</li>
  51.         NO.stdWrap.fieldtitle
  52.         noBlur = 1
  53.  
  54.         // CUR aktivieren
  55.         CUR = 1
  56.         CUR.linkWrap = <li>|</li>
  57.         CUR.stdWrap.fieldtitle
  58.         CUR.ATagParams = class="active"
  59.       } 
  60.      
  61.             // 2.Menuebene = Textmenu
  62.       3 = TMENU
  63.       3{
  64.         expAll = 1
  65.         wrap = <ul>|</ul>
  66.         NO = 1
  67.         NO.linkWrap = <li>|</li>
  68.         NO.stdWrap.fieldtitle
  69.         noBlur = 1
  70.  
  71.       }       
  72.    
  73. }// Ende LEFTMENU
  74.  


Die zugehörige Funktion sieht so aus:
Php:Zeilennummerierung:  An / Aus

  1. function getMenuClass($menuArray,$conf){
  2.                 $res =
  3.                 $GLOBALS['TYPO3_DB']->exec_SELECTquery(
  4.                                         'tx_vippages_todo_page',
  5.                                 'pages',
  6.                                         'uid='.$menuArray['uid'].' and tx_vippages_todo_page=1'
  7.                 );
  8.  
  9.                 if ($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))   {
  10.                         $menuArray['val']['ATagParams'] ='class="todo"';
  11.                 }else{
  12.                         $menuArray['val']['ATagParams'] ='class="nottodo"';
  13.                 }
  14.  
  15.                 print_r($menuArray);
  16.                 return $menuArray;
  17.  
  18.         }


Die Debug-Ausgabe zeigt mir auch, dass die entsprechenden Änderungen am $menuArray durchgeführt worden sind.

Aber leider ändert sich am Menu nichts. Ich hatte den Eintrag in TS-Ref so verstanden, dass die Änderungen zurückgegeben werden. Aber ich scheine wohl etwas vergessen zu haben. Ich hoffe es einer von Euch hat eine Idee.

Tschau Susanne
Verfasst am: 15.05.2008 [22:16]
friction48


dabei seit: 02.12.2003
Beiträge: 213

Hi,

versuch das ganze mal so zusammen zu bauen:

Php:Zeilennummerierung:  An / Aus

  1. if ($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))   {
  2.     $menuArray['parts']['ATag_begin'] = '<a href="'.$menuArray['linkHREF']['HREF'].'" title="'.$menuArray['title'].'"  class="todo">';
  3. }
  4. ...


icon_biggrin.gif

TYPO3-Typoscript-Snippets und Tutorials auf www.l-base.de
Verfasst am: 16.05.2008 [10:50]
susanne

[Themenersteller]
dabei seit: 24.08.2005
Beiträge: 123

Hallo friction48,

vielen Dank. Nun klappt es. Das war wohl das, was mir der Satz
Typoscript:Zeilennummerierung:  An / Aus

  1. Vor dem Aufruf dieser Funktion wird das Menüelement durch implode()ierung des Arrays $I[parts] im weitergegebenen Array. Daher können Sie dies verändern, wenn Sie wollen.


in der TSRef sagen sollte. Aber ich finde, dass dieser so seltsam formuliert ist, dass man nur schwer dahinter kommt.

Nun klappt es auf jeden Fall.

Tschau Susanne




 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 07.07.
in Espelkamp:
Montag, 04.08.

TYPO3 Intensivschulung
in Espelkamp:
Mi., 06.08. - Fr., 08.08.
in Würzburg:
Mo., 18.08. - Mi., 20.08.
in Köln:
Mo., 01.09. - Mi., 03.09.
in Berlin:
Mi., 24.09. - Fr., 26.09.

TYPO3 Extensionschulung
in Berlin:
Mo., 14.07. - Mi., 16.07.
in Espelkamp:
Mo., 11.08. - Mi., 13.08.