Navigation 1.1 mit geschützte Kategorie

Gesperrt
rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Navigation 1.1 mit geschützte Kategorie

Beitrag von rw72 »

Hallo,

ich nutze folgende Navi unter 4.6.15

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Navigation 1.1
* Author      :     Jan Lengowski
* Copyright   :     Contenido - four for business
* Created     :     15-05-2003
* Modified    :     26-05-2003
************************************************/

if ( !is_object($db2) ) {
    $db2 = new DB_Contenido;
}

/**
 * Check if a category is child
 * of another category
 *
 * @return boolean true/false
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 */
if (!function_exists("catIsChildOf"))
{
    function catIsChildOf($id, $idparent) {
    
        global $cfg, $client, $lang;
    
        $db = new DB_Contenido;
    
        $parent = $id;
    
        while ( $parent != 0 ) {
    
            $sql = "SELECT
                        a.parentid
                    FROM
                        ".$cfg["tab"]["cat"]." AS a,
                        ".$cfg["tab"]["cat_lang"]." AS b
                    WHERE
                        a.idclient  = '".$client."' AND
                        b.idlang    = '".$lang."' AND
                        a.idcat     = b.idcat AND
                        a.idcat   = '".$parent."'";
    
            $db->query($sql);
            $db->next_record();
    
            $parent = $db->f("parentid");
    
            if ($parent == $idparent) {
                return true;
            }
    
        }
    
        return false;
    
    }
}

if ( catIsChildOf($idcat, "CMS_VALUE[0]") ) {
    $sel_idcat = $idcat;
} else {
    $sel_idcat = "CMS_VALUE[0]";
}

/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');

/**
 * Array storing alle the
 * navigation data
 */
$navitems = array();


/* Template Instance */
$tpl = new Template;

/**
 * Recursive function for creating
 * the navigation array
 * @param Int $idcat Category id
 */
function nav($idcat) {

        global $navitems, $client, $lang, $cfg;

        $db  = new DB_Contenido;
        $db2 = new DB_Contenido;

        $sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'";

        $db->query($sql);
        $db->next_record();

        $parentid = $db->f("parentid");

        if ( $parentid == 0 ) {

           if ( $idcat != "CMS_VALUE[0]" ){

                $navitems = array();
              
                $sql = "SELECT
                            A.idcat,
                            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
                            B.idclient  = '$client' AND
                            C.idlang    = '$lang'   AND
                            C.visible   = '1'       AND
                            B.parentid  = 'CMS_VALUE[0]'
                        ORDER
                            BY A.idtree";

                      $db->query($sql);

                      while ($db->next_record()) {

                            /* Check for external redirects... */
                            $sql = "SELECT
                                        a.external_redirect AS ext
                                    FROM
                                        ".$cfg["tab"]["art_lang"]." AS a,
                                        ".$cfg["tab"]["cat_art"]." AS b,
                                        ".$cfg["tab"]["cat"]." AS c
                                    WHERE
                                        b.idcat     = '".$db->f("idcat")."' AND
                                        b.is_start  = '1' AND
                                        c.idclient  = '".$client."' AND
                                        c.idcat     = b.idcat AND
                                        a.idart     = b.idart AND
                                        a.idlang    = '".$lang."'";

                            $db2->query($sql);
                            $db2->next_record();

                            $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';

                            $navitems[$db->f("idcat")] = array("idcat"      => $db->f("idcat"),
                                                                "name"      => $db->f("name"),
                                                                "target"    => $target);
                      }

           }
           
           return true;
        }

        $sql = "SELECT
                    A.idcat,
                    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
                    B.idclient  = '$client' AND
                    C.idlang    = '$lang'   AND
                    C.visible   = '1'       AND
                    B.parentid  = '$parentid'
                ORDER BY
                    A.idtree";

        $db->query($sql);

        while ($db->next_record()) {

                /* Check for external redirects... */
                $sql = "SELECT
                            a.external_redirect AS ext
                        FROM
                            ".$cfg["tab"]["art_lang"]." AS a,
                            ".$cfg["tab"]["cat_art"]." AS b,
                            ".$cfg["tab"]["cat"]." AS c
                        WHERE
                            b.idcat     = '".$db->f("idcat")."' AND
                            b.is_start  = '1' AND
                            c.idclient  = '".$client."' AND
                            c.idcat     = b.idcat AND
                            a.idart     = b.idart AND
                            a.idlang    = '".$lang."'";

                $db2->query($sql);
                $db2->next_record();

                $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
                
                $tmp_nav[$db->f("idcat")] = array("idcat"   => $db->f("idcat"),
                                                  "name"    => $db->f("name"),
                                                  "target"  => $target);
        }

        $tmp_nav[$idcat]["sub"] = $navitems;
        $navitems = $tmp_nav;

        /* Function call */
        nav($parentid);

}  // end function

