Seite 11 von 11

Re: Neues Modul: vpNavigation

Verfasst: Do 6. Dez 2012, 12:09
von xmurrix
Nakoda hat geschrieben:...ich wurde gerne die Erste Menüebene mit Grafiken der jeweiligen Kategorien versehen.
Ist das machbar und wenn ja, wie?...
Hallo Nakoda,

kenne das Modul auch nicht, aber probier mal folgende Version:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :       vpNavigation 0.2
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     30-03-2005
* Modified    :     16-07-2005
************************************************/


#Includes
cInclude("frontend", "includes/functions.navigation.php");
cInclude("classes", "class.frontend.permissions.php");
cInclude("classes", "class.frontend.groups.php");
cInclude("classes", "class.frontend.users.php");


$hauptkategorie = "CMS_VALUE[0]";

$navitems = array();

function nav_feld ($cat) {
global $client, $lang, $cfg, $idcat;

        if (!is_object($db)) {
            $db = new DB_Contenido;
        }
        $sql = "SELECT
                     A.idcat,
                     B.parentid,
                     C.name,
                     C.public,
                     C.idcatlang
                   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
                     B.idclient  = '$client' AND
                     C.idlang    = '$lang'   AND
                     C.visible   = '1'       AND
                     B.parentid  = '$cat'
                  ORDER BY
                     A.idtree";

         $db->query($sql);

         while ( $db->next_record() ) {
                     $visible = checkCatPermission($db->f("idcatlang"),$db->f("public"));
      if ($visible) {
            $aktiv = "";
            $sub_feld = nav_feld($db->f("idcat"));
            if ($db->f("idcat") == $idcat) $aktiv = "active";
            elseif ($sub_feld["activepath"]) $aktiv = "activepath";
            $nav_feld[] = array("idcat"      => $db->f("idcat"),
                                "name"       => $db->f("name"),
                                "active"     => $aktiv,
                                "sub"        => $sub_feld);
            if ($aktiv != "") $activepath = $aktiv;

         }
         }
         $rv = array("feld"          => $nav_feld,
                     "activepath"    => $activepath);

         return $rv;

}

function liste ($array, $indent = "  ", $level = 1)
{

global $first;

      $pos = 1;
        
       if (is_array($array["feld"])) {
         if ($first) {
           echo $indent . "<ul id=\"nav\">\n";
           $first = 0;
         }
         else echo $indent . "<ul>\n";
         foreach ($array["feld"] as $menupunkt) {
           if (1 == $level) {
             $cssclass = "navitem_" . $level . "_" . $pos++;
           } else {
             $cssclass = "";
           }

           if ($menupunkt["active"] == "active") echo $indent . $indent . "<li id=\"active " . $cssclass . "\">\n";
           elseif ($menupunkt["active"] == "activepath") echo $indent . $indent . "<li class=\"activepath " . $cssclass . "\">\n";
           else echo $indent . $indent . "<li class=\"" . $cssclass . "\">\n";
           if (is_array($menupunkt["sub"]["feld"])) {
             echo $indent . $indent . $indent . "<a class=\"daddy\" href=\"front_content.php?idcat=" . $menupunkt["idcat"] . "\">" . $menupunkt["name"] . "</a>\n";
             liste($menupunkt["sub"], $indent."    ", ++$level);
           }
           else echo $indent . $indent . $indent . "<a href=\"front_content.php?idcat=" . $menupunkt["idcat"] . "\">" . $menupunkt["name"] . "</a>\n";
           echo $indent . $indent . "</li>\n";

         }
         echo $indent . "</ul>\n";
       }
}

/* Create Navigation Array */
$navitems = nav_feld($hauptkategorie);

$first = 1;

liste($navitems, "  ", 1);

?>
Diese gibt die erste Ebene der Listenelemente in der Navigation immer mit einer CSS-Klasse aus, mit folgendem Format:

Code: Alles auswählen

// {level} = Die Navigationsebene, is 1 für die erste Ebene
// {position} = Die POosition der Kategorie in der Navigationsebene
navitem_{level}_{position}
Dann kannst du per CSS die Navigation nach belieben anpassen, z. B.:

Code: Alles auswählen

