Seite 1 von 1

Sitemap Modul für mehrere Bäume

Verfasst: Di 13. Sep 2011, 08:45
von sarronsarron
Hallo,

ich habe 3 Navigationsbäume. Leider bildet das Standart Sitemap Modul nur einen ab.

Gibt es da schon ein anderes Modul oder eine Lösung?

Dank im Voraus
sarronsarron

Re: Sitemap Modul für mehrere Bäume

Verfasst: Di 13. Sep 2011, 21:48
von xmurrix
Hallo sarronsarron,

ein anderes Modul ist mir nicht bekannt.

Du kannst da aber auch Lösen, indem du das Sitemap-Modul zwei mal duplizierst und dann alle drei Sitemap-Module in einem Layout als Modulcontainer anlegst. Dann kannst du alle Sitemap-Module separat konfigurieren. Du musst auch dafür sorgen, dass Funktionen im Modulcode nicht mehrfach definiert werden.

Ist zwar nicht ganz ideal, sollte aber funktionieren.

Gruß
xmurrix

Re: Sitemap Modul für mehrere Bäume

Verfasst: Di 13. Sep 2011, 22:17
von sarronsarron
Hallo,

ja sowas hab ich mir scho gedacht. ISt aber etwas aufwendig. Habe auf eine einfachere Lösunfe gehofft.
Naja, dann wird mir wohl nichts anderes übrigbleiben.

gruß sarronsarron

Re: Sitemap Modul für mehrere Bäume

Verfasst: Mi 14. Sep 2011, 12:10
von Spider IT
Hallo sarronsarron,

das Sitemap-Modul aus der Contenido 4.6 von Ingo van Peeren kan das, da kann man bei der Kategorieauswahl "----Alle----" auswählen.
Kann sein, dass ich das Modul mal überarbeitet habe um diese Funktionalität rein zu kriegen, deshalb poste ich es mal hier:

Beschreibung:

Code: Alles auswählen

Sitemap aufbauen

Author: Ingo van Peeren (ingo@van-peeren.de)
Version: 0.1
Input:

Code: Alles auswählen

$selected = "CMS_VALUE[0]";

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

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

// Abfrage ausführen
$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

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

} // end while

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

echo "<td><input type=\"radio\" name=\"CMS_VAR[2]\" value=\"1\"";
if( "CMS_VALUE[2]" == "1" ) {
    echo "checked=\"checked\"";
}
echo "> ja
<input type=\"radio\" name=\"CMS_VAR[2]\" value=\"0\"";
if( "CMS_VALUE[2]" == "0" ) {
    echo "checked=checked";
}
echo "> nein </td></tr>";
echo "      </table>";
Output:

Code: Alles auswählen

<?php

// CMS_VALUES initialisieren
$anzahlEbenen      = "CMS_VALUE[1]";
$startkategorie    = "CMS_VALUE[0]";
$ebeneNullAnzeigen = "CMS_VALUE[2]";

function vpSitemap($kategorie=0) {
    global $lang, $client, $cfg, $startkategorie, $anzahlEbenen, $ebeneNullAnzeigen;
    $db  = new DB_Contenido;
    $sql  = "SELECT
           *,
           C.public
          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=$kategorie AND
           level <= $anzahlEbenen AND
           C.visible=1
          ORDER BY
           A.idtree";
    $db->query($sql);
    $treffer = $db->num_rows();
    if( $treffer ) {
        if( $kategorie == $startkategorie ) {
            $result .= "<ul class=\"sitemap\">\n";
        } else {
            $result .= "<ul>\n";
        }
    }
    while( $db->next_record() ) {
        $lvl = $db->f("level");
        if( checkCatPermission($db->f("idcatlang"),$db->f("public")) ) {
            if( ($lvl > 0) || ($ebeneNullAnzeigen) ) {
                $result.=  "<li><a href='front_content.php?idcat=".$db->f("idcat")."&lang=$lang&client=$client' title='Ebene ".$lvl.": ".$db->f("name")."'>".$db->f("name")."</a>".vpSitemap($db->f("idcat"), $lvl)."</li>\n";
            } else {
                $result.=  "<li>&nbsp;".vpSitemap($db->f("idcat"), $lvl)."</li>\n";
            }
        }
    }
    if( $treffer ) $result .= "</ul>\n";
    return($result);
}

$sql = "SELECT
         level
        FROM
         ".$cfg["tab"]["cat_tree"]."
        WHERE
         idcat=$startkategorie";
$db->query($sql);
$db->next_record();
$startEbene = $db->f("level");
$anzahlEbenen += $startEbene;
if( ($startkategorie==0) && ($ebeneNullAnzeigen) ) {
    $anzahlEbenen--;
}
echo vpSitemap($startkategorie);

echo "<br class=\"y\"/>";

?>
Gruß
René

Re: Sitemap Modul für mehrere Bäume

Verfasst: Mi 14. Sep 2011, 13:23
von sarronsarron
Danke,


werds ausprobieren

gruß sarronsarron

Re: Sitemap Modul für mehrere Bäume

Verfasst: Mi 14. Sep 2011, 18:38
von Dodger77
Aber bitte die aktuelle Version verwenden:

http://www.contenido-tutorials.de/module/vpsitemap/

:D