--- Original Nachricht ---
Absender:   Koller Michel
Datum:       17.12.2009 11:06:
[...]
Im TSREF steht darüber:
It goes like this:
$menuItemsArray[] = pageRow1;
mir ist hier nicht klar wie die Struktur des geforderten Arrays aussehen soll der zurückgeben werden muss, ich vermute das "pageRow1" wieder ein Array sein soll mit den Daten des Datensatzes drin?

Dann steht:
A "pageRow" is a record from the table "pages" with all fields selected (SELECT * FROM...)

Also hier aus der Tabelle "pages" in meinem falle aber aus der Tabelle der Datensätze aus denen ich eine Navi machen möchte?

Dann steht noch:
If you create fake page rows, make sure to add at least "title" and "uid" field values.

....also im Minimum das Feld Titel und uid. Da meine Navi aber immer die selbe Seite aufrufen soll nur mit anderen Parametern (also der uid des Datensatzes).

Ich tu mich hier echt schwer, evt kann mir jemand mitteilen wo ich den Denkfehler habe

Danach sollte man im Typoscript denn Array so übergene können denke ich :

lib.contentNavi.special = userdefined
lib.contentNavi.special.file < plugin.tx_meinplugin2_pi2

Hilft das Bespiel nun weiter:
SETUP
#PRS+ 20060527
[PIDinRootline={$plugin.tx_fdfxwekuartists_pi1.pid}]
includeLibs.wekuartists = EXT:fdfx_weku_artists/pi1/class.tx_fdfxwekuartists_pi1.php
temp.AtoZMenu=COA
temp.AtoZMenu{
        10=TEXT
        10{
                value=Künstlermenü
                wrap=<div style="display:none;">|</div>
        }
        20=HMENU
        20{
                special = userfunction
                special.userFunc=tx_fdfxwekuartists_pi1->makeMenuArray
                wrap=<ul class="mainNavi2">|</ul>
                1 = TMENU
                1 {
                        target=_top
                        NO = 1
                        NO {
                                allWrap=<li class="mainNavi2No 
mainNavi2NO-WEKU">|</li>
                        }

                        ACT = 1
                        ACT < .NO
                        ACT {
                                allWrap=<li class="mainNavi2Act 
mainNavi2ACT-WEKU">|</li>
                        }
                        
                        IFSUB = 1
                        IFSUB < .NO
                        IFSUB{
                                allWrap=<li class="mainNavi2No 
mainNavi2SUB-WEKU">|</li>
                        }
                }
        }
}
#Gegebenenfalls die beiden Zeilen in MAINsetup kopieren.
page.10.subparts.wkMainNavi2 >
page.10.subparts.wkMainNavi2 < temp.AtoZMenu
[end]
#PRS- 20060527

Und die Funktion:
        function makeMenuArray($content,$conf) {
                $lConf= $conf['userFunc.'];
                $this->pi_setPiVarDefaults();
                $this->pi_loadLL();
$menu= $this->makeAlphabetIndexMenuArray($GLOBALS['TSFE']->tmpl, $GLOBALS['TSFE']->sys_page, '', $lConf, 1);
                return $menu;
        }
        
function makeAlphabetIndexMenuArray(& $tmpl, & $sys_page, $id= '', $conf= array (), $mCount= 1)
        {
                $menuArr=array();
                $retMenu= array ();
                
if(!isset($_GET['listindex']) || empty($_GET['listindex'])) $listIndex='A';
                else $listIndex=$_GET['listindex'];

                /* generate alphabetical index */
                for($i=65; $i<91; $i++) {
                        $params=array('listindex' => chr($i),);
$cHashArray=t3lib_div::cHashParams(t3lib_div::implodeArrayForUrl('',$params));
                        
$params['cHash']=t3lib_div::shortMD5(serialize($cHashArray));
                        
$linkData=$this->pi_getPageLink($GLOBALS['TSFE']->id,'',$params);
                        
                        // basic menu data
                        $tmpMenu=array(
                                'title' => strtoupper(chr($i)),
                                'subtitle' => 'K&uuml;nstlerindex '.chr($i),
                                '_OVERRIDE_HREF' => $linkData,
                        );

                        // default item state
                        if(chr($i)==$listIndex) { $subArray=array('ITEM_STATE' 
=> 'ACT'); }
                        else { $subArray=array('ITEM_STATE' => 'IFSUB'); }
                        $tmpMenu=t3lib_div :: array_merge($tmpMenu, $subArray);
                        unset($subArray);
                        
                        $menuAry[]=$tmpMenu;
                        unset($tmpMenu);
                }
                // get initials of all artists
                $artistInit=array();
                $table='tx_fdfxwekuartists';
                $result=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
                        'ucase(left(last_name,1)) as initial, count(last_name) 
as counter',
                        $table,
                        ' 1=1 '.$this->cObj->enableFields('tx_fdfxwekuartists'),
                        'initial',
                        'initial'
                );
                while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
                        $artistInit[$row['initial']]=$row['counter'];
                }
                
                // no initials -> item state "no"
                if(is_array($menuAry))
                {
                        reset($menuAry);
                }
                else
                {
                        $menuAry=array();
                }
                foreach ($menuAry as $key => $item) {
                        $initial=$item['title'];
                        if(!isset($artistInit[$initial])) {
                                $item['ITEM_STATE']='NO';
                        }
                        $retMenu[]=$item;
                }
                return $retMenu;
        }

Greets.




--
loans that change lives http://www.kiva.org

_____________________________
uon GbR
http://www.uon.li
http://www.xing.com/profile/Peter_Russ
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an