wrf_jQueryDHTMLNavi

MakD42
Beiträge: 103
Registriert: Sa 8. Nov 2003, 19:01
Wohnort: Marburg
Kontaktdaten:

Re: wrf_jQueryDHTMLNavi

Beitrag von MakD42 » Mi 20. Mär 2013, 16:30

Hallo René

danke für dein Tipp - funzt! Wie(wo trage ich die Frontenduser ein für die ich die Seiten freigeschaltet habe.
Die Seiten sollen für alle sichtbar sein, die sich erfolgreich eingelpggt haben.

LG aus Marburg
MakD 42
______________________
Contenido 4.6.8 & 4.8.15
MySQL 5.1.54
Linux/Apache
Meine Contenidoprojekte: art & weise | StadtMedia | aidea

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Re: wrf_jQueryDHTMLNavi

Beitrag von yodatortenboxer » Mi 20. Mär 2013, 17:04

Hallo René

danke für dein Tipp - funzt!
Erst einmal Ralf und nicht René ;-)

Das mit dem public war nur ein Beispiel das nur global funktioniert und alles mit public = 1 ausblendet.
Diese SQL-Abfrage muss dementsprechend noch weiter angepasst werden.

Es muss also noch zusätzlich der Frontentbenutzer inkl. Benutzergruppe abgefragt werden.
Dann müsste in der Tabelle con_frontendpermissions bei der Benutzergruppe unter item die geschützten idcat´s ausgelesen werden.
Diese müssten dann mit der Navigation abgeglichen werden, damit diese dann dementsprechend doch angezeigt werden.

Ob es dafür, zum Beispiel zur Ausgabe der Frontentberechtigungen, eine vorhandene Funktion gibt, kann ich dir leider nicht sagen.
Die beiden Sachen müssten aber miteinander abgelichen werden, ala wenn bei der idcat public 0 ist diese idcat aber in der aktuellen Permission auf ja steht, anzeigen.

Falls es da keine fertige Funktion gibt, und es schnell gehen müsste, würde ich also gleich am Anfang die idcat der Permission in ein Array schreiben und diese dann vor der SQL abfrage mit der Variable $cat abgleichen. Ist der Wert von $cat im Array ist im SQL kein

Code: Alles auswählen

C.public    = '1'
, ansonsten ist es drin. Dadurch werden auch die mit public=0 angezeigt.

So in der Art vieleicht.

Gruß Ralf
Schöne Grüße von Usedom
Ralf

MakD42
Beiträge: 103
Registriert: Sa 8. Nov 2003, 19:01
Wohnort: Marburg
Kontaktdaten:

Re: wrf_jQueryDHTMLNavi

Beitrag von MakD42 » Fr 22. Mär 2013, 09:08

Hallo Ralf,

tschuldigung - hab das mit dem Namen "übersehen". Ich habe versucht, die erweiterte Version von deinem "xtcSpryDHTMLNaviHorizontal" Moduls mit der neuen Version des "wrf_jQueryDHTMLNavi2.0.0" Moduls zu kombinieren .. leider ohne Erfolg.

Hier der Code des "xtcSpryDHTMLNaviHorizontal" Moduls das die Erweiterung für die Geschützten Bereiche von Axel http://forum.contenido.org/viewtopic.ph ... 4&start=15 enthält.

