Neues Modul: vpSitemap

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Di 28. Mär 2006, 09:46

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:

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » Di 28. Mär 2006, 12:16

super Dodger77, funzt sauber, merci
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » So 21. Mai 2006, 19:51

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

Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » So 21. Mai 2006, 20:04

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);

?>
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mo 22. Mai 2006, 10:01

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.

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

Beitrag von HerrB » Mi 14. Jun 2006, 22:06

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

Gesperrt