Problem mit Navigation_Main
Problem mit Navigation_Main
Hallo,
ich verwende die Navigation_Main, die beim Beispielmandanten mitgeliefert wird.
Diese blendet standardmäßig alle Unterseiten, also Seiten ab der zweiten Ebene, aus. Es wird nur die erste Ebene angezeigt. Unterseiten werden erst angezeigt, wenn man sich auf der entsprechenden übergeordneten Seite befindet.
Ich möchte aber, dass immer automatisch alle Unterseiten angezeigt werden, egal auf welcher Seite man ist.
Wie ist das möglich?
Danke im Voraus.
ich verwende die Navigation_Main, die beim Beispielmandanten mitgeliefert wird.
Diese blendet standardmäßig alle Unterseiten, also Seiten ab der zweiten Ebene, aus. Es wird nur die erste Ebene angezeigt. Unterseiten werden erst angezeigt, wenn man sich auf der entsprechenden übergeordneten Seite befindet.
Ich möchte aber, dass immer automatisch alle Unterseiten angezeigt werden, egal auf welcher Seite man ist.
Wie ist das möglich?
Danke im Voraus.
Re: Problem mit Navigation_Main
Also wenn immer alle Kategoriebäume komplett aufgeblättert sein sollen, dann nutze statt der Navigation_Main doch einfach die Sitemap...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
Re: Problem mit Navigation_Main
Dafür muss am Ende der Datei Contenido_NavMain_Util.class.php im Unterverzeichnis /cms/includes/Util/Modules eine Kleinigkeit verändert werden.
Hier die volle Datei in geändertert Form:
Hier die volle Datei in geändertert Form:
Code: Alles auswählen
<?php
/**
* Project:
* Contenido Content Management System
*
* Description:
* Recursive loop over given category for building a frontend navigation
*
* Requirements:
* @con_php_req 5.0
*
*
* @version 1.0.0
* @author Rudi Bieller
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2009-01-15
*
* $Id: Contenido_NavMain_Util.class.php 969 2009-01-19 12:32:13Z rudi.bieller $
* }}
*
*/
class Contenido_NavMain_Util {
/**
* Recursive Loop over all (sub)categories.
* Each level will be assigned a css class navmainStandardLevel_x
*
* @param Contenido_Category $oCategory
* @param Contenido_FrontendNavigation $oFrontendNavigation
* @param Template $oTpl
* @param string $sUrlStyle
* @param array $aCfg
* @param int $iLang
* @param array $aLevelInfo Information for marking active cat per levels
* @param array $aDepthInfo Info on level depth / where to stop. Format: array(iCurrentLoopCount, iMaxLoopCount)
* @return void
*/
public static function loopCats(Contenido_Category $oCategory, Contenido_FrontendNavigation $oFrontendNavigation, Template $oTpl, array $aCfg, $iLang, array $aLevelInfo, $iCurrentPageIdcat, array $aDepthInfo = array()) {
$aDepthInfo[0] = isset($aDepthInfo[0]) ? $aDepthInfo[0] + 1 : 1;
$aDepthInfo[1] = isset($aDepthInfo[1]) ? $aDepthInfo[1] : 1;
// display current item
$iItemLevel = $oFrontendNavigation->getLevel($oCategory->getIdCat());
if (!isset($aLevelInfo[$oCategory->getIdCat()])) {
$aLevelInfo[$oCategory->getIdCat()] = array();
}
$oCurrentSubcategories = $oFrontendNavigation->getSubCategories($oCategory->getIdCat());
$aLevelInfo[$oCategory->getIdCat()]['has_children'] = $oCurrentSubcategories->count() > 0;
$aLevelInfo[$oCategory->getIdCat()]['first_child_item'] = -1;
$aLevelInfo[$oCategory->getIdCat()]['last_child_item'] = -1;
$bMarkActive = $oCategory->getIdCat() == $iCurrentPageIdcat || $oFrontendNavigation->isInPathToRoot($oCategory->getIdCat(), $iCurrentPageIdcat);
if ($oCurrentSubcategories->count() > 0) {
$aLevelInfo[$oCategory->getIdCat()]['first_child_item'] = $oCurrentSubcategories[0]->getIdCat();
$aLevelInfo[$oCategory->getIdCat()]['last_child_item'] = $oCurrentSubcategories[$oCurrentSubcategories->count()-1]->getIdCat();
}
// this is just for sample client - modify to your needs!
if ($aCfg['url_builder']['name'] == 'front_content' || $aCfg['url_builder']['name'] == 'MR') {
$aParams = array('lang' => $iLang, 'idcat' => $oCategory->getIdCat());
} else {
$aParams = array('a' => $oCategory->getIdCat(),
'idcat' => $oCategory->getIdCat(), // needed to build category path
'lang' => $iLang, // needed to build category path
'level' => 1); // needed to build category path
}
// fill template with values
$oTpl->set('d', 'name', $oCategory->getCategoryLanguage()->getName());
$oTpl->set('d', 'css_level', $iItemLevel);
$oTpl->set('d', 'css_first_item', ($aLevelInfo[$oCategory->getIdParent()]['first_child_item'] == $oCategory->getIdCat() ? ' first' : ''));
$oTpl->set('d', 'css_last_item', ($aLevelInfo[$oCategory->getIdParent()]['last_child_item'] == $oCategory->getIdCat() ? ' last' : ''));
$oTpl->set('d', 'css_active_item', ($bMarkActive === true ? ' active' : ''));
try {
$oTpl->set('d', 'url', Contenido_Url::getInstance()->build($aParams));
} catch (InvalidArgumentException $e) {
$oTpl->set('d', 'url', '#');
}
$oTpl->next();
// continue until max level depth
if ($aDepthInfo[1] > $aDepthInfo[0]) {
// check if current item has sub-items to be displayed
$oSubCategories = $oFrontendNavigation->getSubCategories($oCategory->getIdCat());
if ($oSubCategories->count() > 0) {
foreach ($oSubCategories as $oSubCategory) {
self::loopCats($oSubCategory, $oFrontendNavigation, $oTpl, $aCfg, $iLang, $aLevelInfo, $iCurrentPageIdcat, $aDepthInfo);
}
}
}
}
}
?>
-
- Beiträge: 251
- Registriert: Do 10. Mär 2011, 17:02
- Wohnort: Erlangen
- Kontaktdaten:
Re: Problem mit Navigation_Main
Hallo homtata,
ganau das brauche ich auch.
Jetz hab ich aber noch ein Problem vielleicht kannst du mir dabei helfen.
Ich mochte die Unternavigation bei Mouseover per CSS einblenden dabei muss aber die Unternavigation mit einem <ul> im <li> des Hauptpunktes stehen.
Bei Contenido ist die neue Navigation aber immer nur noch mt <li> gelöst.
Gibts da eine Möglichkeit da zu ändern?
Dank im VOraus
sarronsarrron
ganau das brauche ich auch.
Jetz hab ich aber noch ein Problem vielleicht kannst du mir dabei helfen.
Ich mochte die Unternavigation bei Mouseover per CSS einblenden dabei muss aber die Unternavigation mit einem <ul> im <li> des Hauptpunktes stehen.
Bei Contenido ist die neue Navigation aber immer nur noch mt <li> gelöst.
Gibts da eine Möglichkeit da zu ändern?
Dank im VOraus
sarronsarrron
-
- Beiträge: 91
- Registriert: Mi 8. Jul 2009, 09:18
- Kontaktdaten:
Re: Problem mit Navigation_Main
Dem schließe ich mich an.. auf der onlinegeschaltenen Contenido Demoseite ist dies auch richtig programmiert. Gibts da schon ein Navigationsmodul, dass dies richtig codet?sarronsarron hat geschrieben:Hallo homtata,
ganau das brauche ich auch.
Jetz hab ich aber noch ein Problem vielleicht kannst du mir dabei helfen.
Ich mochte die Unternavigation bei Mouseover per CSS einblenden dabei muss aber die Unternavigation mit einem <ul> im <li> des Hauptpunktes stehen.
Bei Contenido ist die neue Navigation aber immer nur noch mt <li> gelöst.
Gibts da eine Möglichkeit da zu ändern?
Dank im VOraus
sarronsarrron
Aktuelle "Navigation_Main":
Code: Alles auswählen
<ul>
<li class="nav1"></li>
<li class="nav2"></li>
<li class="nav1"></li>
<li class="nav2"></li>
</ul>
Code: Alles auswählen
<ul>
<li class="nav1"></li>
<ul>
<li class="nav2"></li>
</ul>
<li class="nav1"></li>
<ul>
<li class="nav2"></li>
</ul>
</ul>
-
- Beiträge: 251
- Registriert: Do 10. Mär 2011, 17:02
- Wohnort: Erlangen
- Kontaktdaten:
Re: Problem mit Navigation_Main
Hallo prepress89,
da must du das Modul Navigation_Main aus der Version 4.8.10 verwenden dann funktioniert es wunderbar.
Falls du es nicht hast poste deine Emailadresse und ich schicke es dir.
gruß sarronsarron
da must du das Modul Navigation_Main aus der Version 4.8.10 verwenden dann funktioniert es wunderbar.
Falls du es nicht hast poste deine Emailadresse und ich schicke es dir.
gruß sarronsarron
Re: Problem mit Navigation_Main
Stimmt nicht, ein ul darf nicht direkt in ein ul liegen.prepress89 hat geschrieben:Und so wäre es richtig:Code: Alles auswählen
<ul> <li class="nav1"></li> <ul> <li class="nav2"></li> </ul> <li class="nav1"></li> <ul> <li class="nav2"></li> </ul> </ul>
Richtig wäre deshalb:
Code: Alles auswählen
<ul>
<li class="nav1">
<ul>
<li class="nav2"></li>
</ul>
</li>
<li class="nav1">
<ul>
<li class="nav2"></li>
</ul>
</li>
</ul>
René
-
- Beiträge: 251
- Registriert: Do 10. Mär 2011, 17:02
- Wohnort: Erlangen
- Kontaktdaten:
Re: Problem mit Navigation_Main
Da hast du natürlich Recht. Das Modul aus 4.8.10 macht es auch so
gruß sarronsarron
gruß sarronsarron
-
- Beiträge: 91
- Registriert: Mi 8. Jul 2009, 09:18
- Kontaktdaten:
Re: Problem mit Navigation_Main
Sorry, mein Fehler. Du hast natürlich recht. Habe ich zu schnell runtergeschrieben..Spider IT hat geschrieben:Stimmt nicht, ein ul darf nicht direkt in ein ul liegen.prepress89 hat geschrieben:Und so wäre es richtig:Code: Alles auswählen
<ul> <li class="nav1"></li> <ul> <li class="nav2"></li> </ul> <li class="nav1"></li> <ul> <li class="nav2"></li> </ul> </ul>
Richtig wäre deshalb:GrußCode: Alles auswählen
<ul> <li class="nav1"> <ul> <li class="nav2"></li> </ul> </li> <li class="nav1"> <ul> <li class="nav2"></li> </ul> </li> </ul>
René
Ich benutze die 4.8.15 und dort scheint es noch nicht mal zu funktionieren!? Ich habe es gerade mit der NavigationUniversell probiert.. da scheint dies zu gehen, aber die MainNavigation ist von der Formatierung in CSS irgendwie komfortabler..
Re: Problem mit Navigation_Main
Also eigentlich braucht man dieses zusätzliche ul-gedöns doch nur bei der horizontalen navigation... ansonsten geht die zusätzliche einfassung mit ul in den unterebenen doch meist nur um die frage, wie man z.b. den ganzen block des untermenüs besser vom hauptmenü absetzen kann. dafür ist das zusätzliche ul aber nicht nötig.
ich helfe mir so, indem ich das modultemplate für die standardnavigation wie folgt anpasse (demo, stimmt vielleicht nicht 100%):
sprich: ich dopple die css-klasse des a-tags in den umgebenden li-tag. damit weiß ich immer, a) in welchem level der navigation ich mich befinde, kann also jedes element identisch einrücken, b) welches das erste element ist, kann es also von oben gesehen absetzen, c) welches das letzte element ist, kann also nach unten platz schaffen....
hilft dieses vorgehen?
lg
ich helfe mir so, indem ich das modultemplate für die standardnavigation wie folgt anpasse (demo, stimmt vielleicht nicht 100%):
Code: Alles auswählen
<ul>
<!-- BEGIN:BLOCK -->
<li class="navmainStandardLevel_{css_level} {css_first_item}{css_last_item} {css_active_item}">
<a href="{url}" title="{name}" class="{css_first_item}{css_last_item} {css_active_item}" target="{target}">{name}</a>
</li>
<!-- END:BLOCK -->
</ul>
hilft dieses vorgehen?
lg