Sitemap zeigt auch offline kategorien

Gesperrt
neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Sitemap zeigt auch offline kategorien

Beitrag von neu@cidnet.de » Mo 15. Mär 2004, 16:27

Code: Alles auswählen

http://www.kirchekelzenberg.de/con_kike/cms/front_content.php?idcat=71
Ich hab die Sitemap installiert. Modul ist auch grün, scheint so weit alles okay. Es werden nur kategorien gelistet die offline sind. Wie muss ich das Script ändern, das offline kategorien oder artikel die offline sind nicht mehr angezeigt werden. ??

Modul:

Code: Alles auswählen

Eingabe:


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

Code: Alles auswählen

 Ausgabe:

<? 
//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", "#FFFF99","#FFFFCC","#FFFFFF"); 

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



?> 

hat dazu jemand ne ideee ??
möglich müsste das ja eingentlisch schon sein :o

neu :)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mo 15. Mär 2004, 16:33


neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Mo 15. Mär 2004, 17:47

Hallo,

ändere das SQL-Statement im Modul-Output wie folgt:

Code:
$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";


Getestet aber ohne Garantie.


Schöne Grüße

Robert


gegen was muss das ausgetauscht werden ?????

chobbert
Beiträge: 371
Registriert: Mo 14. Jul 2003, 10:14
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von chobbert » Mo 15. Mär 2004, 18:26

gegen

Code: Alles auswählen

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

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Mo 15. Mär 2004, 19:35

funtzt danke

laurisilva
Beiträge: 40
Registriert: Di 11. Nov 2003, 19:16
Kontaktdaten:

Beitrag von laurisilva » Mo 15. Mär 2004, 21:10

Wie müsste man die Abfrage verändern, dass alle Artikel einer kategorie angezeigt werden, und nicht nur die Startartikel?

Gruss
Anian
-------------------------------------------------------
www.anian-leistner-webdesign.de

chobbert
Beiträge: 371
Registriert: Mo 14. Jul 2003, 10:14
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von chobbert » Mo 15. Mär 2004, 22:45

das momentane Modul ruft die Kategorien in einer rekursiven Funktion auf. Jetzt müsste man eine zusätzliche (!) Abfrage in jeder Kategorie durchführen, die dann die enthaltenen Artikel ausgibt.

Robert

laurisilva
Beiträge: 40
Registriert: Di 11. Nov 2003, 19:16
Kontaktdaten:

Beitrag von laurisilva » Mo 15. Mär 2004, 22:53

Aha - ist das kompliziert? Ich habe leider (fast) keine PHP-Erfahrung. Vielleicht könnten das ja jemand machen. Ich glaub das würde nicht nur mich interessieren.

Gruss
Anian
-------------------------------------------------------
www.anian-leistner-webdesign.de

chobbert
Beiträge: 371
Registriert: Mo 14. Jul 2003, 10:14
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von chobbert » Mo 15. Mär 2004, 22:56

Nein, kompliziert nicht. Jedenfalls nicht, wenn man keine allzu hohen Anforderungen an die grafische Ausgabe stellt. Man muß sich vor allem entscheiden, wie zwischen Artikeln und Unterrubriken in der Darstellung unterschieden werden soll.

Würde das auch machen, allerdings fehlt mir momentan die Zeit...

Robert

laurisilva
Beiträge: 40
Registriert: Di 11. Nov 2003, 19:16
Kontaktdaten:

Beitrag von laurisilva » Mo 15. Mär 2004, 23:10

Danke für die Antwort.
Mir würde schon die einfache Ausgabe reichen, wie Sie im normalen Sitemap-Modul erscheint. http://www.coaching-informationen.de/fr ... p?idcat=30
Mir gehts hauptsächlich darum, dass Google alle Seiten indizieren kann. Ohne es kompliziert zu machen kann ich das nur über die Sitemap lösen, da auf viele Seiten von Coaching-Informationen.de nur mittels eines Abfrageformulars zugegriffen werden kann, oder sie über das Newsmodul erreichbar sind, das ja auch mit mehreren Parametern arbeitet und somit Google untauglich ist.
Vielleicht hat ja jemand anderes mal Zeit :wink:
-------------------------------------------------------
www.anian-leistner-webdesign.de

Gesperrt