Seite 1 von 1

Sitemap Ebene 0 nicht anzeigen

Verfasst: Fr 8. Jul 2005, 08:48
von tommo
Hallo,
wie muss ich dieses Sitemapmodul umbauen, damit die Ebene 0 nicht mitangezeigt wird?

Input:

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";

Output:

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("#9E9D9D", "#BEBDBD","#CCCCCC","#DAD9D9");
  $startLevel = "1";
  
  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 AND C.public=1 ".
              "ORDER by A.idtree";
    $db->query($sql);
    $result = "<table border=0 cellspacing=1 cellpadding=3 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='menu'>".
                  $db->f("name")."</a></td><td>".sitemap($db->f("idcat")).
                  "</td></tr>";
    }



    $result.= "</table>";
    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);
?>         

Vielen Dank :wink:

Verfasst: Fr 8. Jul 2005, 15:07
von HerrB
Ungetestet. Output erstes SQL-Statement:
Bei

Code: Alles auswählen

AND level <= $amountLevel 
folgendes ergänzen:

Code: Alles auswählen

AND level > 0
, d.h.

Code: Alles auswählen

AND level > 0 AND level <= $amountLevel
Gruß
HerrB

Verfasst: Di 2. Aug 2005, 11:41
von astar
Hallo,

Was mach ich da immer falsch...

Ich habe versucht die hier abgebildete Sitemap auf meiner Seite abzubilden.

Mein Vorgehen:

Habe ein neues Modul angelegt "sitemap". Dort habe ich bei Eingabe den obigen Input-Code eingefügt und bei Ausgabe den obigen Output-Code.

Habe dann für den Button Sitemap einen Artikel angelegt und diesem ein dafür angepasstes Template in welches ich das Sitemap Modul integriert habe zugeordnet.

wenn ich jetzt auf den Button Sidemap in der Hilfsnavigation klicke, kommt keine Sitemap sondern nur der leere Artikel.

Templateeinstellungen bei Sitemap

Verfasst: Do 1. Sep 2005, 08:02
von webdev
Hallo,

weiss nicht, ob das noch aktuell ist...

Wie hast Du das Template eingestellt? Bei Style-Template musst Du im Sitemap-Modul > 'Kategorie wählen' auf 'Alle' einstellen und bei 'Anzahl Ebene' die gewünschte Anzahl eingeben (z.B. 5)

Dann müsste es klappen.

Verfasst: Di 27. Sep 2005, 14:13
von baumpaul
Wenn ich das Modul hinzufüge kommt bei mir der Fehler

Code: Alles auswählen

This module uses variables and/or functions which are probably not available in this Contenido version. Please make sure that you use up-to-date modules.
Was sagt das genau aus?

Verfasst: Di 27. Sep 2005, 14:16
von emergence
baumpaul hat geschrieben:Was sagt das genau aus?
das variablen im stile von $cfgTab_cat_tree wie sie in der 4.2 version verwendet wurden veraltet sind.
die neue(? seit 4.3.x ?) schreibweise wäre $cfg["tab"]["cat_tree"]
siehe contenido/includes/cfg_sql.inc.php

Verfasst: Di 27. Sep 2005, 14:30
von baumpaul
emergence hat geschrieben:
baumpaul hat geschrieben:Was sagt das genau aus?
das variablen im stile von $cfgTab_cat_tree wie sie in der 4.2 version verwendet wurden veraltet sind.
die neue(? seit 4.3.x ?) schreibweise wäre $cfg["tab"]["cat_tree"]
siehe contenido/includes/cfg_sql.inc.php
Ok, der Fehler ist nun weg, aber einen anderen habe ich immer noch wenn ich die Seite besuchen will.

Code: Alles auswählen

Parse error: parse error, unexpected T_STRING in /customers/..../cms/front_content.php(765) : eval()'d code on line 19

Verfasst: Di 27. Sep 2005, 14:44
von emergence
geh bitte..
du hast es genau 1:1 so ersetzt, oder ?

korrekte schreibweisen wären:

Code: Alles auswählen

$sql = "SELECT level FROM ".$cfg["tab"]["cat_tree"]." WHERE idcat=$newcat";
oder

Code: Alles auswählen

$sql = "SELECT level FROM {$cfg["tab"]["cat_tree"]} WHERE idcat=$newcat";
oder

Code: Alles auswählen

$sql = 'SELECT level FROM '.$cfg["tab"]["cat_tree"].' WHERE idcat='.$newcat;

Verfasst: Di 27. Sep 2005, 14:55
von baumpaul
emergence hat geschrieben:korrekte schreibweisen wären:

Code: Alles auswählen

$sql = "SELECT level FROM ".$cfg["tab"]["cat_tree"]." WHERE idcat=$newcat";
genau diese version habe ich genommen.

Ich kann das Template mit dem Modul einstellen wie ich es will. Das habe ich auch getan. Kann es sein das der Fehler kommt weil ich keien front_content.php Seiten sonder index.php benutze. Diesen Fehler habe ich nähmlich auch noch bei der Volltextsuche. Oder kann so einen Fehler auch der Server verursachen?

Wenn ich die Seite editieren möchte kommt übrigens dieser Fehler

Code: Alles auswählen

