Seite 3 von 3

Verfasst: Di 28. Mär 2006, 09:46
von Dodger77
mvf hat geschrieben:nochmal ne frage zu CSS

kann man listen derart formatieren, dass man gleichen ebenen unterschiedliche attribute zuweist?

beispiel: die liste, in diesem fall vpsitemap, soll je nach Nav1-3 z.b. eine unterschiedliche schriftfarbe haben
Ohne zu coden wäre es natürlich am einfachsten, das Modul halt dreimal einzusetzen. Ansonsten in der obersten Ebene einfach als ID den Alias der Kategorie ausgeben, damit das ungefähr so aussieht:

Code: Alles auswählen

<ul>
  <li id="Nav1">
  ...
  </li>
  <li id="Nav2">
  ...
  </li>
  <li id="Nav3">
  ...
  </li>
</ul>
Und schon kann man mit CSS loslegen. :wink:

Verfasst: Di 28. Mär 2006, 12:16
von mvf
super Dodger77, funzt sauber, merci

Verfasst: So 21. Mai 2006, 19:51
von mvf
hallo Dodger77
servus community

habe soeben bemerkt, dass bei der sitemap nicht die geschützten bereiche berücksichtigt werden. Erster platter Versuch mal generell zu unterscheiden zwischen logged in oder nicht sind fehl geschlagen :(

mein erster ansatz war folgender im output:


Code: Alles auswählen

function vpSitemap($kategorie=0)
{
  global $lang, $client, $cfg, $startkategorie, $anzahlEbenen, $ebeneNullAnzeigen;
$db  = new DB_Contenido;
  
  if ($auth->auth["uid"] == "nobody"){
  
  $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 C.public=1             
             AND B.idclient='$client'
             AND B.parentid=$kategorie
             AND level <= $anzahlEbenen
             AND C.visible=1
           ORDER by A.idtree";
  
  } else {

  $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=$kategorie
             AND level <= $anzahlEbenen
             AND C.visible=1
           ORDER by A.idtree";  	
  	
  }
  
  
  
    $db->query($sql);
.
.
.
also plattes abfragen ob die cat public ist oder nicht

kann mich bitte mal jemand in die richtige richtung schubsen.. nächster schritt wäre dann die sitemap in abhängigkeit zum login

beispiel demo/demo eingelogged sollte MRFreising (grün) wie folgt aussehen

Code: Alles auswählen

# Maschinenring Freising e.V.

    * Aktuell
    * Über uns
          o Chronik
          o Geschäftsstelle
          o das Team
          o der Vorstand
    * Service und Leistungen
    * Mitglieder Bereich
          o Mitgliedsdaten
          o Maschinenbestand
    * Kontakt

nicht eingelogged respektive zunächst mal so:

Code: Alles auswählen

# Maschinenring Freising e.V.

    * Aktuell
    * Über uns
          o Chronik
          o Geschäftsstelle
          o das Team
          o der Vorstand
    * Service und Leistungen
    * Kontakt


Verfasst: So 21. Mai 2006, 20:04
von mvf
hehe zu früh gekräht ;)

hab mal in die original sitemap geschaut, mein output sieht jetzt wiie folgt aus und damit läuft es

Code: Alles auswählen

<?php

cInclude("classes", "class.frontend.permissions.php");
cInclude("classes", "class.frontend.groups.php");
cInclude("classes", "class.frontend.users.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
             *
           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 id=\"sitemap\">\n";
      else $result .= "<ul>\n";
    }
    while ($db->next_record())
    {
    	
		$visible = checkCatPermission($db->f("idcatlang"),$db->f("public"));
		if ($visible) {    	
    	
    	
      $lvl = $db->f("level");
      if (($lvl > 0) || ($ebeneNullAnzeigen)) $result.=  "<li><a href='front_content.php?idcat=".$db->f("idcat")."&lang=$lang&client=$client' title='".$db->f("name")."' class='sitemap".$db->f("idcat")."'>".$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);

?>

Verfasst: Mo 22. Mai 2006, 10:01
von Dodger77
mvf hat geschrieben:hehe zu früh gekräht ;)

hab mal in die original sitemap geschaut, mein output sieht jetzt wiie folgt aus und damit läuft es
Danke sehr! Schöne Erweiterung. Wollte das eh mal einbauen, nur die Zeit fehlt mir leider.

Verfasst: Mi 14. Jun 2006, 22:06
von HerrB
Es sei erwähnt, dass die letzte Änderung nur mit V4.6.x und installiertem frontendlogic-Plugin funktioniert (Plugin ist in der V4.6.8.5 unter Misc V4.6 enthalten)

Diese Modul-Version (mit FrontendUser-Klasse und checkCatPermission) kann aber nicht unter V4.4.x eingesetzt werden.

Gruß
HerrB