[TYPO3-german] Navigation aus Datensatzfeldern der eigenen Extension
Peter Russ
peter.russ at 4many.net
Thu Dec 17 11:13:50 CET 2009
--- 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ü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
More information about the TYPO3-german
mailing list