Beispiele zur Funktion printNavigation()

Allgemeine Diskussionen zu ConPresso 4. Handhabung, Möglichkeiten, Verständnisfragen.
Achtung: Bitte benutzt wenn möglich die themenspezifischen Foren!
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

balu hat geschrieben:Hallo Andreas,
[...]
Wenn Du pruefen willst, ob die erste Ebene auch "Kindelemente" hat, musst Du etwas anders vorgehen
[...]
Bei mir ging es darum, zu prüfen, ob die 2. Ebene Kinder hat:

Der Navibaum im Backend sieht so aus:

Menü
Hauptmenüpunkt 1
Hauptmenüpunkt 2
Menüunterpunkt 2.1
Menüunterpunkt 2.2
Menüunterpunkt 2.3
Menüunterpunkt 2.4
Hauptmenüpunkt 3
Hauptmenüpunkt 4

Die Hauptmenüpunkte werden separat ausgegeben.

Die Menüunterpunkte können im Prinzip mit folgendem Code in Hauptmenüpunkt 2 und den Menüunterpunkten ausgegeben werden mithilfe von $ae[2]:

Code: Alles auswählen

<?php 
  $ae = getActiveElements();
  if (isset($ae[1])) {
  printNavigation('', 0, 99, $ae[2], true, '');
  }
?>
Mir war es aber lästig, manuell immer zu prüfen, ob ich im jeweiligen Rubrik-Header den obigen Code verwenden muss oder nicht. Außerdem sollte die Unternavigation noch mit einer HTML-/CSS-Box versehen werden...
Sprich, ich wollte einen Code in allen Rubrik-Headern einsetzen und dieser sollte die Unternavigation samt Box darum automatisch erscheinen lassen, sobald dies angebracht ist.

Es geht nun also darum, zu ermitteln, ob ein Hauptmenüpunkt Unterpunkte besitzt und abhängig davon etwas auszugeben. Dazu habe ich Balus Code folgendermaßen abgeändert:

Code: Alles auswählen

<?php 
  $ae = getActiveElements();

  if (isset($ae[1])) { // prüft, ob überhaupt im Navibaum eingehängt

  // Ermitteln, ob es eine Unternavigation gibt
    $n = getNavigation();
    $childs = 0;
    foreach ($n as $v) {
      if ($v['id']!=$ae[2]) continue;
      $childs = $v['childs'];
      // echo $v['childs'] . ' '; // hier könnte man eine Kontrollausgabe der Anzahl Kindernavielemente machen
      break;
    }
  }

  if ($childs>0) { // Kinderelemente vorhanden?
    echo '<div class="SubmenuBox">'; // Box ums Menü
    printNavigation('', 0, 99, $ae[2], true, '');
    echo '</div>';  // /Box ums Menü
  }
?>
Vielleicht kann das ja der Eine [m/w] oder Andere [m/w] gebrauchen :wink:
Günther Ludwig
Antworten