Neue ganz simple Navigation rechts?

4sign
Beiträge: 73
Registriert: Do 1. Jul 2004, 22:09
Kontaktdaten:

Re: To whom it may concern...

Beitrag von 4sign »

Letzteres hat mit danuelas Problem nichts zu tun, aber auch da kann Dir geholfen werden.

Gruss
Christa
das ermutigt mich :o
glaube, mein problem ist, dass ich noch nicht ganz verstanden habe, wie ich die navigation einbinde und auf was dabei zu achten ist. ich hab eine haupt- und eine nebennavigation. wenn ich meinen container im template mit dem navigationsmodul fuelle und die hauptnavigation angebe, sehe ich ueberhaupt nichts. gebe ich die nebennavigation an, wird diese angezeigt.
die hauptnavigation ist verschachtelt , die nebennavi nicht. liegt es daran?
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: To whom it may concern...

Beitrag von Halchteranerin »

4sign hat geschrieben:glaube, mein problem ist, dass ich noch nicht ganz verstanden habe, wie ich die navigation einbinde und auf was dabei zu achten ist. ich hab eine haupt- und eine nebennavigation. wenn ich meinen container im template mit dem navigationsmodul fuelle und die hauptnavigation angebe, sehe ich ueberhaupt nichts. gebe ich die nebennavigation an, wird diese angezeigt.
die hauptnavigation ist verschachtelt , die nebennavi nicht. liegt es daran?
Nein, mit der Verschachtelung hat es nichts zu tun.
Es kann aber sein, dass Du einen Fehler bei der 'Strukturierung' der Navigation gemacht hast. Am einfachsten waere es, wenn Du Dir Contenido mit Beispielen installieren wuerdest und dort die Kategorien (die ja fuer die Navigation benutzt werden) anschauen wuerdest. Nur kurz: Du musst zwei Baeume haben, wenn Du Haupt- und Nebennavi haben willst. Die Hauptnavi kann dabei 'Unterbaeume' haben. Wenn Du bei Template auf Vorkonfiguration gehst, kannst Du schon mal die beiden Navibaeume voreinstellen. Falls Du das versaeumt hast und schon Artikel angelegt hast, dann musst Du diese (oder die Kategorie, in der sie sind, je nachdem, was Du fuer Einstellungen hast, ob ein Template fuer die ganze Kategorie oder nur fuer einzelne Artikel gilt) konfigurieren und dabei eben auch die beiden Navigationen einstellen. Dann muesste es klappen.
Johannes W.
Beiträge: 19
Registriert: Sa 28. Aug 2004, 14:23
Wohnort: Karlsruhe
Kontaktdaten:

Hauptnavigation 2x

Beitrag von Johannes W. »

Hallo,

ich würde auch gerne die Hauptnavigation zweimal in meinem Layout haben. Kann mir vielleicht jemand den code bereit stellen? Einmal Einbinden funktioniert wunderbar...

Das Orginal sieht so aus:

Eingabe::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

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

Ausgabe:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

<?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
*/
if (!function_exists("catIsChildOf"))
{
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, "CMS_VALUE[0]") ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = "CMS_VALUE[0]";
}

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

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

$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
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';

$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);

/* Start Output buffer */
ob_start();

echo '<table class="navi2" cellpadding="0" cellspacing="0">
<tr><td class="tdnavi2top"><!-- Hier könnte die Navigationsueberschrift stehen -->&nbsp;</td></tr>';

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();

$tpl->generate('templates/navfirst_on.html');


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();

$tpl->generate('templates/navsecond_on.html');

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();

$tpl->generate('templates/navthird_on.html');

} // end foreach

} // end if

} // end foreach

} // end if

} // end foreach

echo '<tr><td class="spacer2"></td></tr><tr><td class="navixbottom"></td></tr></table>';

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;

?>
Johannes W.
Beiträge: 19
Registriert: Sa 28. Aug 2004, 14:23
Wohnort: Karlsruhe
Kontaktdaten:

Sorry, hab wohl zu schnell gepostet.

Beitrag von Johannes W. »

Für alle die noch auf der Suche sind:

http://www.contenido.de/forum/viewtopic ... light=nav2

MFG Johannes
Gesperrt