Code: Alles auswählen

    <?php
    /***********************************************
    * CONTENIDO MODUL - OUTPUT
    *
    * Modulname   :     DHTML Navi auf Spry1.6.1.-Basis
    * Author(s)   :     Ralf Fleischer
    * WWW-Adress  :     http://www.xtended-cooperation.de
    * Mail        :     info@xtended-cooperation.de
    * Created     :     12-05-2008
    * Modified    :     21-05-2008, Ralf Fleischer
    * Modified    :     15-11-2009, Axel Womatschka: FrontEndUser-Berechtigungen werden berücksichtigt
    * ************************************************/

    // include Contenido_FrontendNavigation class
    cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');
    cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation_Breadcrumb.class.php');
    cInclude('classes', 'class.frontend.permissions.php');
    cInclude('classes', 'class.frontend.groups.php');
    cInclude('classes', 'class.frontend.users.php');

    $hauptkategorie = getEffectiveSetting('navigation', 'idcat-dhtml', 1);
    $MaxLevel = getEffectiveSetting('navigation', 'idcat-dhtml-maxlevel', 10);

    //$hauptkategorie = "CMS_VALUE[0]";

    $navitems = array();

    function nav_feld ($cat,$Level) {
    global $user, $client, $lang, $cfg, $idcat, $auth;
    $FrontendPermissionCollection = new FrontendPermissionCollection;

            if (!is_object($db)) {
                $db = new DB_Contenido;
            }
            $sql = "SELECT
                         A.idcat,
                         A.level,
                         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
                         A.level     <=  $Level  AND             
                         B.parentid  = '$cat'
                      ORDER BY
                         A.idtree";

             $db->query($sql);
             while ( $db->next_record() ) {
               
                $aktiv = "";
                $cat_id = $db->f("idcat");
                $cat_idlang = $db->f("idcatlang");
                $visible=false;
               
                if($db->f("public")!=0){
                    $visible = true;
                    }elseif(($auth->auth['uid']!='')&&($auth->auth['uid']!='nobody')){
                    $FrontendGroupMemberCollection = new FrontendGroupMemberCollection;
                    $FrontendGroupMemberCollection->setWhere("idfrontenduser",$auth->auth['uid']);
                    $FrontendGroupMemberCollection->query();
                    $groups = array();
                    while ($member = $FrontendGroupMemberCollection->next()){
                        $groups[] = $member->get("idfrontendgroup");
                        }   
                    }
                if(count($groups)>0){
                    for($i=0;$i<count($groups);$i++){
                        if($FrontendPermissionCollection->checkPerm($groups[$i],'category','access',$cat_idlang, true)){
                        $visible=true;
                        }
                    }
                }
                if($visible){
                    $sub_feld = nav_feld($db->f("idcat"),$Level);
                    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 = "  ")
    {
    global $first,$Level,$LevelMax;

           if (is_array($array["feld"])) {
             if ($first) {
               echo $indent . "<ul id=\"MenuBar1\" class=\"MenuBarHorizontal\">\n";
               $first = 0;
             }
             else echo $indent . "<ul>\n";
             foreach ($array["feld"] as $menupunkt) {
               if ($menupunkt["active"] == "active") echo $indent . $indent . "<li class=\"active\">\n";
               elseif ($menupunkt["active"] == "activepath") echo $indent . $indent . "<li class=\"activepath\">\n";
               else echo $indent . $indent . "<li class=\"passiv\">\n";
               if (is_array($menupunkt["sub"]["feld"])) {
                 echo $indent . $indent . $indent . "<a class=\"MenuBarItemSubmenu\" href=\"front_content.php?idcat=" . $menupunkt["idcat"] . "\">" . $menupunkt["name"] . "</a>\n";
                 liste($menupunkt["sub"], $indent."    ");
               }
               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,$MaxLevel); 

    $first = 1;

    liste($navitems);
    ?>
Ich habe versucht, die Ausgabe von diesem Modul anzupassen - leider ohne den geringsten Erfolg.
Kannst Du mir da Helfen?
MakD 42
______________________
Contenido 4.6.8 & 4.8.15
MySQL 5.1.54
Linux/Apache
Meine Contenidoprojekte: art & weise | StadtMedia | aidea

Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Re: wrf_jQueryDHTMLNavi

Beitrag von Andreas » Di 7. Jan 2014, 18:40

Hallo zusammen,
hat jemand herausgefunden, wie man die jeweils ausgewählten Menüpunkte als aktiv gekennzeichnet?
Für Hilfe wäre ich sehr dankbar... :-)
Gruß
Andreas

Gesperrt