[27-Sep-2005 15:43:36] PHP Parse error:  parse error, unexpected T_STRING in /customers/.../admin/includes/include.con_editcontent.php(628) : eval()'d code on line 19

Verfasst: Mi 28. Sep 2005, 07:08
von emergence
baumpaul hat geschrieben:genau diese version habe ich genommen.
dann bin ich beruhigt...
baumpaul hat geschrieben:Ich kann das Template mit dem Modul einstellen wie ich es will. Das habe ich auch getan. Kann es sein das der Fehler kommt weil ich keien front_content.php Seiten sonder index.php benutze. Diesen Fehler habe ich nähmlich auch noch bei der Volltextsuche. Oder kann so einen Fehler auch der Server verursachen?
der fehler den du da hast kommt dann ziemlich sicher nicht vom sitemap modul. eventuell hast du ein template nicht vollständig konfiguriert...

du kannst versuchen mal alle module wegzuschalten und dann schritt für schritt jedes einzelne wieder dazuschalten um rauszufinden wo der fehler sein könnte...

es gibt bei der 4.5.x version noch ein nettes feature das dir bei der fehlersuche helfen kann...

in contenido/includes/config.misc.php
findet sich ein schalter

Code: Alles auswählen

/* To output the code when editing and browsing the frontend, set
   this to true */
$cfg["debug"]["codeoutput"] = false;
setzt du das auf true erscheint im backend beim editieren überhalb des codes eine textarea mit dem kompletten code der evaluiert werden soll. um zeile 19 herum müsste sich da ein fehler befinden (lt. deiner fehlermeldung)
das hilft dir sicher um den fehler ding fest machen zu können(bzw einem modul zuordnen zu können)...

Verfasst: Mi 28. Sep 2005, 07:28
von baumpaul
emergence hat geschrieben:in contenido/includes/config.misc.php
findet sich ein schalter

Code: Alles auswählen

/* To output the code when editing and browsing the frontend, set
   this to true */
$cfg["debug"]["codeoutput"] = false;
setzt du das auf true erscheint im backend beim editieren überhalb des codes eine textarea mit dem kompletten code der evaluiert werden soll. um zeile 19 herum müsste sich da ein fehler befinden (lt. deiner fehlermeldung)
das hilft dir sicher um den fehler ding fest machen zu können(bzw einem modul zuordnen zu können)...
Ah, das ist ja eine sinnvolle Funktion. Habe den Fehler so gleich in einem Modul endeckt.

Danke

In welchem Modul war denn der Fehler?

Verfasst: Di 4. Okt 2005, 12:56
von stxinden
Hallo Baumpaul,

in welchem Modul war denn der Fehler? Bei mir (Contenido Version 4.5.3 Beta) erscheint stets folgende Meldung:

Code: Alles auswählen

[04-Okt-2005 13:47:23] PHP Parse error:  parse error, unexpected T_STRING in pfadzu/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 2
[04-Okt-2005 13:46:45] PHP Parse error:  parse error, unexpected T_STRING in pfadzu/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 2
[04-Okt-2005 13:46:30] PHP Parse error:  parse error, unexpected T_STRING in pfadzu/fgh/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 2
[04-Okt-2005 13:42:28] PHP Parse error:  parse error, unexpected T_STRING in pfadzu/fgh/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 2
Ich verstehe das nicht und das Umsetzen von false auf true in der Funktion:

Code: Alles auswählen

/* To output the code when editing and browsing the frontend, set
   this to true  normal: false*/
$cfg["debug"]["codeoutput"] = false;
brachte auch kein Ergebnis.

Help me please!
stx

Re: In welchem Modul war denn der Fehler?

Verfasst: Di 4. Okt 2005, 14:28
von baumpaul
stxinden hat geschrieben:Hallo Baumpaul,

in welchem Modul war denn der Fehler? Bei mir (Contenido Version 4.5.3 Beta) erscheint stets folgende Meldung:

Code: Alles auswählen

[04-Okt-2005 13:47:23] PHP Parse error:  parse error, unexpected T_STRING in pfadzu/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 2
[04-Okt-2005 13:46:45] PHP Parse error:  parse error, unexpected T_STRING in pfadzu/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 2
[04-Okt-2005 13:46:30] PHP Parse error:  parse error, unexpected T_STRING in pfadzu/fgh/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 2
[04-Okt-2005 13:42:28] PHP Parse error:  parse error, unexpected T_STRING in pfadzu/fgh/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 2
Ich verstehe das nicht und das Umsetzen von false auf true in der Funktion:

Code: Alles auswählen

/* To output the code when editing and browsing the frontend, set
   this to true  normal: false*/
$cfg["debug"]["codeoutput"] = false;
brachte auch kein Ergebnis.

Help me please!
stx
der Fehler war in einem Modul das ich selbst geschrieben habe. Weil ich das auch 4.4.x übernommen habe und es zu 4.5 nicht mehr kompatibel war.

Wenn du auf "true" stellst solltest du einen unterschied bemerken wenn du dein Frontend anschaust.

Verfasst: Mi 18. Jul 2007, 07:57
von Deddy
Hallo!
Ich bin nicht so der Crack und hoffe, dass mir jemand helfen kann.

Ich möchte gerne alle Artikel die sich in den Kategorien befinden anzeigen. Wo muss ich dazu ansetzen?

Gruß Deddy