Sitemap für 4.4 - "Versteckte" Seiten ausblenden

Gesperrt
Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Sitemap für 4.4 - "Versteckte" Seiten ausblenden

Beitrag von Andreas »

hallo miteinander,
ich versuche gerade die Sitemap (für 4.4) einzubauen.
funktioniert auch alles, aber in der Ausgabeseite erscheint immer eine Spalte mit den Punkten "Hauptnavigation", Servicenavigation" und den Seiten, die gar nicht angezeigt werden sollen! Die sollen natürlich NICHT dargestellt werden!

Habe mich schon im Forum umgeschaut und die Lösungen ausprobiert.
Leider ohne Erfolg. Kann jemand helfen? Verzweifele langsam...


Hier das verwendete Modul:

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
*  Modulname  :     Sitemap 
* Author(s)   :     Jan Lengowski, Jose Rodriguez 
* Copyright   :     Contenido - four for business, Jose Rodriguez 
* Created     :     15-08-2002 
* Modified    :     14-01-2003 by nik wyss 
* Modified    :     29-12-2003 by Sascha Benkart. 
*                   - Adapt to Contenido V4.4 
************************************************/ 
// selected category 
$selected = "CMS_VALUE[0]"; 

echo  "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n". 
        "  <tr valign=\"top\">\n". 
        "    <td>Kategorie wählen:</td>\n". 
        "    <td>\n". 
        "      <select name=\"CMS_VAR[0]\">\n". 
        "        <option value='0'>---Alle---</option>\n"; 

// fetch all categorys 
$query = "SELECT A.idcat, A.level, C.name 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 C.visible=1 ORDER BY A.idtree"; 

// execute query 
$db->query($query); 

// loop result and build the options 
while ($db->next_record()) 
{ 
  // indent spacer 
  $spaces = ""; 

  // how many levels 
  $levels = $db->f("level"); 

  for ($i = 0; $i > $levels; $i ++) 
  { 
     // add 2 spaces for every level 
     $spaces = $spaces . "  "; 
  } // end for 

  if ($selected == $db->f("idcat")) 
  { 
     // selected category 
     echo "        <option selected=\"selected\" value=\"". 
             $db->f("idcat") ."\">". 
             $spaces . $db->f("name") ."</option>"; 
  } 
  else 
  { 
     // category 
     echo  "        <option value=\"". 
             $db->f("idcat") ."\">". 
             $spaces . $db->f("name") ."</option>"; 
  } // end if 

} // end while 

echo  "      </select>\n". 
         "     </td>\n". 
         "   </tr>\n". 
         "   <tr>\n". 
         "     <td>Anzahl Ebene:</td>\n". 
         "     <td>\n". 
         "       <input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\">\n". 
         "     </td>\n". 
         "   </tr>\n". 
         " </table>\n";

Code: Alles auswählen

<?php 
  /*********************************************** 
  * CONTENIDO MODUL - OUTPUT 
  * 
  *  Modulname   :     Sitemap 
  * Author(s)      :    Nik Wyss 
  * Copyright   :     None 
  * Created     :     14-01-2003 
  * Modified    :     14-01-2003 
  * Modified    :     29-12-2003 by Sascha Benkart. 
  *                   - Adapt to Contenido V4.4 
  *                   - Output only shows visible items 
  ************************************************/ 

  $amountLevel = "CMS_VALUE[1]"; 
  $newcat = "CMS_VALUE[0]"; 
  $color = array("#e8e8e8", "#e8e8e8","#e8e8e8","#e8e8e8"); 

  function sitemap($newcat=0) 
  { 
    global $lang, $client, $amountLevel, $color, $startLevel, $cfg; 
    $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 =$newcat AND level <= $amountLevel AND C.visible=1 ". 
              "ORDER by A.idtree"; 







    $db->query($sql); 
    $result = "<table border=0 cellspacing=1 cellpadding=0 border=0>"; 
    while ($db->next_record()) 
    { 
      $lvl = $db->f("level"); 
      if ($lvl==1) 
      { 
        $result.="<tr><td> </td></tr>"; 
      } 
      $colorID=$lvl-$startLevel; 
      if ($colorID > count($color)-1) 
      { 
        $colorID=count($color)-1; 
      } 
      $result   .=  "<tr><td width='120px' bgcolor='".$color[$colorID]. 
                  "' valign=top><a href='front_content.php?idcat=".$db->f("idcat"). 
                  "&lang=$lang&client=$client' class='lmLink'>". 
                  $db->f("name")."</a></td><td>".sitemap($db->f("idcat")). 
                  "</td></tr>"; 
    } 
    $result.= "</table>"; 
    return($result); 
  } 


