WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 13.08.2018 11:59:08

candelo
Mitglied

Fjatselt Megamenu

Hallo,

ich "baue" eine neue Seite für unseren Sportverein auf Basis des Template Fjatselt Megamenu.

Nun suche ich nach einer Lösung um bei einem Menu Link nur die untergeordneten Seiten zu verlinken und die übergeordnete Seite nicht anzuzeigen.

Also z.B.:

Aktuelles (nur als übergeordnetes Element)
und als zu öffnende Seiten z. B.:
- 1. Mannschaft
- 2. Mannschaft
- A Junioren usw.

Bin aber noch nicht so sicher im Umgang mit php ........

Vielleicht kann mir ja jemand helfen.
Danke.

Offline

#2 13.08.2018 15:08:04

florian
Administrator

Re: Fjatselt Megamenu

Das ist nicht möglich, da das Menü nicht "weiß", ob ein Eintrag eine normale Seite oder ein Menülink ist.
Lass den Menülink über dessen Einstellungen einfach auf die erste untergeordnete Seite zeigen, in Deinem Beispiel würde der Menülink "Aktuelles" also auf "1. Mannschaft" zeigen.

(Was ginge, wäre entweder anhand der Page-ID bei bestimmten oder bei _allen_ Einträgen auf der obersten Ebene mittels einer if-Anweisung im Menüaufruf den href="irgendwas" zu unterdrücken. Der ShowMenu2-Aufruf müsste dann in etwa wie folgt aussehen:

show_menu2(1, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_NUMCLASS, '<li id="p[page_id]"><a [if (page_id!=23) {href="[url]" class="[class]" target="[target]"}]>[if(level=1){<span>- </span>}][if(level=2){<span>-- </span>}][menu_title]</a>', '</li>', '[ul]', '</ul>', false, '<ul class="mega-menu">');

(Seite mit der ID hätte keinen Link)
bzw.

show_menu2(1, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_NUMCLASS, '<li id="p[page_id]"><a [if (level!=0) {href="[url]" class="[class]" target="[target]"}]>[if(level=1){<span>- </span>}][if(level=2){<span>-- </span>}][menu_title]</a>', '</li>', '[ul]', '</ul>', false, '<ul class="mega-menu">');

(Alle Einträge auf der obersten Ebene hätten keinen Link)

NIcht getestet, kann sein, dass das nicht funktioniert.

)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 13.08.2018 15:45:36

candelo
Mitglied

Re: Fjatselt Megamenu

Danke. smile
Ich werde mir das mal versuchen so umzusetzen.

Schade eigentlich, dass es so eine Funktion über eine Art Navigationseigenschaften im CMS nicht einstellbar ist.
Bin sicher nicht der einzige, der sich so eine Funktion wünschen würde.
Allerdings weiß ich nicht, ob dies auch umsetzbar ist.

Offline

#4 15.08.2018 14:52:32

florian
Administrator

Re: Fjatselt Megamenu

Es gibt ja verschiedene Strategien, wie CMSse Menüs generieren. Bei WBCE ist es (i.d.R.) show_menu2, das dafür sorgt, dass die Struktur, wie sie im Seitenbaum im Backend steht, sich auch im Menü / in den Menüs im Frontend wiederfindet. Bei Wordpress ist es hingegen afaik so, dass man da das Menü über ein Widget zusammenbauen muss, und bei Joomla ist es, wenn ich das recht erinnere, noch komplizierter. Alle Ansätze haben ihre Vor- und Nachteile.

Noch ein Tipp: Wenn sich an der Seitenstruktur nur sehr selten überhaupt was ändert und/oder der Umfang des Auftritts nicht zig oder hunderte Seiten umfasst, kann es durchaus auch effizienter sein, die Navigation ganz oder teilweise fest einzucodieren, also statt show_menu2 einfach
<ul class"menu">
  <li><a href="javascript:void(0)">Aktuelles</a>
   <ul>
     <li><a href="[wblink23]">Mannschaft A</a></li>
     <li><a href="[wblink42]">Mannschaft B</a></li>
  </ul>
