Hallo erstmal!
Also: Ich hab meine Navigation in zwei Teile aufgeteilt: Ein Horizintales für die erste Ebene (Mainmenü) und einst für die zweite bis vierte Ebene (Submenü)
Jetzt will ich aber, dass wenn das Submenü keinen Elemente enthält, dann soll es nicht angezeigt werden. wie mache ich das?
Hier ein Beispiel wie ich das meine:
[ --> Bedingung <-- ]
temp.submenu = COA
temp.submenu {
10 = HMENU
10.entryLevel = 1
[...]
[ELSE]
temp.submenu = COA
temp.submenu {
10 = HMENU
10.wrap =
10.1 = TMENU
10.1.value =
}
[END]
Tschüss Vinni10
Sag den Seiten, die nicht angeführt werden dürfen doch einfach, dass sie nicht im Menü erscheinen sollen?
Meinst du das?
Ich mein das anders! Das Submenü hat am Anfang und am Ende eine grafik. die werden über wrap eingefügt. jetzt sieht das aber sch**** aus wenn da keine Elemente angezeigt werden also die rootseite keine Unterseiten hat!
Ich will ja nur wissen wie ich Prüfen kann ob die erste Ebene Unterseiten enthält!
Gruß Vinni10
vielleicht gehts ja anders... es gibt auch den Menüzustand IFSUB...
lg georg
Kannst du mir mal ein Beispiel geben wie das mit zwei getrennten menüs geht?
Eigtl. müsste es doch irgendwas geben wie das geht!
[ --> Bedingung <-- ]
temp.submenu = COA
temp.submenu {
10 = HMENU
10.entryLevel = 1
[...Gekürzt...]
[ELSE]
temp.submenu = COA
temp.submenu {
10 = HMENU
10.wrap =
10.1 = TMENU
10.1.value =
}
[END]
Cu Vinni10[/quote]
naja ich kenn dein Menü nicht wirklich, aber vielleicht (!) kann man das Pferd eben von der anderen Richtung aufzäumen...
Bsp wäre das Menü hier http://ringer.gosaunet.at/ oder auch jedes andere...
Ebene 1 => IFSUB-Zustand verwenden....
lg georg
Hallo, Vini,
ich hatte ein ähnliches Problem wie Du (Menü war zwar weg, wenn kein Unterverzeichnis - aber der Wrap noch da).
Habe es wie folgt gelöst:
1) Im Forum gesucht (leider weiss ich nicht mehr die Begriffe 🙁 )
2) Dort ne Spur gefunden...
3) und wie folgt verfeinert:
Der folgende PHP-Code kommt in die typo3conf/localconf.php.
Wichtig: Beachte, dass Du diesen Code vor der Zeile "## INSTALL SCRIPT EDIT POINT TOKEN - all lines after this points may be changed by the install script!" einfügst (mit etwas Englisch selbsterklärend, warum).
// USER Functions by Falk Walter - Kommentar kannst Du gerne abändern.
function user_condition($conditionValue) {
global $GLOBALS;
switch($conditionValue) {
case "pageHasSubpages":
if(sizeof($GLOBALS["TSFE"]->sys_page->getMenu($GLOBALS["TSFE"]->id)) !=0) {
return true;
}
break;
case "pageHasNoSubpages":
if(sizeof($GLOBALS["TSFE"]->sys_page->getMenu($GLOBALS["TSFE"]->id)) !=0) {
return false;
} else {
return true;
}
break;
}
}
## INSTALL SCRIPT EDIT POINT TOKEN - all lines after this points may be changed by the install script!
Das kommt noch VOR Dein PAGE-Objekt ins TS-Setup:
# Builds secondary navigation
# Needed Constants:
# - secondaryNavigation.header_lang = string (Header for secondary Navigation Box)
lib.secondaryNavigation = COA
lib.secondaryNavigation {
wrap = <div id="secondaryNavigation">|</div>
10 = TEXT
10.dataWrap = <h3 class="secondaryNavigation">{leveltitle:1}</h3>
20 = HMENU
20.entryLevel = 1
20.1 = TMENU
20.1 {
wrap = <ul>|</ul>
ACT = 1
NO.allWrap = <li class="secondaryNavigationNotActive">|</li>
NO.ATagTitle.field = abstract // description // title
ACT.allWrap = <li class="secondaryNavigationActive">|</li>
ACT.ATagTitle.field = abstract // description // title
ACT.stdWrap.wrap = <span class="secondaryNavigationActive">|</span>
}
}
# Empties lib.secondaryNavigation if there are pages on the second level
[treeLevel = 1] && [userFunc = user_condition(pageHasNoSubpages)]
lib.secondaryNavigation >
[end]
Hoffe, das hilft,
Falk
Ja genau das meinte ich!!
Nur bekomme ich immer einen Error:
Fatal error: Cannot redeclare user_condition() (previously declared in /var/www/vhosts/domain.de/httpdocs/typo3conf/localconf.php:19) in /var/www/vhosts/domain.de/httpdocs/typo3conf/localconf.php on line 19
hab schon viel rumprobiert aber es net hinbekommen!!
$TYPO3_CONF_VARS['SYS']['sitename'] = 'Blank DUMMY';
// Default password is "joh316" :
$TYPO3_CONF_VARS['BE']['installToolPassword'] = '******************';
$TYPO3_CONF_VARS['EXT']['extList'] = '[...]';
$typo_db_extTableDef_script = 'extTables.php';
// ClearMenü if no Items by Falk Walter
//TS:
//# Empties lib.secondaryNavigation if there are pages on the second level
//[treeLevel = 1] && [userFunc = user_condition(pageHasNoSubpages)]
// lib.secondaryNavigation >
//[end]
function user_condition($conditionValue) {
global $GLOBALS;
switch($conditionValue) {
case "pageHasSubpages":
if(sizeof($GLOBALS["TSFE"]->sys_page->getMenu($GLOBALS["TSFE"]->id)) !=0) {
return true;
}
break;
case "pageHasNoSubpages":
if(sizeof($GLOBALS["TSFE"]->sys_page->getMenu($GLOBALS["TSFE"]->id)) !=0) {
return false;
} else {
return true;
}
break;
}
}
//---------------------
## INSTALL SCRIPT EDIT POINT TOKEN - all lin...
Thx Vinni10
Servus,
was ich noch vergessen habe, Du brauchst für ein logisches UND bei einer TS-Bedingung noch eine Extension aus dem Repository: http://typo3.org/extensions/repository/search/conditions/0.0.1/
Aber das wird Dein Problem alleine wahrscheinlich nicht lösen - oder vielleicht doch?
Zum Test kannst Du im TS einfach mal folgendes löschen:
"[treeLevel = 1] && "
Grüßle
Falk
Also beides löst das Problem net!
Irgendwie wird localconf.php 2mal ausgeführt!
Info: Version 3.8.1
Vinni10
Hmmmm... bei mir tut es (3.8.0)... ich glaube aber nicht, dass es an der Version liegt. Habe auch am Code nichts verändert...
Georg, weisst Du da event. weiter? Sollte ja eigentlich ne Standardsache sein... https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Syntax/Conditions/Index.html#typoscript-syntax-implementing-custom-conditions
Was passiert denn, wenn Du das Beispiel aus der Referenz benutzt? Ein ausführlicheres Beispiel findest Du auch in der offiziellen TS-Referenz https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Index.html
Grüßle
Falk
P.s.: Ist die Condition auch ja NICHT innerhalb einer Klammer gesetzt?
Hab ne lösung!
if(!function_exists(user_condition)){
function user_condition($conditionValue) {
global $GLOBALS;
switch($conditionValue) {
case "pageHasSubpages":
if(sizeof($GLOBALS["TSFE"]->sys_page->getMenu($GLOBALS["TSFE"]->id)) !=0) {
return true;
}
break;
case "pageHasNoSubpages":
if(sizeof($GLOBALS["TSFE"]->sys_page->getMenu($GLOBALS["TSFE"]->id)) !=0) {
return false;
} else {
return true;
}
break;
}
}
}
Thx Vinni10
Wenn ich das Bsp aus der doku nehme kommt dat gleiche! Naja, muss ich halt immer ne If drum machen!
Tschüss Vinn10
Hallo Vinni,
da lief irgendwas komisch, aber das Baby ist ja nun zur Welt gekommen 😃
Grüßle
Falk