Navigation mit Rechten 4.5.2

Gesperrt
neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Navigation mit Rechten 4.5.2

Beitrag von neu@cidnet.de » So 15. Aug 2004, 18:14

Den Code habe ich ausem Theard von Timo,
kann mir den jemand umschreiben auf eine ganz Normale Navi wie in der Standard installation?

-1-
-1.1-
-1.2-
-1.3-
-2-
-2.1-
-2.2-
-2.3-

so sieht die Navi ja da aus.
mir kommt es da auf die rechte der frontend user an :D

Code: Alles auswählen

nav_Top Input: 

Code: 

/** 
* Navigation 
* 
* INPUT 
* 
* @autor Jan Lengowski <Jan.Lengowski@4fb.de> 
* @copyright four for business AG 2003 
*/ 

?> 
<table cellspacing="0" cellpadding="0" cellpadding="4"> 

    <tr> 
        <td class="text">Baum wählen:</td> 
        <td> 
            <select name="CMS_VAR[0]"> 
            <option value="0">-- kein --</option> 
            <?php 

                $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 
                            C.idlang    = '".$lang."' AND 
                            B.idclient  = '".$client."' AND 
                            C.visible   = 1 AND 
                            A.level     = '0' 
                        ORDER BY 
                            A.idtree"; 

                $db->query($sql); 

                while ( $db->next_record() ) { 

                    if ( "CMS_VALUE[0]" == $db->f("idcat") ) { 
                        echo '<option selected="selected" value="'.$db->f("idcat").'">'.$db->f("name").'</option>'; 

                    } else { 
                        echo '<option value="'.$db->f("idcat").'">'.$db->f("name").'</option>'; 

                    } 
                } 

            ?> 
            </select> 
        </td> 
    </tr> 

</table> 

<?php 
 


nav_Top Output: 
Code: 

<?php 

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; 

} 


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

        $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, 
                            C.public 
                        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'; 
                            
                            if ($db->f("public") == 1 || $perm->have_perm_area_action_item("str","front_allow", $db->f("idcat")) || $perm->have_perm()) 
                            { 
                                $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); 

$fullwrap = '<table height="18" border="0" cellspacing="0" cellpadding="0"> 
<tr> 
%s 
</tr> 
</table>'; 
$wrap = '<td class="cw" nowrap="nowrap" onMouseOut="Switch1(this);" onMouseOver="Switch1(this);"><a class="topnav1" href="index-a-%s.html">%s</a></td> 
'; 
$wrap2 = '<td class="c4" nowrap="nowrap"><a class="topnav1" href="index-a-%s.html">%s</a></td> 
'; 
$allitems = ""; 
$root_idcat = capi_cat_getlevelnode($idcat, 2); 

foreach ($navitems as $item) 
{ 
    if ( $root_idcat == $item["idcat"]) 
    { 
       $allitems .= sprintf($wrap2, $item["idcat"], str_replace(" ", "&nbsp;", $item["name"])); 
    } else { 
       $allitems .= sprintf($wrap, $item["idcat"], str_replace(" ", "&nbsp;", $item["name"])); 
    } 
} 

printf($fullwrap, $allitems); 
?> 
 


nav_Left Input: 
Code: 

// selected category 
$selected = "CMS_VALUE[0]"; 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"> 
        <tr valign=\"top\"> 
          <td>Kategorie wählen:</td> 
          <td> 
            <select name=\"CMS_VAR[0]\">"; 
            if($selected!="0" && $selected!=""){ 
             echo"<option value=\"0\">--- kein ---</option>"; 

            }else{ 
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
            } 

            // fetch all categorys 
            $query = "SELECT A.idcat, A.level, 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 C.idlang='$lang' AND B.idclient='$client' ". 
                     "AND C.visible=1 ORDER BY A.idtree"; 
            // execute query 
            $db->query($query); 

            // loop result and build the options 
            while ($db->next_record()) { 

              // indent spacer 
              $spaces = "|"; 

              // how many levels 
              $levels = $db->f("level"); 

              for ($i = 0; $i < $levels; $i ++) { 
                // add 2 spaces for every level 
                $spaces = $spaces . "--"; 

              } // end for 
              
              $spaces .= ">"; 


              if ($selected == $db->f("idcat")) { 
                // selected category 
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } else { 
                // category 
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } // end if 

            } // end while 

