Page 1 of 1

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

Posted: Fri Apr 09, 2021 3:52 pm
by knuthabicht
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

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

Posted: Fri Apr 09, 2021 9:08 pm
by arakel2
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 2044 times
.
Jetzt wieder die bekannte Stelle anpassen:

Code: Select all

if (!$staticPage->custom('Anzeige')) {

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

Posted: Sat Apr 10, 2021 12:32 pm
by knuthabicht
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