Seite 1 von 1
Navigation - 1. und 2. Ebene statisch anzeigen
Verfasst: Fr 26. Nov 2004, 02:03
von OSI
Hi,
kennt jemand eine Möglichkeit, die erste und zweite Ebene der Navigation statisch anzuzeigen ?
Also nicht wie normal, bei Klick zweite Ebene anzeigen, sondern ständig alle Punkte erste Ebene (sowieso da) und alle jeweilig dazugehörenden zweiten Ebenen jeden Punktes anzeigen ....
Ich hoffe Ihr versteht meine Problembeschreibung besser als ich ...
...olli
Verfasst: Fr 26. Nov 2004, 10:55
von ctschorsch
Versuch dies :
INPUT:
/**
* 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
OUTPUT
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Navigation ALL
* Author : Jürgen Brings
* Created : 02-04-2004
* Modified : 02-04-2004
************************************************/
/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');
$navitems = array();
/* Template Instance */
$tpl = new Template;
$sql2 = "SELECT DISTINCT
TREE.idcat,
LANG.name,
TREE.level
FROM
".$cfg["tab"]["cat_tree"]." AS TREE,
".$cfg["tab"]["cat"]." AS CAT,
".$cfg["tab"]["cat_lang"]." AS LANG
WHERE
TREE.idcat = LANG.idcat AND
TREE.level > 0 AND
LANG.visible = '1' AND
CAT.parentid = 'CMS_VALUE[0]'
ORDER
BY TREE.idtree";
$db2 = new DB_Contenido;
$db2->query($sql2);
while ($db2->next_record()) {
$navitems[$db2->f("idcat")] = array("idcat" => $db2->f("idcat"),"name"=> $db2->f("name"),"level"=> $db2->f("level"));
}
$closesubnav=0;
$firstnav=1;
echo "<div><ul id=\"nav\">";
foreach ($navitems as $key => $data) {
if ($data['level']==1) {
if ($closesubnav==1) {
echo "</ul>";
$closesubnav=0;
}
if ($firstnav==0) {
echo "</li>";
}
$firstnav=0;
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'ID', '_'.$data['idcat']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
echo "<li><img src=\"images/listicon.jpg\">";
$tpl->generate('templates/vdsnav.html');
} else if ($data['level']==2) {
if ($closesubnav==0) {
echo "<ul class=\"subnav\">";
$closesubnav=1;
}
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'ID', '_'.$data['idcat']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
echo "<li>";
$tpl->generate('templates/vdsnav.html');
echo"</li>";
}
} //foreach
echo "</li></ul></div>";
?>
ich hab jetzt mal meine styles drinne gelassen, hoffe das stört nicht so weit. Die vdsnav.html ist einfach nur eine von tabellen befreite navfirst.html aus dem template verzeichniss
Georg
Works for me ...
Verfasst: Fr 26. Nov 2004, 17:10
von OSI
Das Teil hat prima funktioniert, wir mussten zwar noch ein bisschen anpassen und so, aber es war eine Super-Basis !!
Danke schön !
...olli
3 Ebene ??
Verfasst: Mo 29. Nov 2004, 00:10
von OSI
Gibts hier auch noch eine Möglichkeit, die 3. Ebene da noch wieder reinzubekommen ?
1. und 2. klappt ja super, aber die 3. Ebene fehlt gänzlich.
Gruß, ...olli