echo "      </select>"; 

echo "    </td> 
        </tr> 
      </table>"; 
 


nav_Left output: 
Code: 

<?php 
global $cfgClient; 

/*********************************************** 
* 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; 
} 

global $cfg; 

function isInCache2 ($filename) 
{ 
    $cachetime = 30; 
    if (!file_exists($filename)) 
    { 
        return false; 
    } 
    
    $mod = filemtime($filename); 
    if (($mod + 60*$cachetime)< time()) 
    { 
        return false; 
    } 
    
    return true; 
} 
/** 
* 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 catIsChildOf2($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; 

} 


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


$root_idcat = capi_cat_getlevelnode($idcat, 2); 

/* Create Navigation Array */ 

if ($auth->auth["uid"] != "nobody") 
{ 
$sql = "SELECT A.idcat, B.name FROM ".$cfg["tab"]["cat"]." AS A, ".$cfg["tab"]["cat_lang"]." AS B, ".$cfg["tab"]["cat_tree"]." AS C  WHERE parentid = '$root_idcat' 
        AND B.visible = '1' AND B.idcat = A.idcat AND B.idlang = '$lang' AND B.idcat = C.idcat AND A.idclient = '$client' ORDER BY C.idtree ASC"; 
} else { 
$sql = "SELECT A.idcat, B.name FROM ".$cfg["tab"]["cat"]." AS A, ".$cfg["tab"]["cat_lang"]." AS B, ".$cfg["tab"]["cat_tree"]." AS C  WHERE parentid = '$root_idcat' 
        AND B.visible = '1' AND B.public='1' AND B.idcat = A.idcat AND B.idlang = '$lang' AND B.idcat = C.idcat AND A.idclient = '$client' ORDER BY C.idtree ASC"; 

} 
$db->query($sql); 

$db2 = new DB_Contenido; 
$db3 = new DB_Contenido; 

while ($db->next_record()) 
{ 
    
    $mainnavi[$db->f("idcat")]["name"] = $db->f("name"); 

    $mainidcat = $db->f("idcat"); 
    if ($auth->auth["uid"] != "nobody") 
    { 
    $sql2 = "SELECT A.idcat, B.name FROM ".$cfg["tab"]["cat"]." AS A, ".$cfg["tab"]["cat_lang"]." AS B WHERE parentid = '$mainidcat' 
        AND B.visible = '1' AND B.idcat = A.idcat AND B.idlang = '$lang' AND A.idclient = '$client' ORDER BY B.name ASC"; 
    } else { 
    $sql2 = "SELECT A.idcat, B.name FROM ".$cfg["tab"]["cat"]." AS A, ".$cfg["tab"]["cat_lang"]." AS B WHERE parentid = '$mainidcat' 
        AND B.visible = '1' AND B.public='1' AND B.idcat = A.idcat AND B.idlang = '$lang' AND A.idclient = '$client' ORDER BY B.name ASC"; 
    
    } 
    $db2->query($sql2); 
    
    while ($db2->next_record()) 
    { 
        $subnavs[$db2->f("idcat")]["name"] = $db2->f("name"); 

    } 
    
    $mainnavi[$db->f("idcat")]["subnav"] = $subnavs; 
    unset($subnavs); 

} 

$wrap1 = '<tr><td class="ln1" onmouseover="Switch2(this);" onmouseout="Switch2(this);"><a class="topnav1" href="index-a-%s.html">%s</a> 
</td> 
</tr>'; 
$wrap1a = '<tr><td class="ln1s"><a class="topnav1" href="index-a-%s.html">%s</a> 
</td> 
</tr>'; 
$wrap2 = '<tr><td class="ln2" onmouseover="Switch3(this);" onmouseout="Switch3(this);"><a class="topnav1" href="index-a-%s.html">%s</a> 
</td> 
</tr>'; 
$wrap2a = '<tr><td class="ln2s"><a class="topnav1" href="index-a-%s.html">%s</a> 
</td> 
</tr>'; 
$ewrap = '<tr><td style="border: 0px; border-top: 1px; border-color: white; border-style: solid;"><img src="images/base/empty.gif" alt="" height="20" width="1"></td></tr>'; 