$sql = "SELECT * FROM $cfgTab_cat_tree AS A, $cfgTab_cat AS B, $cfgTab_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 =$newcat AND C.visible=1 ORDER by A.idtree";


  $db->query($sql); 
  $db->next_record(); 
  $startLevel = $db->f("level"); 
  $amountLevel +=  $startLevel; 
  if ($newcat==0){$amountLevel--;} 
  echo sitemap($newcat); 
?>
Zuletzt geändert von Andreas am Mo 12. Jan 2004, 12:58, insgesamt 1-mal geändert.
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

aber du hast schon in der template konfigutation alles ordentlich eingetragen?
Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Beitrag von Andreas »

stony hat geschrieben:aber du hast schon in der template konfigutation alles ordentlich eingetragen?
Ja. War eigentlich alles o.k. - bis auf das beschriebene Problem.
Allerdings ist es noch schlimmer gekommen.
Am nächsten tag war die komplette Seite (im Backend) nicht mehr sichtbar...
Nachdem ich die Sitemap entfernt habe (und einige Zeit warten mußte) ging sie wieder.

Also:
Die Sitemap funktioniert leider nicht!
Gibt es denn keine andere variante des Moduls?
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

bist du dir sicher das du die version 4.4. benutz? bei mir hat die tatelos funktioniert.

gruss stony
Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Beitrag von Andreas »

stony hat geschrieben:bist du dir sicher das du die version 4.4. benutz? bei mir hat die tatelos funktioniert.
Ja. Version 4.4.2
Verstehe ich auch nicht...
Könntest Du mir denn den Code "zukommen lassen"?
Ich weiß, dass er auch auf der Contenido-Seite ist... nur zur Sicherheit.
Wäre sehr hilfreich.

Gruss
Andreas
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

bin leider selber nicht so ganz zufrieden mit der ausgabe, da das tabellen layout ja nicht mehr den heutigen standards entsprich, habe ich das ganze über ein listing ausgeben lassen, was aber auch nur unsauber ausgegeben wird.

gruss stony

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
*  Modulname  :     Sitemap
* Author(s)   :     Jan Lengowski, Jose Rodriguez
* Copyright   :     Contenido - four for business, Jose Rodriguez
* Created     :     15-08-2002
* Modified    :     14-01-2003 by nik wyss
* Modified    :     29-12-2003 by Sascha Benkart. 
*                   - Adapt to Contenido V4.4
************************************************/
// selected category
$selected = "CMS_VALUE[0]";

echo  "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n".
        "  <tr valign=\"top\">\n".
        "    <td>Kategorie wählen:</td>\n".
        "    <td>\n".
        "      <select name=\"CMS_VAR[0]\">\n".
        "        <option value='0'>---Alle---</option>\n";

// fetch all categorys
$query = "SELECT A.idcat, A.level, C.name 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 C.visible=1 ORDER BY A.idtree";

// execute query
$db->query($query);

// loop result and build the options
while ($db->next_record()) 
{
  // indent spacer
  $spaces = "";

  // how many levels
  $levels = $db->f("level");

  for ($i = 0; $i > $levels; $i ++) 
  {
     // add 2 spaces for every level
     $spaces = $spaces . "  ";
  } // end for

  if ($selected == $db->f("idcat")) 
  {
     // selected category
     echo "        <option selected=\"selected\" value=\"". 
             $db->f("idcat") ."\">". 
             $spaces . $db->f("name") ."</option>";
  } 
  else 
  {
     // category
     echo  "        <option value=\"". 
             $db->f("idcat") ."\">". 
             $spaces . $db->f("name") ."</option>";
  } // end if

} // end while

