BC 1.3 Frage zu Menü Syntax
Re: BC 1.3 Frage zu Menü Syntax
Ich weiß jetzt nicht ob Du Bootstrap 3 oder 4 benutzt, für 3 versuch mal:
{cat_fullmenu(1, top_ul_class: "navbar-nav mr-auto", ul_class: "dropdown-menu", li_class: "nav-item", link_class: "nav-link", current: "active", child: "dropdown", first: "", last: "" )}
Wenn Du bei einer mehrstufigen Hierarchie auf einer Unterseite bist, werden die übergeordneten Seiten noch mit einer Klasse "trail_item" versehen. Falls Dich das stört, kannst Du die auch noch abschalten:
trail_li_class: ""
first, last, trail_li_class wären hilfreich, wenn Du jeweils die erste oder letzte Seite auf einer Ebene anders gestalten möchtest, oder eben den "Pfad" bei einer Unterseite. Ansonsten hast Du bei einem mehrstufigen Menü in der Navbar das Problem, dass die Root-Seite, die zu der Unterseite gehört, nicht als "aktiv" markiert ist. Mit der trail_li_class kannst Du das ändern.
{cat_fullmenu(1, top_ul_class: "navbar-nav mr-auto", ul_class: "dropdown-menu", li_class: "nav-item", link_class: "nav-link", current: "active", child: "dropdown", first: "", last: "" )}
Wenn Du bei einer mehrstufigen Hierarchie auf einer Unterseite bist, werden die übergeordneten Seiten noch mit einer Klasse "trail_item" versehen. Falls Dich das stört, kannst Du die auch noch abschalten:
trail_li_class: ""
first, last, trail_li_class wären hilfreich, wenn Du jeweils die erste oder letzte Seite auf einer Ebene anders gestalten möchtest, oder eben den "Pfad" bei einer Unterseite. Ansonsten hast Du bei einem mehrstufigen Menü in der Navbar das Problem, dass die Root-Seite, die zu der Unterseite gehört, nicht als "aktiv" markiert ist. Mit der trail_li_class kannst Du das ändern.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is
Re: BC 1.3 Frage zu Menü Syntax
Erstmal vielen Dank für die immer wieder schnelle Hilfe von Euch
Ich benutze Bootstrap 4, habe dafür eine eigene lib_bootstrap_4 "gebaut". Allerdings nicht ganz so umfangreich wie Eure originale lib_bootstrap.
Habe nur die Bootstrap 4.4.1 Dateien und die dazugehörigen Bootswatch Varianten (es gibt ein paar Neue und 2 Namensänderungen) eingebunden.
Beim SM2 ist die Startseite gleich "aktiv" im Menü sichtbar.
Ich benutze Bootstrap 4, habe dafür eine eigene lib_bootstrap_4 "gebaut". Allerdings nicht ganz so umfangreich wie Eure originale lib_bootstrap.
Habe nur die Bootstrap 4.4.1 Dateien und die dazugehörigen Bootswatch Varianten (es gibt ein paar Neue und 2 Namensänderungen) eingebunden.
Grundsätzlich geht es so, nur beim ersten Aufruf ist kein Menüeintrag als aktiv gesetzt. Nach dem ersten Menü Aufruf ist alles normal.{cat_fullmenu(1, top_ul_class: "navbar-nav mr-auto", ul_class: "dropdown-menu", li_class: "nav-item", link_class: "nav-link", current: "active", child: "dropdown", first: "", last: "" )}
Beim SM2 ist die Startseite gleich "aktiv" im Menü sichtbar.
Re: BC 1.3 Frage zu Menü Syntax
Hmm, mit erstem Aufruf meinst Du vermutlich die Root-Seite? Vielleicht wird die vom Page Helper nicht korrekt als "current" markiert. Schau ich nochmal.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is
Re: BC 1.3 Frage zu Menü Syntax
Tausch mal die Datei ./framework/CAT/Helper/Page.php mit der angehängten aus.
- Dateianhänge
-
- Page.zip
- (22.03 KiB) 168-mal heruntergeladen
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is
Re: BC 1.3 Frage zu Menü Syntax
Das sollte es gewesen sein ... nun sieht es gut aus
HTML:
Die Entwicklertools zeigen es auch:
DANKE !! für Deine Hilfe !!
HTML:
Die Entwicklertools zeigen es auch:
DANKE !! für Deine Hilfe !!
Re: BC 1.3 Frage zu Menü Syntax
Danke für Deine Frage! So kann ich das gleich noch als Korrektur in das nächste Release mit aufnehmen.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is
Re: BC 1.3 Frage zu Menü Syntax
wenn man so helfen kann ... immer gerne.
Eine Bitte habe ich dann noch. Wenn es eine vollständige Liste der catMenü Optionen gibt, kannst du die mal veröffentlichen?
Mir waren einige Möglichkeiten nicht bekannt.
Es ist im Moment nicht zwingend, aber ich würde gerne noch das hier realisieren:
In der Bootstrap Navbar wird beim Dropdopwn (auf Unterseiten) eine DIV Klasse (dropdown-menu) eingeschoben:
Für SM2 ist das problematisch, bzw. wird wohl nicht sauber unterstützt (laut Google-Suche).
Eine Bitte habe ich dann noch. Wenn es eine vollständige Liste der catMenü Optionen gibt, kannst du die mal veröffentlichen?
Mir waren einige Möglichkeiten nicht bekannt.
Es ist im Moment nicht zwingend, aber ich würde gerne noch das hier realisieren:
In der Bootstrap Navbar wird beim Dropdopwn (auf Unterseiten) eine DIV Klasse (dropdown-menu) eingeschoben:
Code: Alles auswählen
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
Re: BC 1.3 Frage zu Menü Syntax
Ich war da zuerst den Weg gegangen, für die Parameter, die wbList hat, einen Extrakt für die Menüs zu machen, wegen der Namen und so. Irgendwann habe ich das dann aber entnervt so erweitert, dass man einfach auch die Original-Parameter von wbList nutzen kann.
Die Optionen mit den Unterstrichen wirst Du nicht brauchen, interessant können noch die "output templates" und eben die "css options" sein. Wobei ich nicht sicher bin, ob ich schon mal probiert habe, bei catfullmenu() ein Template zu übergeben...
Ich hoffe, die Namen der Optionen sind einigermaßen selbsterklärend, ansonsten frag.
Das mit dem Einschieben der DIV-Klasse in Bootstrap ist total doof, daher hab ich alternative Lösungen ergooglet, zumal Bootstrap nur zwei Menüebenen unterstützt und ich mehr wollte. Ich könnte mir aber vorstellen, dass man das mit den Templates hinkriegt. Ich teste das mal.
Code: Alles auswählen
// ***** keys in the input array *****
'__children_key' => 'children',
'__current_key' => 'current',
'__hidden_key' => 'hidden',
'__href_key' => 'href',
'__id_key' => 'id',
'__is_open_key' => 'is_open',
'__level_key' => 'level',
'__more_info_key' => '',
'__nodes_cookie_name' => NULL,
'__parent_key' => 'parent',
'__title_key' => 'title',
'__trail_key' => 'is_in_trail',
// ***** output templates *****
'top_list_open' => '<ul id="%%id%%" class="%%class%%">',
'top_list_close' => '</ul>',
'list_open' => '<ul id="%%id%%" class="%%class%%">',
'list_close' => '</ul>',
'item_open' => '<li id="%%id%%" class="%%class%%{{lastcss}}">',
'item_close' => '</li>',
'item' => '%%text%%',
'select_open' => '<select name="%%id%%" id="%%id%%" class="%%">',
'select_close' => '</select>',
'select_option' => '<option class="%%" value="%%value%%"%%selected%%>%%text%%</option>',
'more_info' => '<span class="more_info">%%</span>',
'href' => '<a href="%%href%%"%%class%%>%%text%%</a>',
// ***** global options *****
'create_level_css' => true,
'create_li_id' => false,
'space' => ' ',
'max_recursion' => 15,
'maxlevel' => 999,
// ***** css options *****
'css_prefix' => '',
'ul_id_prefix' => 'ul_',
'top_ul_class' => 'list',
'ul_class' => 'sublist',
'li_class' => 'item',
'first_li_class' => 'first_item',
'last_li_class' => 'last_item',
'current_li_class' => 'current_item',
'has_child_li_class' => 'has_child',
'is_open_li_class' => 'is_open',
'is_closed_li_class' => 'is_closed',
'trail_li_class' => 'trail_item',
'select_class' => '',
'li_id_prefix' => 'li_',
'link_class' => '',
Ich hoffe, die Namen der Optionen sind einigermaßen selbsterklärend, ansonsten frag.
Das mit dem Einschieben der DIV-Klasse in Bootstrap ist total doof, daher hab ich alternative Lösungen ergooglet, zumal Bootstrap nur zwei Menüebenen unterstützt und ich mehr wollte. Ich könnte mir aber vorstellen, dass man das mit den Templates hinkriegt. Ich teste das mal.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is
Re: BC 1.3 Frage zu Menü Syntax
Hm, nee, das wird nix. Ich habe nie vorgesehen, dass sich innerhalb so einer Liste das Markup so grundlegend ändert. Also auf Level 1 ist es noch eine <ul> und dann im Level 2 nicht mehr... Also entweder paßt Du Dir das so an, dass es auch als korrekt verschachtelte Liste funktioniert - wie gesagt, Beispiele findet man per Suchmaschine -, oder Du müßtest statt des catMenü Markups mit einem passenden Dwoo-Markup arbeiten. Irgendwie hab ich das Gefühl, das schon mal irgendwo gemacht zu haben...
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is
Re: BC 1.3 Frage zu Menü Syntax
So, hier mal als Basis:
Braucht eventuell noch etwas Feinschliff. Speicher Dir das als nav.tpl und mach {include 'nav.tpl'}, dann kannst Du es prima von einem Template ins nächste übernehmen.
Geht übrigens dann nur mit 2 Menüleveln, aber das ist halt Bootstrap.
Code: Alles auswählen
<?php $this->scope["pages"] = CAT_Helper_Page::getPages(); ?>
{template pagetree pages}
{foreach $pages item}
{if $item.level==0}
<li class="nav-item{if $item.current} active{/if}{if $item.children} dropdown{/if}">
<a class="nav-link{if $item.children} dropdown-toggle" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"{else}"{/if} href="{$item.href}">{$item.menu_title}{if $item.current} <span class="sr-only">(current)</span>{/if}</a>
{if $item.children}
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
{foreach $pages subitem}{if $subitem.parent==$item.page_id}
<a class="dropdown-item" href="{$subitem.href}">{$subitem.menu_title}</a>
{/if}{/foreach}
</div>
{/if}
</li>
{/if}
{/foreach}
{/template}
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
{pagetree $pages}
</ul>
</div>
</nav>
Geht übrigens dann nur mit 2 Menüleveln, aber das ist halt Bootstrap.
- Dateianhänge
-
- 2020-03-27 14_50_03-BlackCat CMS - Unterseite 2.png (6.59 KiB) 4801 mal betrachtet
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is