Knowledgebase:Menu Navigation

From Cloudrexx Development Wiki
Jump to: navigation, search
FAQ

Allgemeines

Design & Navigation

Module

Fehlerbehebung

Seite ohne Navigation?

Frage

Kann ich mit Contrexx eine Seite erstellen, die beim aufrufen keine Navigation hat? Also nur die reine Textseite?

Antwort

Damit Sie eine Seite ohne Navigation erstellen können, müssen Sie ein zusätzliches Design erstellen und in diesem den Platzhalter für die Navbar entfernen. Sie können auch einfach das bestehende Design duplizieren (Administration >Designverwaltung >Neue Designvorlage erstellen >Von Vorlage) und den Navbar-Platzhalter entfernen. Anschließend müssen Sie im Content Manager der Seite, welche keine Navigation aufweisen soll, das angepasste Design unter den Erweiterten Optionen zuordnen.

Navigation mit Buttons?

Frage

Kann ich eine Navigation mit Buttons erstellen?

Antwort

Von einer Navigation mit Buttons würden wir abraten, so ist die ganze Dynamik des Systems weg. Natürlich kannst Du die navbar.html (in der Designverwaltung) anpassen und die Buttons einfügen und statisch verlinken. Fixe Navigationsbuttons können aber auch direkt im index.html eingefügt werden.

<a href="?section=news"><img src="pfad/zum/bild.gif" alt="News" title="News"></a>
<a href="?section=guestbook"><img src="pfad/zum/bild.gif" alt="G&auml;stebuch" title="G&auml;stebuch"></a>

Die Grafiken "dynamisch" erzeugen zu lassen geht nicht.

Navigation per <ul> und <li> verschachteln

Frage

Kann die Navigation auch semantisch korrekt mit <ul>- und <li>-Tags verschachtelt werden? Wie muss so eine Navigation eingebunden werden?

Antwort

Das ist seit der Version 1.0.9 möglich. Eingebunden wird ein verschachteltes Menü beispielsweise folgendermassen:

<!-- BEGIN nested_navigation -->
[[levels_13]]
<!-- BEGIN level -->
<a href="[[URL]]" title="[[NAME]]">[[NAME]]</a>
<!-- END level -->
<!-- END nested_navigation -->

In diesem Beispiel wird ein dreifach verschachteltes Menü mit den Ebenen 1 bis 3 dargestellt. Im Gegensatz zu normalen Menüs (navigation) oder Dropdown-Menüs (navigation_dropdown) werden die verschachtelten Menüs mit nested_navigation eingeleitet. Die Ebenen werden mit dem [[level_XY]]-Platzhalter bestimmt. Die Ebenen werden wie bei folgenden Beispielen bestimmt:

[[levels_13]]: Ebenen 1-3;
[[levels 11]]: Nur eine Ebene, mit level 1;
[[levels_2+]]: Alle Ebenen ab level 2.

Der Output könnte z. B. folgendermassen aussehen:

<ul id='menu_level_1'>
    <li class="active"><a href="url1">name1</a>
    <ul id='menu_level_2'>
        <li class="inactive"><a href="url2">name2</a></li>
        <li class="active"><a href="url3">name3</a></li>
    </ul></li>
    <li class="inactive"><a href="url4">name4</a></li>
    <li class="inactive"><a href="url5">name5</a></li>
</ul>

Jede Menüebene bekommt automatisch einen Stylenamen in Abhängigkeit des Levels (z.B. menu_level_1, menu_level_2). Alle Menüebenen können dann per CSS problemlos formatiert werden, wie in diesem Beispiel für die Ebene 2:

ul#menu_level_2 {
    width: 760px;
    height: 24px;
    background-color: green;
}
ul#menu_level_2 li {
    list-style: none;
    height: 24px;
}
ul#menu_level_2 li a {
    color: red;
    font-weight: bold;
}
ul#menu_level_2 li a:link, ul#menu_level_2  li a:visited {
    text-decoration: none;
}
ul#menu_level_2 li a:hover, ul#menu_level_2  li a:active, ul#menu_level_2 li.active a {
    text-decoration: underline;
}

Externer Link im Menu

Frage

Wie kann ich einen externen Link im Menu einfügen?

Antwort

Dazu müssen Sie die zu verlinkende Seite im Content Manager geöffnet haben. Dann gehen Sie auf Erweitert und fügen unter Redirekt URL die gewünschte Adresse ein.

Brotkrumenpfad

Frage

Wie kann ich einen Brotkrumenpfad einfügen?

Antwort

Ich denke, dass du auf der Suche nach der Variable [[NAVTREE]] bist. Diese kannst Du in content.html / home.html (Designmanager) einfügen. Am besten gleich in der Kombination mit [[CONTENT_TITLE]] verwenden.

Hierzu ein Beispiel:

[[NAVTREE]][[CONTENT_TITLE]]
ergibt beispielsweise
Hauptkategorie > Unterkategorie > Seitentitel

Brotkrumenpfad formatieren

Frage

Ich würde gerne den Klickpfad, der mit [[NAVTREE]] eingefügt wird, formatieren. Ich möchte nämlich anstatt des > zwischen den Links ein » angezeigt bekommen.

Antwort

Das lässt sich in der Datei /core/Navigation.class.php ändern. Und zwar mit dem Ändern der Separator Variable auf Zeile 23.

var $separator = " > ";

Mehr als zwei Navigationsplatzhalter benutzen

Frage

Kann ich z.B. auch einen dritten Platzhalter für die Navigation verwenden?

Antwort

Standardmässig wird Contrexx ab dem Release 1.2 mit vier Navigationsplatzhaltern ausgeliefert.
NAVBAR_FILE, SUBNAVBAR_FILE, SUBNAVBAR2_FILE und SUBNAVBAR3_FILE.

Sollte dies nicht reichen, so kannst Du jederzeit im Code zwei Änderungen vornehmen und schon
sind die Navigationsplatzhalter nach belieben erweiterbar!

index.php:
'SUBNAVBAR_FILE'       => $objNavbar->getNavigation($themesPages['subnavbar'],$boolShop),

kopiere diese Zeile und modifiziere Sie wie folgt:
'SUBNAVBAR4_FILE'     => $objNavbar->getNavigation($themesPages['subnavbar4'],$boolShop),


core/Init.class.php:
$this->templates['subnavbar'] = file_get_contents(ASCMS_THEMES_PATH.'/'.$themesPath.'/subnavbar.html');

kopiere diese Zeile und modifiziere Sie wie folgt:
$this->templates['subnavbar4'] = file_get_contents(ASCMS_THEMES_PATH.'/'.$themesPath.'/subnavbar4.html');

Danach solltest Du noch die entsprechenden HTML-Dateien im Ordner Themes anlegen und schon kanns losgehen.