echo  "      </select>\n".
         "     </td>\n".
         "   </tr>\n".
         "   <tr>\n".
         "     <td>Anzahl Ebene:</td>\n".
         "     <td>\n".
         "       <input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\">\n".
         "     </td>\n".
         "   </tr>\n".
         " </table>\n";

Code: Alles auswählen


<?php
  /***********************************************
  * CONTENIDO MODUL - OUTPUT
  *
  *  Modulname   :     Sitemap
  * Author(s)      :    Nik Wyss
  * Copyright   :     None
  * Created     :     14-01-2003
  * Modified    :     14-01-2003
  * Modified    :     29-12-2003 by Sascha Benkart. 
  *                   - Adapt to Contenido V4.4
  *                   - Output only shows visible items
  ************************************************/
  
  $amountLevel = "CMS_VALUE[1]";
  $newcat = "CMS_VALUE[0]";
  $color = array("#aaaaff", "#bbbbff","#ccccff","#ddddff");
  
  function sitemap($newcat=0)
  {
    global $lang, $client, $amountLevel, $color, $startLevel, $cfg;
    $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 =$newcat AND level <= $amountLevel AND C.visible=1 ".
              "ORDER by A.idtree";
    $db->query($sql);
    $result = "<ol>";
    while ($db->next_record())
    {  
      $lvl = $db->f("level");
      if ($lvl==1)
      {
        $result.="";
      }
      $colorID=$lvl-$startLevel;
      if ($colorID > count($color)-1)
      {
        $colorID=count($color)-1;
      }
      $result	.=  "<li><a class='dunkel' href='front_content.php?idcat=".$db->f("idcat").
                  "&lang=$lang&client=$client' class='lmLink'>".
                  $db->f("name")."</a>".sitemap($db->f("idcat"))."</li>";
    }
    $result.= "</ol>";
    return($result);
  }
  
  $sql = "SELECT level FROM $cfgTab_cat_tree WHERE idcat=$newcat";
  $db->query($sql);
  $db->next_record();
  $startLevel = $db->f("level");
  $amountLevel +=  $startLevel;
  if ($newcat==0){$amountLevel--;}
  echo sitemap($newcat);
?>         
[/code]
Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Beitrag von Snoopy »

Ich habe auch einmal gebastelt mit der Sitemap. Kann man sich auf http://www.ajus-hamburg.de anschauen. wenn Interesse an dem layout besteht melden. die Hintergrund gifs bitte dort kopieren.

Gruss aus Hamburg :wink:
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

ja besteht :> kannste das modul mal posten?
maTTos
Beiträge: 130
Registriert: Fr 27. Jun 2003, 14:14
Kontaktdaten:

Beitrag von maTTos »

Sieht gut aus. Hätte auch großes Interesse daran. Bitte posten. Hat sich schon mal jemand an eine vertikale Sitemap rangemacht, so wie sie auf 4fb zu sehen ist: http://www.4fb.de/cms/view.php?idcat=36 ... m=&y=3&x=0
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

sind beides wirklich sehr schöne varianten...
fehlt eigentlich nur mehr eine wo die hauptkategorien + subartikel angezeigt wird... ;-)
Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Beitrag von Snoopy »

Sorry Mein lieber, aber die Hauptkategorien weden dargestellt. Das einzige ich habe zwei Bäume Druck einspaltig und Druck zweispaltig, Die habe ich Offline geschaltet. Die Artikel werden dennoch angezeigt. wenn Du auf die jeweiligen Buttons für Drucken klickst. denk an den Tread Printerfriendly Methode easy.

Im Input des Moduls kannst Du bestimmen welche Bäume du zeigen willst

Zu der Frage nach der vertikalversion dann muss ich auf meinem winzigweich system nochmal in den Papierkorb schaun, ist genauso vorhanden wie auf 4fourB gezeigt.

Gruss aus Hamburg Snoopy :wink:
Gesperrt