Wie kann ich die Hauptnavigation (Standardmodul in Contenido) sortieren? In der Kategorienübersicht klappt das ganze, nur in der Frontend-Nav. übernimmt er die Sortierung nicht. In dem DB-Model, kann ich irgendwie auch kein Sortierungsfeld ausmachen. Vieleicht liegt es an meiner "Blindheit" oder dass ich schon lange nichts mehr mit Contenido umgesetzt habe
Sortierung Standard Hauptnavigation
Sortierung Standard Hauptnavigation
Habe in der Suche nichts gefunden, obwohl es eigentlich so einen Thread schon geben müsste. Meine Frage:
Wie kann ich die Hauptnavigation (Standardmodul in Contenido) sortieren? In der Kategorienübersicht klappt das ganze, nur in der Frontend-Nav. übernimmt er die Sortierung nicht. In dem DB-Model, kann ich irgendwie auch kein Sortierungsfeld ausmachen. Vieleicht liegt es an meiner "Blindheit" oder dass ich schon lange nichts mehr mit Contenido umgesetzt habe
.. Vielleicht mag mir trotzdem wer schnell helfen..
			
			
									
						Wie kann ich die Hauptnavigation (Standardmodul in Contenido) sortieren? In der Kategorienübersicht klappt das ganze, nur in der Frontend-Nav. übernimmt er die Sortierung nicht. In dem DB-Model, kann ich irgendwie auch kein Sortierungsfeld ausmachen. Vieleicht liegt es an meiner "Blindheit" oder dass ich schon lange nichts mehr mit Contenido umgesetzt habe
Jaja, das ist mir schon klar. Hab ja geschrieben, im Backend läuft es nur im Frontend wird es in der zweiten Ebene nicht richtig sortiert ausgegeben 
. Hat wer einen Lösungsvorschlag? Den Code habe ich mal hinten dran gehangen
			
			
									
						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
$reorder = true;
#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');
}
else {
	$sql = "SELECT
            C.name
        FROM
            ".$cfg["tab"]["cat_tree"]." AS A,
            ".$cfg["tab"]["cat"]." AS B,
            ".$cfg["tab"]["cat_lang"]." AS C
        WHERE
            A.idcat     = '$start_cat' AND
            B.idclient  = '$client' AND
            C.idlang    = '$lang'   AND
            C.visible   = '1'";
	$db->query($sql);
	$db->next_record();
	$start_cat_name = $db->f("name");
}
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;
}
/**
 * Array storing alle the
 * navigation data
 */
$navitems = array();
/**
 * 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 ) {
                $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();
if($reorder == true)
	rsort($navitems);
foreach ($navitems as $key => $data) {
    /* 1. Navigation level */
	if (checkCatPermission($data['idcatlang'],$data['public'])) {
	$html .= '<ul>';
	    $html .=  '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'">'.$data['name'].'</a></li>';
    	/* 2. Navigation level */
	    if (is_array($data['sub'])) {
	    	$html .=  '<ul>';
	        foreach ($data['sub'] as $key => $data) {
				if (checkCatPermission($data['idcatlang'],$data['public'])) {
		            $html .=  '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'">'.$data['name'].'</a></li>';
	            } // end if
	        } // end foreach
	        $html .=  '</ul>';
	    } // end if
	    $html .=  '</ul>';
    } // end if
} // end foreach
/* Output buffer-contents */
echo $html;
?>
- 
				wosch
 
