Page 1 of 2

Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Wed Feb 26, 2020 2:36 pm
by Torsten_Kelsch
Hab hier im Forum gesucht, aber nix gefunden. Meine Aufgabenstellung:

Ich habe eine Test-Website mit statischen Seiten und (statischen) Unterseiten. Nun möchte ich in der Navigation aber die Unterseiten nicht ausgeben lassen.

Als Lösung stelle ich mir vor, per PHP zu prüfen, ob eine Seite eine Seiten-ID oder Position kleiner als irgendwas hat (da die Unterseiten hohe Positionsnummern haben). Ich denke in etwa an so ein Konstrukt, wobei ich aber eben nicht herausfinden kann, wie die Seiten intern von Bludit bezeichnet werden ($pageID oder was?):

Code: Select all

<li class="nav-item">
<a class="nav-link" href="<?php echo $staticPage->permalink(); ?>"><?php if($pageID < 10) { echo $staticPage->title(); } ?></a>
</li>
Bin für Tipps und Tricks dankbar.

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Fri Feb 28, 2020 1:09 pm
by Edi
Torsten_Kelsch wrote: Wed Feb 26, 2020 2:36 pm Ich habe eine Test-Website mit statischen Seiten und (statischen) Unterseiten. Nun möchte ich in der Navigation aber die Unterseiten nicht ausgeben lassen.
Dafür kannst Du folgendes verwenden (wie im Plugin Statische Seiten):

Code: Select all

<?php
   echo '<ul>';

   $staticPages = buildStaticPages();
   foreach ($staticPages as $page) {
      if ($page->isParent()) {
      echo '<li>';
      echo '<a href="' . $page->permalink() . '">' . $page->title() . '</a>';
         echo '</li>';
      }
    }

   echo '</ul>';
?>

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Fri Feb 28, 2020 3:28 pm
by Torsten_Kelsch
Edi wrote: Fri Feb 28, 2020 1:09 pm Dafür kannst Du folgendes verwenden (wie im Plugin Statische Seiten):
Sehr gut, das funktioniert prima. :D Vielen Dank, du bist der Beste, Edi!

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Tue Mar 03, 2020 4:24 pm
by Torsten_Kelsch
Nee, funktioniert gar nicht. Die Seiten werden zwar in der Navigation korrekt ausgegeben, aber es werden nicht die richtigen Links erzeugt, sondern man landet immer auf der ersten statischen Seite. Aber ist egal jetzt, ich codiere das hart, und gut ist.

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Fri Mar 06, 2020 2:21 pm
by Edi
Das funktioniert:

Code: Select all

<?php
   foreach ($staticContent as $staticPage) {
      if ($staticPage->isParent()) {
         echo '<li><a href="'.$staticPage->permalink().'">'.$staticPage->title().'</a></li>';
      }
   }
?>
Warum das andere nicht oder nur halb funktioniert, ist mir nicht klar. Irgendein Denkfehler. :oops:

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Fri Mar 06, 2020 2:47 pm
by Edi
Edi wrote: Fri Mar 06, 2020 2:21 pm Warum das andere nicht oder nur halb funktioniert, ist mir nicht klar.
Es scheint, dass das Plugin Statische Seiten nicht mehr funktioniert (beziehungsweise der von dort übernomme Code):

https://github.com/bludit/bludit/issues/1148

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Tue Apr 07, 2020 7:24 pm
by Torsten_Kelsch
Na ja, ich baue nun doch nach wie vor die Navigationen selbst mit einfach gestricktem PHP, was gut klappt. Aber ich wünsche mir natürlich immer noch einen gut bedienbaren und nach eigenem Gusto anpassbaren Menüeditor, wie man ihn in manchen anderen CMS findet. Aber, wie gesagt, solange Kunden nicht ständig ihre Webseiten-Strukturen ändern, komme ich mit hart codierten Navigationsmenüs erst mal zurecht.

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Sat Apr 18, 2020 10:14 am
by DerKarsten
Hallo,

danke für dieses nette CMS. Ich habe bei dem Herumprobieren das gleiche Problem , z. B. lege ich das Impressum als statische Seite an, möchte aber, dass das nicht in der Navigation (sonderung unten) erscheint.

Meine Lösung (wenn auch durch herumpfuschen im Theme, z. B. ClearBlog):

<?php
foreach ($staticContent as $staticPage) {
if ($staticPage->position()!=0) {
echo '<li class="nav-item">';
echo '<a class="nav-link" href="'.$staticPage->permalink().'">'.$staticPage->title().'</a>';
echo '</li>';
}
}

Ich setze in den erweiterten Einstellungen die Position auf 0, dann erscheint es nicht.

Und ja, mir ist bewusst, dass ich die Änderungen bei jedem Update des Themes nachziehen muss.

Karsten

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Sat Apr 18, 2020 1:32 pm
by Torsten_Kelsch
DerKarsten wrote: Sat Apr 18, 2020 10:14 am Und ja, mir ist bewusst, dass ich die Änderungen bei jedem Update des Themes nachziehen muss.

Karsten
Gute Lösung, die probiere ich mal mit nicht-statischen, also normalen Seiten aus.

Das abgewandelte Theme könntest du ja umbenennen oder Theme-Updates nicht durchführen. Solange keine neue Major-Version von Bludit erscheint, also Version 4, sollte das Theme ja einwandfrei auch bei Bludit-Updates innerhalb der Version 3 laufen.

Re: Nur Seiten mit bestimmten IDs in der Navigation ausgeben

Posted: Sun Apr 19, 2020 9:37 pm
by Torsten_Kelsch
Mein Versuch, eine Navigation für normale Seiten zu bauen, schlug fehl.

Code: Select all

<nav>
  <ul>
    <?php foreach ($content as $page): ?>
	<li class="nav-item">
	    <a class="nav-link" href="<?php echo $page->permalink(); ?>"><?php echo $page->title(); ?></a>
	</li>
    <?php endforeach ?>
  </ul>
</nav>
Dieser Code funktioniert nicht. Es wird immer nur der Link derjenigen Seite in der Navigation angezeigt, auf der man gerade ist. Irgendwie schaffe ich es mit Bludit nicht, eine automatische Navigation der ganz normalen Seiten (nicht der sogenannten statischen Seiten) hinzukriegen. Geht aber doch in anderen CM-Systemen auch. Hat jemand eine Lösung?