</li>
  usw.
</ul>
ins Template zu setzen.

Beitrag geändert von florian (16.08.2018 09:05:59)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#5 15.08.2018 15:04:01

stefanek
Developer

Re: Fjatselt Megamenu

Ja, ich war etwas OffTopic...  tongue

Aber die Lösung von Dir hier: https://forum.wbce.org/viewtopic.php?pid=19308#p19308
ist genau wie ich es auch machen würde. Wobei ich würde den Link (URL) nur dann ausblenden, wenn es keine Childs gibt.

Gruß,
Christian


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#6 15.08.2018 15:13:42

candelo
Mitglied

Re: Fjatselt Megamenu

Danke für eure Bemühungen  smile
@ stefanek
Aber Childs als Unterseiten unter diesem Menupunkt mit ausgeblendeten Inhalt soll es geben.
Warum sollte ich den Link ausblenden, wenn es keine Unterseiten gibt?
Macht für MICH keinen Sinn und verstehe ich auch gerade nicht...

Offline

#7 15.08.2018 15:29:48

stefanek
Developer

Re: Fjatselt Megamenu

Ich meinte, es kann sein, dass in der obersten Ebene auch Menü-Punkte sind, die keine Child-Pages haben. Hier würde ich die URL dann natürlich belassen.

Schönen Gruß
Christian


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#8 16.08.2018 09:06:46

florian
Administrator

Re: Fjatselt Megamenu

Thema geteilt, zur Handhabung von Menu Links grundsätzlich siehe https://forum.wbce.org/viewtopic.php?id=2301


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#9 21.08.2018 13:08:20

candelo
Mitglied

Re: Fjatselt Megamenu

@florian

florian schrieb:

Das ist nicht möglich, da das Menü nicht "weiß", ob ein Eintrag eine normale Seite oder ein Menülink ist.
Lass den Menülink über dessen Einstellungen einfach auf die erste untergeordnete Seite zeigen, in Deinem Beispiel würde der Menülink "Aktuelles" also auf "1. Mannschaft" zeigen.

(Was ginge, wäre entweder anhand der Page-ID bei bestimmten oder bei _allen_ Einträgen auf der obersten Ebene mittels einer if-Anweisung im Menüaufruf den href="irgendwas" zu unterdrücken. Der ShowMenu2-Aufruf müsste dann in etwa wie folgt aussehen:

show_menu2(1, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_NUMCLASS, '<li id="p[page_id]"><a [if (page_id!=23) {href="[url]" class="[class]" target="[target]"}]>[if(level=1){<span>- </span>}][if(level=2){<span>-- </span>}][menu_title]</a>', '</li>', '[ul]', '</ul>', false, '<ul class="mega-menu">');

(Seite mit der ID hätte keinen Link)
bzw.

show_menu2(1, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_NUMCLASS, '<li id="p[page_id]"><a [if (level!=0) {href="[url]" class="[class]" target="[target]"}]>[if(level=1){<span>- </span>}][if(level=2){<span>-- </span>}][menu_title]</a>', '</li>', '[ul]', '</ul>', false, '<ul class="mega-menu">');

(Alle Einträge auf der obersten Ebene hätten keinen Link)

NIcht getestet, kann sein, dass das nicht funktioniert.

)

Ich habe nun beide Versionen ausprobiert.
Version 1: Page-ID angepasst = es wird die ganze 1. Menüebene die Page-ID unterdrückt
Version 2: siehe Version 1

Offline

#10 21.08.2018 14:00:21

florian
Administrator

Re: Fjatselt Megamenu

ich glaube, bei #1 muss das page_id im if noch in eckige Klammern
if ([page_id] != 23) usw.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#11 21.08.2018 14:19:57

candelo
Mitglied

Re: Fjatselt Megamenu

florian schrieb:

ich glaube, bei #1 muss das page_id im if noch in eckige Klammern
if ([page_id] != 23) usw.

