Menü erstellen mit Daten aus anderen Tabellen als pages V2

Submitting your vote...
Rating: 4.9 of 5. 10 vote(s).
Click the rating bar to rate this item.

Hier ist eine verbesserte version des PHP Scripts und ein neues Typoscript beispiel, welches das PHP Script so konfiguriert, das eine GET Variable verwendet wird um eine "Seite" aktiv (ACT) zu setzen.

 

Im Typoscript für diese userFrunc kann man 2 neue parameter setzen:

 

obj.header.special.userFunc.actextkey = tx_ablinklist_pi1

 

Diese einstellung setzt den Extension key von dem die entsprechnde GET Variable für den ACT status kommt.

Und:

 

obj.header.special.userFunc.actextvar = category_uid

 

Setzt den namen der GET Variable in der Extension ( in diesem falle alles zusammen: tx_ablinklist_pi1[tx_ablinklist_pi1])

 

 


Die neue PHP class/function (Speichern unter "fileadmin/menuFunc2.inc")
-- cut --
<?php

class user_menuFunc {

function 
makeMenuArray($content,$conf) {
$menuArr = array();
$lConf $conf["userFunc."];
$actuid 0;
if (
$lConf['actextkey'] && $lConf['actextvar']) {
$getval t3lib_div::_GET();
$actuid $getval[$lConf['actextkey']][$lConf['actextvar']];
}
$res $this->cObj->exec_getQuery($lConf["table"],$lConf["select."]);
if (
$error $GLOBALS['TYPO3_DB']->sql_error()) {
$GLOBALS['TT']->setTSlogMessage($error,3);
}
else {
$GLOBALS['TT']->setTSlogMessage('NUMROWS:'.$GLOBALS['TYPO3_DB']->sql_num_rows($res));
while (
$row $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
if (
$actuid!=&& $actuid==$row['uid']) $row['ITEM_STATE']='ACT';
$menuArr[] = $row;
}
}
return 
$menuArr;
}

}

?>
-- cut --

 

 

Das neue Typoscript Beispiel:

 

-- cut --
page.includeLibs.menustuff = fileadmin/menuFunc2.inc

obj.header = HMENU
obj.header.special = userfunction
obj.header.special.userFunc = user_menuFunc->makeMenuArray
# Die Tabelle setzen aus der man das Menü generieren möchte
# In diesem Beispiel word die Modern Linklist (ab_linklist) extension verwendet.
obj.header.special.userFunc.table = tx_ablinklist_category

# uid der Seite wo diese Records gespeichert sind
obj.header.special.userFunc.select.pidInList = 91
#den Extension key von dem die entsprechnde GET Variable für den ACT status kommt.
obj.header.special.userFunc.actextkey = tx_ablinklist_pi1
#Setzt den namen der GET Variable in der Extension ( in diesem falle alles zusammen:  tx_ablinklist_pi1[tx_ablinklist_pi1])
obj.header.special.userFunc.actextvar = category_uid
obj.header.1 = TMENU
obj.header.1 {
  NO {
    doNotLinkIt = 1
    stdWrap.field = label
    stdWrap.typolink.useCacheHash = 1
    stdWrap.typolink.parameter.data = page:uid
    stdWrap.typolink.additionalParams.dataWrap = &tx_ablinklist_pi1[category_uid]={field:uid}
    #stdWrap.data = debug:data
    allWrap = |<br>
  }
  ACT < .NO
  ACT = 1
  ACT.allWrap = <b>|</b><br>
}

page.7911 < obj.header
-- cut --

 

Dieses Snippet wurde von Peter Klein eingesendet




Comments


Mike, 05-02-08 21:35:
Hallo, ist es mit diesem Script auch möglich, in ein bestehendes Menü, auf Level2 eine weitere Menü-Ebene einzufügen. Oder gibt es irgendeinen Ansatz dafür, wie ich das lösen könnte?
daniel, 18-10-08 13:03:
würde ich auch gerne wissen!
Tobias, 07-07-09 17:16:
Ja, ist möglich, habe es bei mir laufen, einfach im bestehenden Menü das after-objekt benutzen, siehe mein beispiel welches für den aktuell ausgewählten Menüpunkt das Untermenü speziell erweitert.

CUR {
after.cObject = HMENU
after.cObject < temp.extmenu
}
Timo, 01-05-10 14:05:
Für weitere Ebenen muss unter $menuArr[] = $row folgenes eingefügt werden:

$conf["userFunc."]["select."]["pidInList"]= $row["uid"];
if ($submenu = $this->makeMenuArray($content,$conf)) {
$menuArr[count($menuArr)-1][_SUB_MENU][] = $submenu[0];
}

Dann ist ein Zugriff über 2 < .1 möglich. Da das $menuItemsArray über das interne Feld "_SUB_MENU" erweitert wird.
Timo, 01-05-10 14:11:
Für weitere Ebenen muss unter $menuArr[] = $row folgenes eingefügt werden:

$conf["userFunc."]["select."]["pidInList"]= $row["uid"];
if ($submenu = $this->makeMenuArray($content,$conf)) {
$menuArr[count($menuArr)-1][_SUB_MENU] = $submenu;
}

Dann ist ein Zugriff über 2 < .1 und 3 < .1 ff. möglich. Da das $menuItemsArray über das interne Feld "_SUB_MENU" erweitert wird.

Read more: http://www.typo3wizard.com/de/snippets/menus/menues-erstellen-mit-daten-aus-anderen-tabellen-als-pages-v2.html#ixzz0mgAGyhod
Under Creative Commons License: Attribution

Add comment

* - required field

*



*
*

Top 10 Updates

Login geändert am  14-Aug-2010 13:50:17
Schöne Schriften mit Google Font API geändert am  20-May-2010 16:36:59
TS basierte Searchbox für Indexed Search geändert am  18-May-2010 18:26:54
TYPO3 SEO geändert am  30-Apr-2010 09:43:20
Suchmaschinenfreundliche grafische Überschriften in TYPO3 geändert am  30-Apr-2010 09:33:56
Erstellen eines einfachen Infocenters mit TYPO3  geändert am  17-Nov-2009 12:11:22
Funktionierendes Section Menu mit TemplaVoila geändert am  05-May-2009 12:42:40
"Nicht im Menü" in Sitemap anzeigen geändert am  05-May-2009 12:12:24
Implementation des DHTML Menüs von brainjar.com  geändert am  01-Feb-2009 14:01:36
Beispiel DHTML Menü geändert am  01-Feb-2009 13:47:38

Latest comments

01-Sep-2010 20:38:32
Ben Heuwing schrieb: Damit die aktuelle Seite nicht verlinkt wird, wie bei normalen Menüs den MENUITEMSTATE CUR...
Klickpfad / Rootline Menu / Breadcrumb Menu
31-Aug-2010 17:16:13
Peter schrieb: Hallo Zusammen, ich hätte eine Frage: Ich würde gerne den Seitentitel der ersten Ebene oberhalb...
Seitentitel von übergeordneter Seite ausgeben
26-Aug-2010 21:32:42
Mo schrieb: Aktuell:...
Mehrere Domains in einer Typo3 Installation verwalten
English
Suche: