Nur Seiten mit bestimmten IDs in der Navigation ausgeben

User avatar
Torsten_Kelsch
Legend Bludit
Posts: 212
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Wed Feb 26, 2020 2:36 pm

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.
On Error GoTo Bed
User avatar
Edi
Site Admin
Posts: 1916
Joined: Sun Aug 09, 2015 5:01 pm
Location: Zurich
Contact:

Fri Feb 28, 2020 1:09 pm

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>';
?>
Planet Bludit, Tipps, Snippets und nützliche Links. - Newsletter, Informationen zu Bludit (auf Deutsch).
User avatar
Torsten_Kelsch
Legend Bludit
Posts: 212
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Fri Feb 28, 2020 3:28 pm

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!
On Error GoTo Bed
User avatar
Torsten_Kelsch
Legend Bludit
Posts: 212
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Tue Mar 03, 2020 4:24 pm

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.
On Error GoTo Bed
User avatar
Edi
Site Admin
Posts: 1916
Joined: Sun Aug 09, 2015 5:01 pm
Location: Zurich
Contact:

Fri Mar 06, 2020 2:21 pm

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:
Planet Bludit, Tipps, Snippets und nützliche Links. - Newsletter, Informationen zu Bludit (auf Deutsch).
User avatar
Edi
Site Admin
Posts: 1916
Joined: Sun Aug 09, 2015 5:01 pm
Location: Zurich
Contact:

Fri Mar 06, 2020 2:47 pm

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
Planet Bludit, Tipps, Snippets und nützliche Links. - Newsletter, Informationen zu Bludit (auf Deutsch).
User avatar
Torsten_Kelsch
Legend Bludit
Posts: 212
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Tue Apr 07, 2020 7:24 pm

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.
On Error GoTo Bed
DerKarsten
Jr. Bludit
Posts: 1
Joined: Sat Apr 18, 2020 10:08 am

Sat Apr 18, 2020 10:14 am

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
User avatar
Torsten_Kelsch
Legend Bludit
Posts: 212
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Sat Apr 18, 2020 1:32 pm

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.
On Error GoTo Bed
User avatar
Torsten_Kelsch
Legend Bludit
Posts: 212
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Sun Apr 19, 2020 9:37 pm

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?
On Error GoTo Bed
Post Reply