Getestet und  das gesamte Menü hat nun keine Links  yikes

Offline

#12 21.08.2018 14:23:53

florian
Administrator

Re: Fjatselt Megamenu

Die Frage ist ja sowieso, ob Dir das, selbst wenn es funktionieren würde, überhaupt so schon was nützt. Ist es nur die eine Seite, die nicht verlinkt sein soll, oder gibt es noch weitere solcher Einträge? Denn dann müsste die Abfrage entsprechend angepasst werden.

Beitrag geändert von florian (21.08.2018 14:24:14)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#13 21.08.2018 14:43:22

florian
Administrator

Re: Fjatselt Megamenu

So, gefunden... es hilft, Doku zu lesen... (note 2 myself)

So gehts:

show_menu2(1, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_NUMCLASS|SM2_PRETTY, '<li id="p[page_id]"><a [if (id == 1) {href="javascript:void(0);"} else {href="[url]" class="[class]"}]>[if(level=1){<span>- </span>}][if(level=2){<span>-- </span>}][menu_title]</a>', '</li>', '[ul]', '</ul>', false, '<ul class="mega-menu">');

Im o.g. Beispiel hat die Seite mit der ID 1 keinen aktiven Link, sondern nur den JS-Platzhalter "void(0)".

Sollen noch mehr Seiten unverlinkt sein, deren IDs als Oder-Anweisung übergeben. In nachfolgendem Beispiel betrifft das dann die Seiten mit der ID 1 und 20:

show_menu2(1, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_NUMCLASS|SM2_PRETTY, '<li id="p[page_id]"><a [if (id == 1 || id==20) {href="javascript:void(0);"} else {href="[url]" class="[class]"}]>[if(level=1){<span>- </span>}][if(level=2){<span>-- </span>}][menu_title]</a>', '</li>', '[ul]', '</ul>', false, '<ul class="mega-menu">');
	

Zu weiteren Risiken und Nebenwirkungen siehe
http://sm2.wbce-cms.org/media/README.de.txt
ziemlich am Ende

Beitrag geändert von florian (21.08.2018 14:44:56)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#14 21.08.2018 14:43:53

candelo
Mitglied

Re: Fjatselt Megamenu

Wenn es funktionieren würde, würde es mir auch was nützen.

Ich habe das Menü auf meiner Testseite wieder zurück gesetzt.
Nicht verlinkt werden soll: Sektionen
Passen würde das auch bei: Aktuelles, ich finde, die jetzige Lösung ist irgendwie doppelt gemoppelt   smile

Beitrag geändert von candelo (21.08.2018 15:50:00)

Offline

#15 21.08.2018 14:49:39

candelo
Mitglied

Re: Fjatselt Megamenu

da haben wir uns aber irgendwie zeitlich verfehlt  smile
Ich probiere es aus.
Danke erstmal.

Offline

#16 21.08.2018 14:55:43

candelo
Mitglied

Re: Fjatselt Megamenu

@Florian
Super, es funktioniert und genau so wie ich es mir vorgestellt habe!

Ganz, ganz herzlichen Dank!  thumb_up  thumb_up  thumb_up

Offline

#17 21.08.2018 15:05:04

candelo
Mitglied

Re: Fjatselt Megamenu

@Florian
ich war zu schnell, es funktioniert nur mit Menupunkt Sektionen
Aktuelles wird nicht verlinkt, bei Klick auf Fußball komme ich zu Aktuelles und unterhalb Menüpunkt Startseite steht: //end   sad

Offline

#18 21.08.2018 15:34:21

florian
Administrator

Re: Fjatselt Megamenu

Das SM2_PRETTY muss aus dem Menüaufruf raus, evtl. löst das auch das Verlinkungsproblem.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#19 21.08.2018 15:49:41

candelo
Mitglied

Re: Fjatselt Megamenu

Geändert und Problem gelöst!

DANKE!

Offline

Liked by:

florian

Fußzeile des Forums

up