Hauptnavigation 2.Ebene gleich sichtbar

Gesperrt
tommo
Beiträge: 120
Registriert: So 27. Jun 2004, 21:34
Kontaktdaten:

Hauptnavigation 2.Ebene gleich sichtbar

Beitrag von tommo » Mo 7. Nov 2005, 15:31

Hallo,

wie muss ich denn das Standard-Haupnavimodul umbauen, damit die Untergruppen gleich angezeigt werden :?:

etwa so:
Hauptpunkt 1
Hauptpunkt 2
---Unterpunkt 21
---Unterpunkt 22
Hauptpunkt 3
Hauptpunkt 4
---Unterpunkt 41
---Unterpunkt 42
Hauptpunkt 5


Danke,
Tom

AnKe
Beiträge: 35
Registriert: Mi 28. Apr 2004, 08:52
Kontaktdaten:

Beitrag von AnKe » Mi 9. Nov 2005, 07:53

Hallo,
das wäre für mich auch eine Alternative zu einer zweimal eingesetzten Hauptnavi. hast Du da schon was rausgefunden?
VG Andrea

tommo
Beiträge: 120
Registriert: So 27. Jun 2004, 21:34
Kontaktdaten:

Beitrag von tommo » Mi 9. Nov 2005, 08:17

Nein, leider nicht :( :(

Tom

henning83
Beiträge: 41
Registriert: Mo 5. Sep 2005, 11:51
Kontaktdaten:

Beitrag von henning83 » Mi 9. Nov 2005, 09:08

Hallo!

ich bin mir nicht sicher, aber ich glaube es gibt eine weitere Möglichkeit...
Zumindest wenn ich euch richtig verstanden habe...

Ihr wollt mehrere Bäume einbinden? Und sie auch seperat anzeigen?

Wenn ich richtig überlege müsste man diese Hilfsnavigation doch missbrauchen können um das zu realisieren...
Also etwa in der Form:

________Op1_____Op2
Hp1
Hp2

und:

________Op1_____Op2
Hp3
Hp4

Dann hättet ihr 2 Navigationen... allerdings keine doppelt...
Ich hab jetzt leider die Testseite von 4.6.2 nich da ums zu testen... aber rein theoretisch sollte es gehen... allerdings glaub ich dann eher weniger dass er anzeigt welches Element im horizontalen Bereich markiert ist...
man sieht es nur am vertikalen Navigationsteil... so gesehen könnte man damit sogar 4 Ebenen realisieren... theoretisch :)
Vllt. ist das für euch ja eine Alternative...

Gruß

tommo
Beiträge: 120
Registriert: So 27. Jun 2004, 21:34
Kontaktdaten:

Beitrag von tommo » Mi 9. Nov 2005, 12:36

@henning83

nein, ich will nur einen Baum anzeigen, und zwar den des Hauptmenüs. Nur sollen sich die Untermenüpunkte nicht erst beim Klick auf einen Hauptmenüpunkt öffnen sondern von Angang an aufgeklappt sein.

Hier mal der unbearbeitete Output-Code des Moduls:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Hauptnavigation
* Author(s)   :     Jan Lengowski, Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
************************************************/

#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation

#Includes
cInclude("frontend", "includes/functions.navigation.php");

#If no tree is selected, use client setting
$start_cat = "CMS_VALUE[0]";
if ($start_cat=='') {
    $cApiClient = new cApiClient($client);
	$start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}

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
 */
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, $start_cat) ) {
    $sel_idcat = $idcat;
} else {
    $sel_idcat = $start_cat;
}

/* 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, $start_cat;

        $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 != $start_cat ){

                $navitems = array();
              
                $sql = "SELECT
                            A.idcat,
                            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  = '".$start_cat."'
                        ORDER
                            BY A.idtree";

                      $db->query($sql);

                      while ($db->next_record()) {

                            /* Check for external redirects... */
                            $sql = "SELECT
                                        a.external_redirect AS ext,
                                        a.idartlang AS idartlang
                                    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
                                        c.idclient  = '".$client."' AND
                                        c.idcat     = b.idcat AND
                                        a.idart     = b.idart AND
                                        a.idlang    = '".$lang."'";

                            $db2->query($sql);
                            $flag = false;
							while ($db2->next_record()&&!$flag) {
	                            if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
	                            {
									$flag = true;
	                                $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
	
	                                $navitems[$db->f("idcat")] = array("idcat"      => $db->f("idcat"),
	                                                                    "name"      => $db->f("name"),
	                                                                    "target"    => $target,
						                        	                    "public" => $db->f("public"),
		            					            	                "idcatlang" => $db->f("idcatlang"));
	                            }
							}
                      }

           }
           
           return true;
        }

        $sql = "SELECT
                    A.idcat,
                    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  = '$parentid'
                ORDER BY
                    A.idtree";

        $db->query($sql);

        while ($db->next_record()) {

                /* Check for external redirects... */
                $sql = "SELECT
                            a.external_redirect AS ext,
                            a.idartlang AS idartlang
                        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
                            c.idclient  = '".$client."' AND
                            c.idcat     = b.idcat AND
                            a.idart     = b.idart AND
                            a.idlang    = '".$lang."'";

                $db2->query($sql);
				$flag = false;
                while ($db2->next_record() && !$flag) {
	                if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
	                {
						$flag = true;
	                    $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
	                    
	                    $tmp_nav[$db->f("idcat")] = array("idcat"   => $db->f("idcat"),
	                                                      "name"    => $db->f("name"),
	   	                        	                      "public" => $db->f("public"),
		            					            	  "idcatlang" => $db->f("idcatlang"),
	                                                      "target"  => $target);
	                }
				}
        }

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

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

}  // end function