#nav .navitem_1_1 {background: transparent url('pfad/zum/bild/fuer/erste/kategorie');}
#nav .navitem_1_2 {background: transparent url('pfad/zum/bild/fuer/zweite/kategorie');}
Gruß
xmurrix

Re: Neues Modul: vpNavigation

Verfasst: Do 6. Dez 2012, 14:42
von Nakoda
Moin xmurrix,

danke für Deine Antwort.
Habe also den output ausgetauscht und in das Stylesheet für die Navigation habe ich folgendes geschrieben:

Code: Alles auswählen

#vpnavigation .navitem_1_1 {background: transparent url('../upload/Images_Header/1.jpg');}
Das hat mich aber leider nicht zum Ziel geführt.
Oder hab ich da was falsch verstanden?

Re: Neues Modul: vpNavigation

Verfasst: Do 6. Dez 2012, 15:45
von xmurrix
Nakoda hat geschrieben:...

Code: Alles auswählen

#vpnavigation .navitem_1_1 {background: transparent url('../upload/Images_Header/1.jpg');}
Das hat mich aber leider nicht zum Ziel geführt...
Wenn die Navigation die ID #vpnavigation hat und innerhalb der Navigation die Listenelemente die rictige CSS-Klasse (z. B. .navitem_1_1) haben, und der Pfad zum Hintergrundbild korrekt ist, sollte es funktionieren. Allerdings kann es sein, dass eine andere Formatangabe dies überschreibt, oder der anker, also der a-Tag, in der Liste den ganzen Bereich für sich beansprucht, so dass es die Liste "überdeckt".

Die genaue Formatierung hängt immer ganz von den Anforderungen ab, und von deiner jetzigen CSS-Struktur. Gehe davon aus, dass das mit etwas Anpassungen an CSS zu lösen ist...

Gruß
xmurrix

Re: Neues Modul: vpNavigation

Verfasst: Do 6. Dez 2012, 17:32
von Spider IT
Hallo Armin,

schick mir die Zugangsdaten, dann schaue ich mal.
Ach ja, wie immer per PN ;)

Gruß
René

Re: Neues Modul: vpNavigation

Verfasst: Fr 7. Dez 2012, 15:53
von xmurrix
Hallo zusammen,

habt ihr das Problem nun lösen können oder nicht?

Falls ja, dann würden sich bestimmt andere Forenuser über die Beschreibung der Lösung freuen. Denkt daran, da Forum hier davon lebt davon, dass User sich gegenseitig helfen...

Danke und ein schönes Wochenende.

Re: Neues Modul: vpNavigation

Verfasst: Fr 7. Dez 2012, 18:02
von Spider IT
Also, Murat, das weiß ich auch.
Und bisher habe ich immer, wenn ein im Forum angesprochenes Problem außerhalb gelöst wurde, dies auch im Forum bekannt gegeben (oder bekannt geben lassen).
Und da das auch bereits bei Armin der Fall war (den hab ich schon öfter geholfen), und du das mit Sicherheit auch mitgekriegt hast, verstehe ich nun wirklich nicht, warum du jetzt nach gerade mal 21,5 Stunden einen derartigen Beitrag posten musst.

Gruß
René

Re: Neues Modul: vpNavigation

Verfasst: Fr 7. Dez 2012, 18:15
von xmurrix
Spider IT hat geschrieben:...Und da das auch bereits bei Armin der Fall war (den hab ich schon öfter geholfen), und du das mit Sicherheit auch mitgekriegt hast, verstehe ich nun wirklich nicht, warum du jetzt nach gerade mal 21,5 Stunden einen derartigen Beitrag posten musst...
Bitte nicht persönlich nehmen, habe beide damit gemeint und dachte mir halt, dass der Fall innerhalb eines Tages gelöst sein sollte. Nakoda hat hier um Hilfe gefragt, ich habe ihm eine fertige Lösung angeboten und du ihm die Option, dass er sich bei dir per PM melden kann, das sollte doch nicht so zeitintensiv sein.

Egal, wie auch immer, bitte die Lösung einfach hier posten, wenn es soweit ist. Danke!

Re: Neues Modul: vpNavigation

Verfasst: Mo 10. Dez 2012, 11:25
von Spider IT
Problem gelöst :)
Ich habe im Modul folgendes geändert:
  • In Zeile 72 habe ich id=\"active\" geändert in class=\"active\"
  • In Zeile 72-74 habe ich <li geändert in <li id=\"Cat" . str_replace(' ', '_', capiStrReplaceDiacritics($menupunkt["name"])) . "\"
