Sitemap Ebene 0 nicht anzeigen

Gesperrt
tommo
Beiträge: 120
Registriert: So 27. Jun 2004, 21:34
Kontaktdaten:

Sitemap Ebene 0 nicht anzeigen

Beitrag von tommo » Fr 8. Jul 2005, 08:48

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:

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 8. Jul 2005, 15:07

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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Di 2. Aug 2005, 11:41

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.

webdev
Beiträge: 41
Registriert: Do 16. Sep 2004, 15:54
Kontaktdaten:

Templateeinstellungen bei Sitemap

Beitrag von webdev » Do 1. Sep 2005, 08:02

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.

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Di 27. Sep 2005, 14:13

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?

emergence
Beiträge: 10641
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 27. Sep 2005, 14:16

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
*** make your own tools (wishlist :: thx)

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Di 27. Sep 2005, 14:30

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

emergence
Beiträge: 10641
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 27. Sep 2005, 14:44

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;
*** make your own tools (wishlist :: thx)

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Di 27. Sep 2005, 14:55

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

emergence
Beiträge: 10641
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 28. Sep 2005, 07:08

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)...
*** make your own tools (wishlist :: thx)

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Mi 28. Sep 2005, 07:28

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

stxinden
Beiträge: 74
Registriert: Do 29. Jan 2004, 12:36
Wohnort: Aachen
Kontaktdaten:

In welchem Modul war denn der Fehler?

Beitrag von stxinden » Di 4. Okt 2005, 12:56

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
Stx

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Re: In welchem Modul war denn der Fehler?

Beitrag von baumpaul » Di 4. Okt 2005, 14:28

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.

Deddy
Beiträge: 79
Registriert: Do 1. Jun 2006, 09:00
Kontaktdaten:

Beitrag von Deddy » Mi 18. Jul 2007, 07:57

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

Gesperrt