Hallo Experten.
Was mach ich hier falsch:
# navigation-frame
navigation.10 = TEMPLATE
navigation.10 {
template = FILE
template.file = fileadmin/templates/navigation.html
workOnSubpart = DOCUMENT_BODY
subparts.CONTENT < styles.content.get
subparts.MENU = HMENU
subparts.MENU.1 = TMENU
subparts.MENU.1.target = contentFrame
subparts.MENU.1.NO {
allWrap = <tr><td>|</td></tr>
altTarget = _blank
altTarget.if{
value = 2
isInList.field = uid
}
}
}
Das altTarget wird überall verwendet, nicht nur auf der Seite mit uid=2. Wenn ich das if etwa auf allWrap anwende, dann wird es ausgewertet, bei altTarget nicht.
Danke
Saltimbokka
Hi
ich versuchs nun mit conditions, aber leider erwisch ich da die page-id der aufgerufenen seite, nicht des menü-eintags. kann mir wirklich niemand auf die sprünge helfen:
# navigation-frame
navigation.10 = TEMPLATE
navigation.10.template = FILE
navigation.10.template.file = fileadmin/templates/navigation.html
navigation.10.workOnSubpart = DOCUMENT_BODY
navigation.10.subparts.NAVMENU = HMENU
navigation.10.subparts.NAVMENU.1 = TMENU
navigation.10.subparts.NAVMENU.1.NO.allWrap = <tr ><td>|</td></tr>
[globalVar = GP:id = 2]
navigation.10.subparts.NAVMENU.1.target = _blank
[ELSE]
navigation.10.subparts.NAVMENU.1.target = contentFrame
[GLOBAL]
navigation.stylesheet = fileadmin/css/nav.css
grüße und die hoffnung auf hilfe
saltimbokka
# navigation-frame
navigation.10 = TEMPLATE
navigation.10.template = FILE
navigation.10.template.file = fileadmin/templates/navigation.html
navigation.10.workOnSubpart = DOCUMENT_BODY
navigation.10.subparts.NAVMENU = HMENU
navigation.10.subparts.NAVMENU.1 = TMENU
navigation.10.subparts.NAVMENU.1.NO.allWrap = <tr ><td>|</td></tr>
[globalVar = TSFE:id = 2]
navigation.10.subparts.NAVMENU.1.target = _blank
[global]
navigation.10.subparts.NAVMENU.1.target = contentFrame
navigation.stylesheet = fileadmin/css/nav.css
Hallo doku.
Vielen Dank, dass du versuchst mir zu helfen, aber dein code erzeugt immer target=contentFrame, denn zuerst wird nachgeschaut ob die page-id 2 ist, das target gesetzt und dann nochmal überschrieben.
Vielleicht hab ich es auch schlecht erklärt: es soll ein menü erzeugt werden, in dem das target fast immer "contentFrame" ist, nur nicht der Eintrag für die Seite mit id=2.
Und das menü soll bei allen aufrufen so aussehen. Also unabhängig von der id oben in der url (TSFE:id), sondern abhängig von der id des menüeintrags!
Saltimbokka
1) ich hab dir nur gezeigt, wie dein condition-code richtig geschrieben wird. überprüft hab ich die wirkungsweise natürlich nicht. 8-)
2) was bitte ist die id eines menüeintrags?
ich lerne immer gerne dazu... 😉
naja, in einem TMENU stehen links, und diese enthalten als parameter ids:
<a href="index.php?id=6&type=1" target="contentFrame">Eintrag 1</a>
<a href="index.php?id=3&type=1" target="contentFrame">Eintrag 2</a>
usw.
Das Target soll nun abhängig von dieser id gesetzt werden:
<a href="index.php?id=6&type=1" target="contentFrame">Eintrag 1</a>
<a href="index.php?id=2&type=1" target="_blank">Eintrag 2</a>
<a href="index.php?id=3&type=1" target="contentFrame">Eintrag 3</a>
Eigentlich etwas, was einfach gehen sollte. Ich brings aber nicht hin!!!!
Falls es irgendjemanden interessiert: ich habs gelöst über eine user-function:
# navigation-frame
navigation.10 = TEMPLATE
navigation.10.template = FILE
navigation.10.template.file = fileadmin/templates/navigation.html
navigation.10.workOnSubpart = DOCUMENT_BODY
includeLibs.myMenu = fileadmin/php/my_menu.php
navigation.10.subparts.NAVMENU = HMENU
navigation.10.subparts.NAVMENU.1 = TMENU
navigation.10.subparts.NAVMENU.1.itemArrayProcFunc = user_myMenu
navigation.10.subparts.NAVMENU.1.NO {
allWrap = <tr><td>|</td><td></tr>
}
navigation.stylesheet = fileadmin/css/nav.css
und in my_menu.php steht:
<?php
function user_myMenu($menuArr,$conf) {
for($i=0;$i<sizeof($menuArr);$i++) {
if ($menuArr[$i]['subtitle'] == "_blank") {
$menuArr[$i]['target'] = "_blank";
$menuArr[$i]['_OVERRIDE_HREF'] = "index.php?id=".$menuArr[$i]['uid']."&type=1";
} else {
$menuArr[$i]['target'] = "contentFrame";
}
}
return $menuArr;
}
?>
Ich geh jetzt über den subtitle, den ich für sonst nix brauche, da sich die id ja bei einem Umzug ändern kann.
Nun noch eine Version mit data-wrap, basierend auf einen thread in der offiziellen englischen typo3-mailinglist:
# navigation-frame mit data-wrap
navigation.10 = TEMPLATE
navigation.10.template = FILE
navigation.10.template.file = fileadmin/templates/navigation.html
navigation.10.workOnSubpart = DOCUMENT_BODY
navigation.10.subparts.NAVMENU = HMENU
navigation.10.subparts.NAVMENU.1 = TMENU
navigation.10.subparts.NAVMENU.1.NO {
beforeWrap = <tr><td> |
linkWrap = |
doNotShowLink = 1
before.cObject = TEXT
before.cObject.field = uid
before.cObject.dataWrap = <A href="index.php?id= |&type=1" target="{field:subtitle}">
after.cObject = TEXT
after.cObject.field = title//nav_title
after.cObject.wrap = | </a>
wrapItemAndSub = | </td></tr>
}
navigation.stylesheet = fileadmin/css/nav.css
Wen´s interessiert,
es gibt noch eine einfachere Lösung mit der optionSplit funktion die leider nicht immer bei den dataTypes ausreichend dokumentiert ist:
temp.navi.1.NO.altTarget = |*| page |*| _blank
So kann ich z.B für das letzte element in meinem menu den target: _blank auswählen!
Grüße,
mcmz