Seite 1 von 1

brauche hilfe für hilfsnavigation

Verfasst: Do 29. Apr 2004, 21:52
von #ayshe
Hallo,

ich mal wieder :)
Ich bräuchte mal Hilfe beim Umbauen eines Moduls für zwei Subnavigationen.
Ich habe für eine Communitysite eine komplexere Struktur in dieser Art angelegt:

Home
->Community
-->Events
--->Deutschland
--->International
-->Gruppen
--->Deutschland
--->International
-->Links
--->privat
----->privat A
----->privat B
---->kommerziell
----->kommerziell A
----->kommerziell B
->Shop

usw.
Soweit klar?

Die Navigationen sollen so aufgeteilt sein:
Es gibt eine Hauptnavigation, die nur den 1. Kategorienlevel (hier Community und Shop) des Hauptbaums darstellt.
In einer Subnavigation soll je nach Auswahl in der Hauptnavi nur die 2. Kategorienebene angezeigt werden.
In einer 2. Subnavigation dann wieder basierend auf der 1. Subnavi die 3. Kat.-Ebene.

Das mit der Hauptnavi klappt prima, hab mir das Hauptnav-Modul entsprechend umgeschrieben.

Für die beiden Subnavs wollte ich die sog. "Servicenavigation" verwenden. Aber hier ist mein Problem: Dieses Modul stellt alle Unterkategorien mit dar. Wenn ich im Template also bestimme, es soll die direkten Unterkats von Community zeigen (Events, Gruppen, Links), zeigt es leider auch alle darunter befindlichen Ebenen an (Deutschland, International usw. sowie alle Links-Unterkategorien etc.)

Hier ist der output-Code des Moduls (ist statt auf table auf ul umgeschrieben):

Code: Alles auswählen

<?php

include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php");

$catStart = "CMS_VALUE[0]";

if ($catStart != "") {
  $catIds = conDeeperCategoriesArray($catStart);

  echo '<ul>';

  if ( is_array($catIds) ) {

    foreach($catIds as $key=>$val) {
      // Ersten Eintrag ueberspringen, weil das der Menupunkt selbst ist
      // und nicht angezeigt werden soll.
      if ($key != 0) {

        $sql = "SELECT CAT.idcat AS idcat, name FROM ".
               $cfg["tab"]["cat"]." AS CAT, ".
               $cfg["tab"]["cat_lang"]." AS CATLANG 
               WHERE CAT.idcat = ".$val."
               AND CAT.idcat = CATLANG.idcat
               AND CATLANG.idlang = '$lang'
               AND CATLANG.visible = '1'";

        $db->query($sql);

        $db2 = new DB_Contenido;
        
        while ( $db->next_record() ) {
        
           $target = "_self";
          
          /* Check for redirect and new window flag */
          $sql = "SELECT idart FROM ".$cfg["tab"]["cat_art"]." WHERE idcat='". $db->f("idcat")."' AND is_start = '1'";
          $db2->query($sql);
          if ($db2->next_record())
          {
                $cidart = $db2->f("idart");
                $sql = "SELECT external_redirect FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '$cidart' AND idlang='$lang'";
                $db2->query($sql);
                if ($db2->next_record())
                {
                    $target = ( $db2->f("external_redirect") == 0 ) ? '_self' : '_blank';
                }
          }
          echo '<li>
          <a class="generic" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a></li>';
        } // end while
      } // if
    }  // end foreach
  } // end if (is_array)

  echo '</ul>';

}
?>
Kann mir jemand helfen und mir sagen, wie ich das Modul dazu bringe, nur eine Ebene anzuzeigen?

Viele Grüße,
#ayshe

Verfasst: Sa 1. Mai 2004, 16:04
von #ayshe
Hallo? Hört mich jemand?
Hab ich mich vielleicht zu umständlich ausgedrückt? Oder liegt's am "Tag der Arbeit"-Wochenende?

Ich brauch echt eure Hilfe, Leute :cry:

Probier's nochmal zu ergänzen:
Ich habe bis zu 3 Nav-Ebenen in der Site, die durch jeweils 1 horizontales Menü dargestellt werden sollen. Hauptmenü (=Ebene 1): Kein Problem, dafür hab ich die standardmäßige Hauptnavi genommen. Submenü 1 (=Ebene 2): Kein Problem, dafür habe ich die Hauptnavi ein wenig umgeschrieben, wie hier im Forum beschrieben (http://www.contenido.de/forum/viewtopic ... ion+teilen).

Submenü 2 ist jetzt aber ein großes Problem, da die "Servicenavigation" leider alle Kategorien dieses Levels (auch anderer Navi-Punkt aus Subnavi 1) sowie die Kategorien der 4. Ebene anzeigt.
An dieser Stelle kann ich nicht wieder das umgeschriebene Hauptnavi-Modul verwenden, denn ich müßte dann jede Unter-Unter-Kategorie als eigenen Baum anlegen - das ist strukturell nicht sinnvoll.

Deshalb brauche ich DRINGEND Hilfe beim Umbauen des Moduls "Servicenavigation", sodaß die While-Schleife auf die im Template ausgewählte Ebene beschränkt bleibt.



#ayshe

Verfasst: Di 4. Mai 2004, 18:55
von #ayshe
Hallo,

also bisher ist das ja eher ein Monolog, aber ich geb die Hoffnung auf Hilfe von jemandem mit mehr PHP-Kenntnissen als ich nicht auf.

Wie kann man das Modul "Servicenavigation" dazu bringen, nur eine Ebene der Kategorien darzustellen. Also wie kann man die While-Schleife auf eine Ebene begrenzen?
Das muß doch jemand wissen? Oder?

Viele Grüße,
#ayshe

Verfasst: Di 11. Mai 2004, 01:22
von Karin Dähne
Hallo #ayshe,
ich lese gerade Deinen Hilferuf. Aber vielleicht hast Du ja schon eine Lösung.

Wenn nicht:
Warum setzt Du nicht das Navigationsmodul auf die anderen Ebenen?
Dazu müßtest Du nur das navigationsmodul kopieren und die

" function nav " und " function catIsChildOf " umbenennen. Z.B.: " function catIsChildOf1 " und " function nav1 ".
Die Ebenen die dort nicht mehr angezeigt werden sollen kommentierst Du aus, oder löscht sie.
Dafür mußt Du dann natürlich tiefere Ebenen anlegen mit entsprechenden Templates.

Grüße,
Karin.

Verfasst: Mi 12. Mai 2004, 08:39
von #ayshe
Hallo Karin,

vielen Dank für Deine Idee. Das hätte aber aus bestimmten, in der Struktur der Site liegenden Gründen nicht funktioniert.
Ich habe jedoch das hervorragende Modul von Andreas verwendet, eine neue Version des alten Artikellisten-Moduls (zu finden im Modul-Download). Funktioniert genauso, wie ich es brauche :-)

Viele Grüße,
#ayshe

...und dann doch

Verfasst: Mi 27. Jul 2005, 23:10
von #ayshe
Für eine andere Site zwar, aber nun konnte ich den Tip doch anwenden.
Danke!
:)