$sql = "SELECT
            A.idcat,
            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  = '$sel_idcat'
        ORDER BY
            A.idtree";

$db->query($sql);

while ( $db->next_record() ) {

        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext,
                    a.idartlang AS idartlang
                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
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        #$db2->next_record();
		$flag = false;
		while ($db2->next_record()&&!$flag) {
	        if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
	        {
				$flag = true;
	            $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
	    
	            $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
	                                               "name"   => $db->f("name"),
	  	                        	               "public" => $db->f("public"),
		            					           "idcatlang" => $db->f("idcatlang"),
	                                               "target" => $target);
	        }
		}
}

/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
    $cApiClient = new cApiClient($client);
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}

nav($sel_idcat);

/* Start Output buffer */
ob_start();

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

    /* 1. Navigation level */
	if (checkCatPermission($data['idcatlang'],$data['public'])) {
	    $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/navfirst_on.html');
		}elseif(is_array($data['sub'])){
	        $tpl->generate('templates/navfirst_open.html');
	    } else {
	        $tpl->generate('templates/navfirst_off.html');
	    }
	
    	/* 2. Navigation level */
	    if (is_array($data['sub'])) {
	        foreach ($data['sub'] as $key => $data) {
				if (checkCatPermission($data['idcatlang'],$data['public'])) {
		            $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/navsecond_on.html');
					}elseif(is_array($data['sub'])){
				        $tpl->generate('templates/navsecond_open.html');
		            } else {
		                $tpl->generate('templates/navsecond_off.html');
		            }

				    /* 3. Navigation level */
		            if (is_array($data['sub'])) {
		                foreach ($data['sub'] as $key => $data) {
							if (checkCatPermission($data['idcatlang'],$data['public'])) {
			                    $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');
								}elseif(is_array($data['sub'])){
							        $tpl->generate('templates/navthird_open.html');
			                    } else {
			                        $tpl->generate('templates/navthird_off.html');
			                    }

			                    /* 4. Navigation level */
					            if (is_array($data['sub'])) {
					                foreach ($data['sub'] as $key => $data) {
										if (checkCatPermission($data['idcatlang'],$data['public'])) {
						                    $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/navfourth_on.html');
											}elseif(is_array($data['sub'])){
										        $tpl->generate('templates/navfourth_open.html');
						                    } else {
						                        $tpl->generate('templates/navfourth_off.html');
						                    }

						                    /* 5. Navigation level */
								            if (is_array($data['sub'])) {
								                foreach ($data['sub'] as $key => $data) {
													if (checkCatPermission($data['idcatlang'],$data['public'])) {
									                    $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/navfifth_on.html');
									                    } else {
									                        $tpl->generate('templates/navfifth_off.html');
									                    }
										            } // end if
								                } // end foreach
								            } // end if
							            } // end if
					                } // end foreach
					            } // end if
				            } // end if
		                } // end foreach
		            } // end if
	            } // end if
	        } // end foreach
	    } // end if
    } // end if
} // end foreach

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

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;
?>
Tom

kees
Beiträge: 4
Registriert: Mi 29. Mär 2006, 06:45
Kontaktdaten:

Beitrag von kees » Mi 29. Mär 2006, 13:36

hey tommo,
sowas wäre wirklich interessant. hast du mittlerweile was gefunden?

kees
Beiträge: 4
Registriert: Mi 29. Mär 2006, 06:45
Kontaktdaten:

Beitrag von kees » Mi 29. Mär 2006, 14:24

eine möglichkeit wäre zum beispiel das abändern des sitemap-moduls. dazu braucht man nur die sitemap-templates seinen bedürfnissen anzupassen...

hat jemand vielleicht eine bessere lösung?

E. Hut
Beiträge: 15
Registriert: Di 14. Mär 2006, 17:58
Kontaktdaten:

geöffnete Hauptnavi: hier

Beitrag von E. Hut » Mi 29. Mär 2006, 17:24

Wie wär's hiermit:

http://contenido.org/forum/viewtopic.php?t=7940

Bei mir klappt das auch unter 4.6.8!

E.

Gesperrt