$allitems = ""; 
foreach ($mainnavi as $key => $value) 
{ 
    if ($key == $idcat) 
    { 
        $allitems .= sprintf($wrap1a, $key, $value["name"]); 
    } else { 
        $allitems .= sprintf($wrap1, $key, $value["name"]); 
    } 

    if (is_array($value["subnav"])) 
    { 
         foreach ($value["subnav"] as $key => $value) 
         { 
            if ($key == $idcat) 
            { 
                  $allitems .= sprintf($wrap2a, $key, $value["name"]); 
            } else { 
                  $allitems .= sprintf($wrap2, $key, $value["name"]); 
            } 
         } 
    } 
    $allitems .= $ewrap; 
} 




?> 
<img src="images/base/empty.gif" alt="" width="1" height="20"> 
<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
<?php 
echo $allitems; 
?> 
</table> 
&nbsp; 

emergence
Beiträge: 10641
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 16. Aug 2004, 15:08

ganz auf die schnelle ich nehm jetzt nur mal das erste modul:

nav_Top Output:
Code:

Code: Alles auswählen

<?php 

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; 

} 


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

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

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

        $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, 
                            C.public 
                        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'; 
                            
                            if ($db->f("public") == 1 || $perm->have_perm_area_action_item("str","front_allow", $db->f("idcat")) || $perm->have_perm()) 
                            { 
                                $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);

$html = '<table cellpadding="0" cellspacing="0" border="0">'."\n";
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'])) {
        $html .= $tpl->generate('templates/navfirst_on.html',1);
    } else {
        $html .= $tpl->generate('templates/navfirst_off.html',1);
    }

    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'])) {
                $html .= $tpl->generate('templates/navsecond_on.html',1);
            } else {
                $html .= $tpl->generate('templates/navsecond_off.html',1);
            }

            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']) {
                        $html .= $tpl->generate('templates/navthird_on.html',1);
                    } else {
                        $html .= $tpl->generate('templates/navthird_off.html',1);
                    }

                } // end foreach

            } // end if

        } // end foreach

    } // end if

} // end foreach

$html .= '</table>'."\n";

/* Output generated content */
echo $html;
?>
ungetestet , sollte aber stimmen...
Zuletzt geändert von emergence am Mi 18. Aug 2004, 10:30, insgesamt 1-mal geändert.
*** make your own tools (wishlist :: thx)

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Mi 18. Aug 2004, 10:29

mit welchem input muss ich das zusammen setzen ?

der zeigt rot an :(

emergence
Beiträge: 10641
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 18. Aug 2004, 10:32

das gehört nur in den output bereich...

ich hatte oben den abschließenden ?> tag nicht mitkopiert... ist korrigiert

der dazugehörige input bereich

Code: Alles auswählen

/** 
* Navigation 
* 
* INPUT 
* 
* @autor Jan Lengowski <Jan.Lengowski@4fb.de> 
* @copyright four for business AG 2003 
*/ 

?> 
<table cellspacing="0" cellpadding="0" cellpadding="4"> 

    <tr> 
        <td class="text">Baum wählen:</td> 
        <td> 
            <select name="CMS_VAR[0]"> 
            <option value="0">-- kein --</option> 
            <?php 

                $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 
                            C.idlang    = '".$lang."' AND 
                            B.idclient  = '".$client."' AND 
                            C.visible   = 1 AND 
                            A.level     = '0' 
                        ORDER BY 
                            A.idtree"; 

                $db->query($sql); 

                while ( $db->next_record() ) { 

                    if ( "CMS_VALUE[0]" == $db->f("idcat") ) { 
                        echo '<option selected="selected" value="'.$db->f("idcat").'">'.$db->f("name").'</option>'; 

                    } else { 
                        echo '<option value="'.$db->f("idcat").'">'.$db->f("name").'</option>'; 

                    } 
                } 

            ?> 
            </select> 
        </td> 
    </tr> 

</table>
*** make your own tools (wishlist :: thx)

Gesperrt