$sql = "SELECT
            A.idcat,
            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
            B.idclient  = '$client' AND
            C.idlang    = '$lang'   AND
            C.visible   = '1'       AND
            B.parentid  = '$sel_idcat'
        ORDER BY
            A.idtree";

$db->query($sql);

while ( $db->next_record() ) {

        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext
                FROM
                    ".$cfg["tab"]["art_lang"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c
                WHERE
                    b.idcat     = '".$db->f("idcat")."' AND
                    b.is_start  = '1' AND
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        $db2->next_record();

        $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';

        $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                           "name"   => $db->f("name"),
                                           "target" => $target);
}

/* Create Navigation Array */
nav($sel_idcat);

/* Start Output buffer */
ob_start();

echo '<table cellspacing="0" cellpadding="0" border="0">';

foreach ($navitems as $key => $data) {

    /* 1. Navigations Ebene */
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'TARGET', $data['target']);
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
    $tpl->next();

    if ($idcat == $data['idcat'] || is_array($data['sub'])) {
        $tpl->generate('templates/navfirst_on.html');
    } else {
        $tpl->generate('templates/navfirst_off.html');
    }

    if (is_array($data['sub'])) {

        foreach ($data['sub'] as $key => $data) {

            /* 2. Navigations Ebene */
            $tpl->reset();
            $tpl->set('d', 'NAME',  $data['name']);
            $tpl->set('d', 'TARGET', $data['target']);
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
            $tpl->next();

            if ($idcat == $data['idcat'] || is_array($data['sub'])) {
                $tpl->generate('templates/navsecond_on.html');
            } else {
                $tpl->generate('templates/navsecond_off.html');
            }

            if (is_array($data['sub'])) {

                foreach ($data['sub'] as $key => $data) {

                    /* 3. Navigations Ebene */
                    $tpl->reset();
                    $tpl->set('d', 'NAME',  $data['name']);
                    $tpl->set('d', 'TARGET', $data['target']);
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
                    $tpl->next();

                    if ($idcat == $data['idcat']) {
                        $tpl->generate('templates/navthird_on.html');
                    } else {
                        $tpl->generate('templates/navthird_off.html');
                    }

                } // end foreach

            } // end if

        } // end foreach

    } // end if

} // end foreach

echo '</table>';

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;

?>
Leider werden die geschützten Kategorien angezeigt.
Wie kann ich diese ausblenden wenn man nicht angemeldet ist?
Oder verhindern das wenn man auf eine Kategorie klickt der Fehler
Call to undefined function: geteffectivesetting() in /srv/www/htdocs/web12/html/cms/invohochzeit/front_crcloginform.inc.php on line 19
erscheint.

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

Beitrag von HerrB »

Das ist ein altes Modul.
Wie kann ich diese ausblenden wenn man nicht angemeldet ist?
Das Modul Hauptnavigation aus dem Beispielmandanten V4.6.15 verwenden (das ist praktisch die gleiche, jedoch eben weiterentwickelt) - die Datein in cms/includes nicht vergessen...
Call to undefined function: geteffectivesetting() in /srv/www/htdocs/web12/html/cms/invohochzeit/front_crcloginform.inc.php on line 19
Das ist ein anderes Problem. Suche benutzen, geteffectivesetting, unter Bugs.

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