ich nutze eine Sitemap als DropDown-Menü. Das klappt auch wunderbar. Allerdings klickt der Benutzer ja oft nur auf den letzten Menüpunkt eines Klap-Auf-Menüs und selten auf ein obergeordneten Punkt, deswegn kann man diese oft leer lassen, aber was ist wenn doch jemand raufklickt! Zur Zeit löse ich das mit einen leeren Artikel mit einer Weiterleitung zur nächsten gewünschten Kategorie.
z.B. So stelle ich mir das vor:
Punkt 1
Punkt 2
Punkt 3
Punkt 4 -------------> Hier ist kein Artikel hinterlegt und somit soll der Startartikel der "Punkt 4.1" aufgerufen werden, da hier der erste Startartikel drin ist von einer der untegordneten Kategorien!
Punkt 4.1
Punkt 4.2
Punkt 4.3
Punkt 5
Ist es möglich das man sagen kann, wenn in dem Menüpunkt kein Artikel angelegt ist (sondern nur eine Kategorie), dann rufe aus der ersten untergordneten Kategorie die ein Startartikel hat, diesen Startartikel auf?
Code: Alles auswählen
<?php 
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     vpSitemap 0.4
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     2005-01-14
* Modified    :     2006-09-07
* Credits     :     Nik Wyss & juergen@sotonic.de
************************************************/
// Includes
cInclude("frontend", "includes/functions.navigation.php");
// CMS_VALUES initialisieren
$anzahlEbenen      = "5";
$startkategorie    = "1";
$ebeneNullAnzeigen = "2";
function vpSitemap($kategorie=0, $level)
{
  global $lang, $client, $cfg, $startkategorie, $anzahlEbenen, $ebeneNullAnzeigen;
  $db  = new DB_Contenido;
  $sql  = "SELECT
             *
           FROM
             ".$cfg["tab"]["cat_tree"]." AS A,
             ".$cfg["tab"]["cat"]." AS B,
             ".$cfg["tab"]["cat_lang"]." AS C
           WHERE
             A.idcat=B.idcat
             AND B.idcat=C.idcat
             AND C.idlang='$lang'
             AND B.idclient='$client'
             AND B.parentid=$kategorie
             AND level <= $anzahlEbenen
             AND C.visible=1
           ORDER by A.idtree";
    $db->query($sql);
    $treffer = $db->num_rows();
    if ($treffer) {
      if ($kategorie == $startkategorie) $result .= "\n" . str_repeat (" ", ($level * 4)) . "<ul class=\"dropdown\">\n";
      else $result .= "\n" . str_repeat (" ", ($level * 4) + 4) . "<ul class=\"roundbordermenue\">\n";
    }
    while ($db->next_record())
    {
       
      $visible = checkCatPermission($db->f("idcatlang"),$db->f("public"));
      if ($visible) {       
            
        $lvl = $db->f("level");
        $result .= str_repeat (" ", ($lvl * 4) + 2);
        if ($lvl == 1) {
          $result .= '<li class="id'.$db->f("idcat").' ebene'.$lvl.'"><a href="front_content.php?idcat='.$db->f("idcat").'&lang='.$lang.'&client='.$client.'">' . $db->f("name") . '</a>' . vpSitemap($db->f("idcat"), $lvl) . "</li>\n";
        }
        else if ($lvl > 1) {
          $result .= '<li><a href="front_content.php?idcat='.$db->f("idcat").'&lang='.$lang.'&client='.$client.'">'. $db->f("name") . '</a>' . vpSitemap($db->f("idcat"), $lvl) . "</li>\n";
        }
        else {
          $result .= "<li> ".vpSitemap($db->f("idcat"), $lvl) . "</li>\n";
        }
      }
    } 
    if ($treffer) {
      if ($kategorie == $startkategorie) $result .= str_repeat (" ", ($level * 4));
      else $result .= str_repeat (" ", ($level * 4) + 4);
      $result .= "</ul>\n";
      $result .= str_repeat (" ", ($level * 4) + 2);
    }
    return($result);
  }
$sql = "SELECT
          level
        FROM
          ".$cfg["tab"]["cat_tree"]."
        WHERE
          idcat=$startkategorie";
$db->query($sql);
$db->next_record();
$startEbene = $db->f("level") + 1;
$anzahlEbenen += $startEbene;
if ($startkategorie==0) {
  if ($ebeneNullAnzeigen) $anzahlEbenen--;
  $startEbene--;
}
echo "<div id=\"menue\">";
echo vpSitemap($startkategorie, $startEbene);
echo "</div>";
?>Vielen Dank
MfG Steffen