Im Stylesheet habe ich dann die Angabe #vpnavigation li#active in #vpnavigation li.active geändert (wegen der Änderung von id= zu class= im Modul).
Hier (im Stylesheet) kann man nun zusätzliche Angaben machen (wie #vpnavigation #CatHome, IDs findet man im Quelltext) und darin z.B. den Text per padding versetzen und links ein Hintergrundbild einfügen:

Code: Alles auswählen

#vpnavigation #CatHome {
    padding: 2px 0px 2px 20px;
    background-image: url('images/Navigation/Home.png');
    background-position: left top; /* oder Koordinaten */
    background-repeat: no-repeat;
}
Jedes li erhält jetzt eine ID, also ist die individuelle Formatierung nicht auf die oberste Ebene begrenzt ;)

Gruß
René

Re: Neues Modul: vpNavigation

Verfasst: Mo 10. Dez 2012, 23:56
von xmurrix
Das hast du super gelöst René, danke für das Posten der Lösung.

Gruß
xmurrix

Re: Neues Modul: vpNavigation

Verfasst: Sa 26. Jan 2013, 13:19
von Tonmischer
Erstmal super Modul! Danke!

Ich habe ein Problem mit dem Modul:

Die Navigation wird nicht horizontal dargestellt, sondern vertikal untereinander.


Wo kann der Fehler liegen?

Kann mir da jemand helfen?


Danke im Voraus!


Gruß

Re: Neues Modul: vpNavigation

Verfasst: So 27. Jan 2013, 10:54
von Spider IT
Moin,

klar, mit CSS formatieren.
Wichtig ist da die Angabe float: left; bei den lis.
Und nach dem Berech musst du dann ein clear: left; oder clear: both: machen (bei CSS3 geht das sogar per ul:after { clear: left; })

Gruß
René

Re: vpNavigation mit nur einem Kategorie-Baum

Verfasst: Mo 22. Sep 2014, 17:54
von dops_ab
robert087 hat geschrieben:Habe folgendes Problem mit dem vpnavigations Modul:

Als Hauptmenüpunkte werden mir alle Bäume angegeben

Hauptnavigation
Subnavigation
Systemseiten
Loginnavigation

aber ich will natürlich nür die unterpunkte von dem Baum Hauptnavigation ausgegeben bekommen.

Kann mir da irgentwer helfen?
Ich habe das gleiche Problem. Ich bekomme die Hauptnavigation, die Metanavigation und die Systemseiten-Navigation eingeblendet und möchte aber nur die Hauptnavigation über das Modul vpNavigation anzeigen lassen. Wer kann mir sagen wie ich das mache? Über eine schnelle Hilfe würde ich mich sehr freuen.

Re: Neues Modul: vpNavigation

Verfasst: Di 23. Sep 2014, 06:57
von homtata
Die Lösung scheint Seite 4 weiter unten zu stehen . Bitte solche Beiträge komplett gehen oder genauer beschreiben, welche Einstellungen wo vorgenommen wurden und was dann trotzdem nicht klappt. LG

Re: Neues Modul: vpNavigation

Verfasst: Di 23. Sep 2014, 07:39
von dops_ab
Ich habe es jetzt selbst herausgefunden. Man muss im Grunde zuerst das Modul installieren. Danach baut man den Container in das Layout ein und legt ein Template an. Im Template kann man auch schon die Vorkonfiguration nutzen (obwohl ich nicht weiß ob das so viel bringt ;o)

Der wichtigste Punkt - also die Auswahl des Kategorie-Baumes kommt dann im Anschluss über den Punkt "Contenido / Kategorien". Dort muss man auf das Stifte-Symbol der jeweiligen Kategorie klicken um an den Befehl "Kategorie konfigurieren" zu kommen.

Wenn die Kategorie mit dem Template (in der vpNavigation enthalten ist) verbunden ist, dann kann man dort den Navigationsbaum auswählen. Also z.B. Hauptnavigation, wenn man den Beispielmandanten mit -inhalten installiert hat. Bei mir funktioniert es nun einwandfrei und ich kann mich auf die CSS-Anpassung konzentrieren.