ich kämpf schon seit ein paar Stunden mit dem Hauptmenu. Ich würds gerne mehrfach mit unterschiedlichen Bäumen auf meiner Website einsetzen.
Das eine Hauptmenu soll z.B. den Baum Presse (Links auf der Seite) beinhalten, das Andere den Baum Site Tools (Rechts auf der Seite).
Ich habe mich schon die Suche verwendet und auch die Infos, die ich dort gefunden habe, verwendet. Aber irgendwie funktioniert das nicht.
Ich habe die Funktionen umbenannt, habe teilweise (Wie in einem anderen Thread gelesen) Variablen umbennant. Aber irgendwie will das nicht. Ich hab sogar diese CMS_VAR[0] Geschichte in CMS_VAR[7000] umbenannt, obwohl ich Forum gelesen habe, dass das nicht nötig sei.
Das zweite Menu zeigt mir zwar etwas an, aber eben nicht das, was es soll. Denn anstelle mir z.B. den Baum Site Tools anzuzeigen, bekomme ich alle Bäume, die ich habe, aufgelistet.
Mein Input Source:
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="0">
<tr>
<td class="text_medium" style="padding: 10px;">Baum wählen:</td>
<td style="padding: 10px;">
<select name="CMS_VAR[7000]">
<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[7000]" == $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
Code: Alles auswählen
<?php
/***********************************************
* 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;
}
/**
* 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
*/
if (!function_exists("catischildof_mod1"))
{
function catischildof_mod1($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_mod1($idcat, "CMS_VALUE[7000]") ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = "CMS_VALUE[7000]";
}
/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');
/**
* Array storing alle the
* navigation data
*/
$navitems_mod1 = array();
/* Template Instance */
$tpl_mod1 = new Template;
/**
* Recursive function for creating
* the navigation array
* @param Int $idcat Category id
*/
if (!function_exists("nav_mod1"))
{
function nav_mod1($idcat) {
global $navitems_mod1, $client, $lang, $cfg;
$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[7000]" ){
$navitems_mod1 = array();
$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 = 'CMS_VALUE[7000]'
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_mod1[$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_mod1;
$navitems_mod1 = $tmp_nav;
/* Function call */
nav_mod1($parentid);
} // end function
} // check if exist
$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_mod1[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
/* Create Navigation Array */
nav_mod1($sel_idcat);
/* Start Output buffer */
ob_start();
echo '<table cellspacing="1" cellpadding="0" border="0" width="100%">';
foreach ($navitems_mod1 as $key => $data) {
/* 1. Navigations Ebene */
$tpl_mod1->reset();
$tpl_mod1->set('d', 'NAME', $data['name']);
$tpl_mod1->set('d', 'TARGET', $data['target']);
$tpl_mod1->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl_mod1->next();
if ($idcat == $data['idcat'] || is_array($data['sub'])) {
$tpl_mod1->generate('templates/navfirst1_on.html');
} else {
$tpl_mod1->generate('templates/navfirst1_off.html');
}
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
/* 2. Navigations Ebene */
$tpl_mod1->reset();
$tpl_mod1->set('d', 'NAME', $data['name']);
$tpl_mod1->set('d', 'TARGET', $data['target']);
$tpl_mod1->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl_mod1->next();
if ($idcat == $data['idcat'] || is_array($data['sub'])) {
$tpl_mod1->generate('templates/navsecond1_on.html');
} else {
$tpl_mod1->generate('templates/navsecond1_off.html');
}
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
/* 3. Navigations Ebene */
$tpl_mod1->reset();
$tpl_mod1->set('d', 'NAME', $data['name']);
$tpl_mod1->set('d', 'TARGET', $data['target']);
$tpl_mod1->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl_mod1->next();
if ($idcat == $data['idcat']) {
$tpl_mod1->generate('templates/navthird1_on.html');
} else {
$tpl_mod1->generate('templates/navthird1_off.html');
}
} // end foreach
} // end if
} // end foreach
} // end if
} // end foreach
echo '</table>';
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
?>
Danke schonmal für eure Hilfe
Gruß
Daniel