Seite 1 von 1

Probleme mit Sitemap

Verfasst: Sa 7. Feb 2004, 17:56
von neu@cidnet.de
Hallo,

Contenidoversion ist : 4.4.2
Wenn nun die Sitemap aufgerufen wird, wird mir in der ERROR-Log folgender Eintrag verfasst.

[07-Feb-2004 17:52:25] Invalid SQL: SELECT level FROM WHERE idcat=1<br><br>
[07-Feb-2004 17:52:25] next_record called with no query pending.

Hat jemand ne idee was das sein kann??
(Frage unten nochmals)

daaanke für ne antwort :lol:


ich habe folgende Module installiert:

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





<?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", "#F7C473","#F5D49F","#F8DDB1");

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='110px' 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 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);
?>



Contenidoversion ist : 4.4.2
Wenn nun die Sitemap aufgerufen wird, wird mir in der ERROR-Log folgender Eintrag verfasst.

[07-Feb-2004 17:52:25] Invalid SQL: SELECT level FROM WHERE idcat=1<br><br>
[07-Feb-2004 17:52:25] next_record called with no query pending.

Hat jemand ne idee was das sein kann??

neu :)

Verfasst: So 8. Feb 2004, 12:43
von timo
ja - das modul ist für die 4.2 geschrieben und nicht für die 4.4.2 - ergo umschreiben oder nicht benutzen (oder im forum suchen, ob jemand das schon gemacht hat).

:(

Verfasst: So 8. Feb 2004, 13:28
von neu@cidnet.de
* - Adapt to Contenido V4.4
steht doch da, und sollte daher auch für 4.4. geeigenet sein oder nicht ?

Verfasst: So 8. Feb 2004, 14:37
von timo
nachdem das modul nicht funktioniert und offensichtlich nicht vollständig portiert wurde (siehe $cfgTab_cat_tree), mußt du dich mal mit dem portierer kurzschließen.

Verfasst: So 8. Feb 2004, 15:41
von Darth-Vader
ähm, ich benutz des Modul ohne Probleme unter 4.4.2... ;)


aber vielleicht hab ich ja ne andre Version.... :roll:

Verfasst: So 8. Feb 2004, 18:37
von chobbert
es gab dieses Modul auch mal in einer Version, bei der die Variablen für die neuen Contenido-Versionen übertragen werden:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
*  Modulname   :     Sitemap
* Author(s)      :    Nik Wyss
* Copyright   :     None
* Created     :     14-01-2003
* Modified    :     14-01-2003
************************************************/

// Variablendeklarationen
// Das Modul ist für eine ältere Contenido-VErsion - offensichtlich hießen Variablen damals anders...

$cfgTab_cat_tree = $cfg['tab']['cat_tree'];
$cfgTab_cat = $cfg['tab']['cat'];
$cfgTab_cat_lang = $cfg['tab']['cat_lang'];

Schöne Grüße

Robert

Verfasst: So 8. Feb 2004, 19:17
von neu@cidnet.de
und was mache ich jetzt ? mir haben einige andere auch gesagt, das das laufen müsste

Verfasst: So 8. Feb 2004, 19:22
von chobbert
mein Vorschlag: den oben geposteten Code-Abschnitt an den Anfang des Ouput-Bereichs setzen. Jetzt sollte die Variable mit dem Tabellennamen gesetzt und die SQL-Abfrage aus Deinem ersten Posting vollständig sein.

Klappt's?



Schöne Grüße

Robert

Verfasst: So 8. Feb 2004, 19:55
von Darth-Vader
So Leute, auf den Wunsch von einem hier ausm Forum poste ich mal den SRC von der Sitemap die bei mir ohne Probleme unter Contenido 4.4.2 läuft. Ich meine, ich hätte nichts daran geändert, aber naja, es kann auch sein, dass ich sie damals umschreiben musste und es jetzt nur nicht mehr weiss... ;) *scheiß alzheimer* :twisted:



Modul: Sitemap

Screenshot: siehe http://forseth.de/asta/asta-zw.de_sitemap.jpg


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
************************************************/


// Variablendeklarationen
// Das Modul ist für eine ältere Contenido-VErsion - offensichtlich hießen Variablen damals anders...

$cfgTab_cat_tree = $cfg['tab']['cat_tree'];
$cfgTab_cat = $cfg['tab']['cat'];
$cfgTab_cat_lang = $cfg['tab']['cat_lang'];

// selected category
$selected = "CMS_VALUE[0]";

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

            // fetch all categorys
            $query = "SELECT A.idcat, A.level, C.name 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 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>
          </td>
        </tr>
        <tr>
          <td>Anzahl Ebene:</td>
          <td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
        </tr>
      </table>";


OUTPUT:

Code: Alles auswählen

<?
//echo "<pre>";
//print_r($GLOBALS);
//echo "</pre>";
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
*  Modulname   :     Sitemap
* Author(s)      :    Nik Wyss
* Copyright   :     None
* Created     :     14-01-2003
* Modified    :     14-01-2003
************************************************/

// Variablendeklarationen
// Das Modul ist für eine ältere Contenido-VErsion - offensichtlich hießen Variablen damals anders...

$cfgTab_cat_tree = $cfg['tab']['cat_tree'];
$cfgTab_cat = $cfg['tab']['cat'];
$cfgTab_cat_lang = $cfg['tab']['cat_lang'];


$amountLevel = "CMS_VALUE[1]";
$newcat = "CMS_VALUE[0]";

$color = array("#5F5F5F", "#7F7F7F","#9F9F9F","#BFBFBF");

//$color = array("#aaaaff", "#bbbbff","#ccccff","#ddddff");

function sitemap($newcat=0){
  global $lang, $client, $amountLevel, $color, $startLevel, $cfgTab_cat, $cfgTab_cat_tree, $cfgTab_cat_lang;
  $db = new DB_Contenido;
  $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 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='lmLink'>".$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 "<center>".sitemap($newcat);
echo "<br><br><br></center>";



?>



Ich hoffe mal, dass es jetzt bei allen andern auch geht, wie gesagt bei mir läuft's. (Könnt ihr auch unter http://www.asta-zw.de/cms/front_content.php sehen :shock: )




so long,

Darth. :twisted:

Verfasst: So 8. Feb 2004, 20:08
von neu@cidnet.de
funtzt, wie genial :D :D :D