Navigation mit Rechten 4.5.2
Verfasst: 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
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
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(" ", " ", $item["name"]));
} else {
$allitems .= sprintf($wrap, $item["idcat"], str_replace(" ", " ", $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>