Elegantere Lösung für Seiten ohne Menüeintrag gesucht …

Post Reply
User avatar
knuthabicht
Jr. Bludit
Posts: 8
Joined: Sat Apr 03, 2021 12:15 pm

Um statische Seiten anzulegen, die nicht im Menü angezeigt werden, sondern über andere Verlinkungen erreicht werden können, hatte ich im Forum Codeschnipsel gefunden und diese in mein Theme »massively-2.1« eingebaut. Das sieht derzeit so aus:

Code: Select all

<!-- Vorerst hier die Seiten eintragen, die nicht im Menü erscheinen sollen. -->
<?php foreach ($staticContent as $staticPage):
	if ( $staticPage->slug() != 'beispielseite' && $staticPage->slug() != 'testseite' ) { ?>
	<li class="<?php echo ($staticPage->permalink()==$page->permalink())?'active':'' ?>">
		<a href="<?php echo $staticPage->permalink() ?>#main"><?php echo $staticPage->title() ?></a>
	</li>
<?php } endforeach ?>
Natürlich ist es lästig, jedes Mal den Quellcode zu ändern, wenn man eine neue Seite anlegt – deshalb wäre ein eleganterer Weg, dies entweder über die ART der Seite zu erledigen, also z.B. einem Eintrag, der »Statisch ohne Menü« lautet. Oder man nutzt eine KATEGORIE wie zum Beispiel »Seite ohne Menü«. Da ich nun ausgerechnet mit PHP nicht so vertraut bin, kann ich da nur raten, dass für die angesprochen Möglichkeiten in der Zeile

Code: Select all

»if ( $staticPage->slug() != 'beispielseite' && $staticPage->slug() != 'testseite' )«
etwas geändert werden muss. Außerdem erfordert dies eine entsprechende Kategorie, was kein Problem darstellt, aber wo müsste ich die ART im Quellcode hinzufügen, wenn ich diese nutzen will?

Kurz: Für eine »if-Zeile« für beide Versionen wäre ich dankbar – und für eine Lösung zur Ergänzung der ART ebenfalls. Ich nutze Bludit 3.13.1 und wie schon geschrieben massively-2.1 – die Seite mit dem oben beschriebenen Codeschnipsel lautet https://nachbarschaft-stiftung.de

Gruß vom Knut
»Es kommt alles auf den Wärmecharakter im Denken an! Das ist die neue Qualität des Willens.« – Joseph Beuys …
User avatar
arakel2
Jr. Bludit
Posts: 9
Joined: Sun Mar 28, 2021 11:14 am

Hallo Knut,

hier eine Möglichkeit die Kategorie zu verwenden:
Neue Kategorie anlegen, wie du schon geschrieben hast, z.B. "ohne_menu"

Dann an der Stelle, die du schon erkannt hast:

Code: Select all

if ( $staticPage->category() != 'ohne_menu' ) {
Um die Art nutzen zu können muss man wohl etwas mehr im Quelltext ändern, da die Arten der Seiten vermutlich im Bludit-Grundsystem fest vorgegeben sind.

Viele Grüße

Edit: Alternativ könnte man auch die Position verwenden. Alle Seiten, die nicht angezeigt werden sollen bekommen z.B. die Position 999.

Code: Select all

if ( $staticPage->position() != 999 ) {
Edit2: Oder du bastelst etwas mit Custom Menu. Unter "Einstellungen -> Allgemein -> Benutzerdefiniertes Feld" ein neues Feld anlegen:

Code: Select all

{
    "Anzeige": {
        "type": "bool",
        "label": "Anzeige",
        "tip": "Seite nicht im Menu anzeigen."
    }
}
Danach findest du unter "Einstellungen" in der Seitenbearbeitung eine neue Auswahlmöglichkeit:
Custom_Anzeige.png
Custom_Anzeige.png (15.07 KiB) Viewed 437 times
.
Jetzt wieder die bekannte Stelle anpassen:

Code: Select all

if (!$staticPage->custom('Anzeige')) {
User avatar
knuthabicht
Jr. Bludit
Posts: 8
Joined: Sat Apr 03, 2021 12:15 pm

Guten Morgen arakel2,

klasse und danke – das probiere ich mal alles aus. Spontan gefällt mir die letzte Lösung sehr gut … ;)

Gruß vom Knut
»Es kommt alles auf den Wärmecharakter im Denken an! Das ist die neue Qualität des Willens.« – Joseph Beuys …
Post Reply