MEHRERE GETEILTE Hauptnavigationen !!!
MEHRERE GETEILTE Hauptnavigationen !!!
Hallo Zusammen,
ich bin relativ "jungfräulich" im Umgang mit Contenido, wollte aber mal testweise ein Kundenprojekt damit realisieren. Nicht zuletzt deshalb, da man diesem WCMS doch relativ einfache Bedien- und Anpassbarkeit nachsagt.
Bisher habe ich immer Mambo bzw. Joomla oder Digital Workroom verwendet. Doch ich hab jetzt die Erfahrung sammeln müssen, dass die Kunden zwar im Vorhinein ein relativ umfangreiches CMS wünschen, hinterher aber dann doch meistens schnell damit überfordert sind.
Ich denke nun mit Contenido einen guten Kompromiß gefunden zu haben. Aufgrund der intuitiven Bedienung und guten Skalierbarkeit, bin ich relativ begeistert von dem System, und werde es wohl in Zukunft vermehrt einsetzen.
Das nur als kleine Einstimmung...
Bisher bin ich eigentlich sehr gut zu Rande gekommen und hab mein erstes Kundenprojekt damit soweit gut im Griff, dank auch des guten Forums als Informationsquelle
Jetzt habe ich jedoch einen kleinen Hänger.
Mein Problem bezieht sich dabei auf den Einsatz von 2 GETEILTEN HAUPTNAVIGATIONEN
Ich weiss dass dieses Thema schon mehrfach behandelt wurde, jedoch habe ich auch nach längerem Suchen, zu diesem Problem keine Lösung gefunden.
Das was ich möchte ist, 2 der 'geteilten' Hauptnavigationen in einem Template verwenden.
[Container 20]
[Hauptnavigation 1, Ebene 1] -> Punkt 1 | Punkt 2 | Punkt 3
[Hauptnavigation 1, Ebene 2] -> Punkt 1.1 | Punkt 1.2 ...
...
irgendwo anders im Template dann:
[Container 30]
[Hauptnavigation 2, Ebene 1] -> Punkt 1 | Punkt 2 | Punkt 3
[Hauptnavigation 2, Ebene 2] -> Punkt 1.1 | Punkt 1.2 ...
...
Dafür habe ich wie bereits im Forum schon besprochen wurde, die 2 Module für die 'geteilte' Hauptnavigation dupliziert und in den 2 neuen Modulen die entsprechenden Funktionen catIsChildOf() und nav() unbenannt.
Es funktioniert auch insofern, dass beide geteilten Hauptnavigationen, in der 1. Ebene korrekt angezeigt werden.
Soweit so gut...
Das Problem ist aber nun, klicke ich auf die Hauptnavigation1 erscheinen doppelt die Untermenüpunkte des angewählten Punktes und bei Klick auf einen Link der Hauptnavigation 2, erhalte ich gar kein Untermenü an der definierten Stelle im Template.
Also irgendwie werden in meinem Container das die Unterpunkte der Hauptnavigation 2 anzeigen soll, (nochmal) die Unterpunkte der Hauptnavigation 1 angezeigt.
Das passt irgendwie alles nicht...
Kann er die Untermenüs den Hauptmenüs nicht zuordnen. Denn anscheinend scheint er nicht zu wissen, dass zur Hauptnavigation 2 auch evtl. Unterpunkte existieren.
Was muss ich evtl. denn alles noch anpassen, damit sich die beiden Navigationen nicht in die Quere kommen?
Hat da jemand eine Idee?
Gruss
Tom
ich bin relativ "jungfräulich" im Umgang mit Contenido, wollte aber mal testweise ein Kundenprojekt damit realisieren. Nicht zuletzt deshalb, da man diesem WCMS doch relativ einfache Bedien- und Anpassbarkeit nachsagt.
Bisher habe ich immer Mambo bzw. Joomla oder Digital Workroom verwendet. Doch ich hab jetzt die Erfahrung sammeln müssen, dass die Kunden zwar im Vorhinein ein relativ umfangreiches CMS wünschen, hinterher aber dann doch meistens schnell damit überfordert sind.
Ich denke nun mit Contenido einen guten Kompromiß gefunden zu haben. Aufgrund der intuitiven Bedienung und guten Skalierbarkeit, bin ich relativ begeistert von dem System, und werde es wohl in Zukunft vermehrt einsetzen.
Das nur als kleine Einstimmung...
Bisher bin ich eigentlich sehr gut zu Rande gekommen und hab mein erstes Kundenprojekt damit soweit gut im Griff, dank auch des guten Forums als Informationsquelle
Jetzt habe ich jedoch einen kleinen Hänger.
Mein Problem bezieht sich dabei auf den Einsatz von 2 GETEILTEN HAUPTNAVIGATIONEN
Ich weiss dass dieses Thema schon mehrfach behandelt wurde, jedoch habe ich auch nach längerem Suchen, zu diesem Problem keine Lösung gefunden.
Das was ich möchte ist, 2 der 'geteilten' Hauptnavigationen in einem Template verwenden.
[Container 20]
[Hauptnavigation 1, Ebene 1] -> Punkt 1 | Punkt 2 | Punkt 3
[Hauptnavigation 1, Ebene 2] -> Punkt 1.1 | Punkt 1.2 ...
...
irgendwo anders im Template dann:
[Container 30]
[Hauptnavigation 2, Ebene 1] -> Punkt 1 | Punkt 2 | Punkt 3
[Hauptnavigation 2, Ebene 2] -> Punkt 1.1 | Punkt 1.2 ...
...
Dafür habe ich wie bereits im Forum schon besprochen wurde, die 2 Module für die 'geteilte' Hauptnavigation dupliziert und in den 2 neuen Modulen die entsprechenden Funktionen catIsChildOf() und nav() unbenannt.
Es funktioniert auch insofern, dass beide geteilten Hauptnavigationen, in der 1. Ebene korrekt angezeigt werden.
Soweit so gut...
Das Problem ist aber nun, klicke ich auf die Hauptnavigation1 erscheinen doppelt die Untermenüpunkte des angewählten Punktes und bei Klick auf einen Link der Hauptnavigation 2, erhalte ich gar kein Untermenü an der definierten Stelle im Template.
Also irgendwie werden in meinem Container das die Unterpunkte der Hauptnavigation 2 anzeigen soll, (nochmal) die Unterpunkte der Hauptnavigation 1 angezeigt.
Das passt irgendwie alles nicht...
Kann er die Untermenüs den Hauptmenüs nicht zuordnen. Denn anscheinend scheint er nicht zu wissen, dass zur Hauptnavigation 2 auch evtl. Unterpunkte existieren.
Was muss ich evtl. denn alles noch anpassen, damit sich die beiden Navigationen nicht in die Quere kommen?
Hat da jemand eine Idee?
Gruss
Tom
Hallo Tom,
bin mir nicht sicher, aber ich denke das von dir geschilderte Problem kann auftreten, wenn auch in der 2. Navigation, die Kategorieid der Hauptnavigation ausgelesen wird.
Wenn keine Kategorieid vorhanden ist, wird die id der Hauptkategorie aus den Mandanteneinstellungen ausgelesen.
Diese id sollte im Modul der 2. Hauptnaviation nicht verwendet werden. Hierzu kannst du unter "Administration -> Mandanten -> Mandanteneinstellungen" eine neue Variable anlegen, und als Wert gibst du dort die Kategorieid der 2 Navigationsebene an.
Nun solltest du im Modulcode der 2. Navigation 'idcat_homepage' gegen 'idcat_secondnavi' ersetzen (kommt 2 x vor). Dann müssten sich die beiden Navigationen nicht in die Quere kommen.
Grüße
xmurrix
bin mir nicht sicher, aber ich denke das von dir geschilderte Problem kann auftreten, wenn auch in der 2. Navigation, die Kategorieid der Hauptnavigation ausgelesen wird.
Wenn keine Kategorieid vorhanden ist, wird die id der Hauptkategorie aus den Mandanteneinstellungen ausgelesen.
Code: Alles auswählen
$cApiClient->getProperty('navigation','idcat_homepage')
Code: Alles auswählen
Typ Name Wert
navigation idcat_secondnavi <id der 2. navigation>
Grüße
xmurrix
Hallo xmurrix,
Grüsse aus Landsberg
Erstmal danke für deinen vielversprechenden Hinweis. Habe ihn soeben in die Tat umgesetzt und zumindest mit einem veränderten Verhalten der Navigationen gerechnet.
Es ist aber ärgerlicherweise leider alles beim Alten geblieben
Muss ich evtl. noch weitere Anpassungen machen?
Und warum erscheinen beim Klick auf einen Punkt der Hauptnavigation 1 die Unterpunkte trotzdem noch doppelt?
Ich hab im Moment keinen blassen Schimmer wo ich noch ansetzen kann...
Über weitere Ansätze würde mich freuen...
Gruss
Tom
Grüsse aus Landsberg
Erstmal danke für deinen vielversprechenden Hinweis. Habe ihn soeben in die Tat umgesetzt und zumindest mit einem veränderten Verhalten der Navigationen gerechnet.
Es ist aber ärgerlicherweise leider alles beim Alten geblieben
Muss ich evtl. noch weitere Anpassungen machen?
Und warum erscheinen beim Klick auf einen Punkt der Hauptnavigation 1 die Unterpunkte trotzdem noch doppelt?
Ich hab im Moment keinen blassen Schimmer wo ich noch ansetzen kann...
Über weitere Ansätze würde mich freuen...
Gruss
Tom
Die Modul-Codes
So da!
Hier die Modulcodes für die beiden geteilten Hauptnavigation und deren Unternavigationen.
Vielleicht bring das Licht ins Dunkle...
// HAUPTNAVIGATION 1 - EBENE 1
OUTPUT
// HAUPTNAVIGATION 1 - EBENE 2 (UNTERNAVIGATION)
OUTPUT
// HAUPTNAVIGATION 2 - EBENE 1
OUTPUT
// HAUPTNAVIGATION 2 - EBENE 2 (UNTERNAVIGATION)
OUTPUT
Hier die Modulcodes für die beiden geteilten Hauptnavigation und deren Unternavigationen.
Vielleicht bring das Licht ins Dunkle...
// HAUPTNAVIGATION 1 - EBENE 1
OUTPUT
Code: Alles auswählen
<?php
/********************************************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Hauptnavigation
* Author(s) : Jan Lengowski, Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
* Modifier : Oliver Simon, simon-oliver.com
* Modified : 27.11.2005
*********************************************************************/
#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation
#Includes
cInclude("frontend", "includes/functions.navigation.php");
#If no tree is selected, use client setting
$start_cat = "CMS_VALUE[0]";
if ($start_cat=='') {
$cApiClient = new cApiClient($client);
$start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}
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;
}
if ( catIsChildOf($idcat, $start_cat) ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = $start_cat;
}
/* 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, $start_cat;
$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 != $start_cat ){
$navitems = array();
$sql = "SELECT
A.idcat,
C.name
C.public,
C.idcatlang
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 = '".$start_cat."'
ORDER
BY A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
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
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target,
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"));
}
}
}
}
return true;
}
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
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,
a.idartlang AS idartlang
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
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$flag = false;
while ($db2->next_record() && !$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
$tmp_nav[$idcat]["sub"] = $navitems;
$navitems = $tmp_nav;
/* Function call */
nav($parentid);
} // end function
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
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,
a.idartlang AS idartlang
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
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
#$db2->next_record();
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
$cApiClient = new cApiClient($client);
$sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}
nav($sel_idcat);
/* Start Output buffer */
ob_start();
foreach ($navitems as $key => $data) {
/* 1. Navigation level */
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$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']) {
$tpl->generate('templates/navfirst_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navfirst_open.html');
} else {
$tpl->generate('templates/navfirst_off.html');
}
} // end if
} // end foreach
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo "<table height='24px' border='0' align='center' cellpadding='0' cellspacing='0'><tr>";
echo $html;
echo "</table></tr>";
?>
// HAUPTNAVIGATION 1 - EBENE 2 (UNTERNAVIGATION)
OUTPUT
Code: Alles auswählen
<?php
/* 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;
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
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,
a.idartlang AS idartlang
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
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
#$db2->next_record();
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
$cApiClient = new cApiClient($client);
$sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}
nav($sel_idcat);
/* Start Output buffer */
ob_start();
foreach ($navitems as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
/* 2. Navigation level */
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$abschluss ="<div align='left'><hr style='width:150px'></div>";
$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']) {
$tpl->generate('templates/navsecond_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navsecond_open.html');
} else {
$tpl->generate('templates/navsecond_off.html');
}
/* 3. Navigation level */
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$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']) {
$tpl->generate('templates/navthird_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navthird_open.html');
} else {
$tpl->generate('templates/navthird_off.html');
}
/* 4. Navigation level */
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$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']) {
$tpl->generate('templates/navfourth_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navfourth_open.html');
} else {
$tpl->generate('templates/navfourth_off.html');
}
/* 5. Navigation level */
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$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']) {
$tpl->generate('templates/navfifth_on.html');
} else {
$tpl->generate('templates/navfifth_off.html');
}
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
echo $abschluss;
?>
// HAUPTNAVIGATION 2 - EBENE 1
OUTPUT
Code: Alles auswählen
<?php
/********************************************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Hauptnavigation
* Author(s) : Jan Lengowski, Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
* Modifier : Oliver Simon, simon-oliver.com
* Modified : 27.11.2005
*********************************************************************/
#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation
#Includes
cInclude("frontend", "includes/functions.navigation.php");
#If no tree is selected, use client setting
$start_cat = "CMS_VALUE[0]";
if ($start_cat=='') {
$cApiClient = new cApiClient($client);
$start_cat = $cApiClient->getProperty('navigation','idcat_hilfsnavi');
}
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 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;
}
if ( catIsChildOf2($idcat, $start_cat) ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = $start_cat;
}
/* 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 nav2($idcat) {
global $navitems, $client, $lang, $cfg, $start_cat;
$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 != $start_cat ){
$navitems = array();
$sql = "SELECT
A.idcat,
C.name
C.public,
C.idcatlang
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 = '".$start_cat."'
ORDER
BY A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
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
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target,
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"));
}
}
}
}
return true;
}
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
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,
a.idartlang AS idartlang
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
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$flag = false;
while ($db2->next_record() && !$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
$tmp_nav[$idcat]["sub"] = $navitems;
$navitems = $tmp_nav;
/* Function call */
nav2($parentid);
} // end function
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
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,
a.idartlang AS idartlang
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
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
#$db2->next_record();
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
$cApiClient = new cApiClient($client);
$sel_idcat = $cApiClient->getProperty('navigation', 'idcat_hilfsnavi');
}
nav2($sel_idcat);
/* Start Output buffer */
ob_start();
foreach ($navitems as $key => $data) {
/* 1. Navigation level */
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$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']) {
$tpl->generate('templates/head_navfirst_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/head_navfirst_open.html');
} else {
$tpl->generate('templates/head_navfirst_off.html');
}
} // end if
} // end foreach
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
?>
// HAUPTNAVIGATION 2 - EBENE 2 (UNTERNAVIGATION)
OUTPUT
Code: Alles auswählen
<?php
/* 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;
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
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,
a.idartlang AS idartlang
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
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
#$db2->next_record();
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
$cApiClient = new cApiClient($client);
$sel_idcat = $cApiClient->getProperty('navigation', 'idcat_hilfsnavi');
}
nav2($sel_idcat);
/* Start Output buffer */
ob_start();
foreach ($navitems as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
/* 2. Navigation level */
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$abschluss ="<div align='left'><hr style='width:150px'></div>";
$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']) {
$tpl->generate('templates/head_navsecond_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/head_navsecond_open.html');
} else {
$tpl->generate('templates/head_navsecond_off.html');
}
/* 3. Navigation level */
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$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']) {
$tpl->generate('templates/navthird_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navthird_open.html');
} else {
$tpl->generate('templates/navthird_off.html');
}
/* 4. Navigation level */
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$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']) {
$tpl->generate('templates/navfourth_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navfourth_open.html');
} else {
$tpl->generate('templates/navfourth_off.html');
}
/* 5. Navigation level */
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$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']) {
$tpl->generate('templates/navfifth_on.html');
} else {
$tpl->generate('templates/navfifth_off.html');
}
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
echo $abschluss;
?>
Hallo Tom,
in den Funktionen nav() und nav2() sind Fehlerhafte SQL-Statements, und zwar betrifft es jeweils die 2. Abfrage (ab Zeile 119 des Modulcodes). Dort fehlt zwischen C.name und C.public ein Komma ','.
Warum hast du eigentlich den Modulcode für "HAUPTNAVIGATION 1 - EBENE 2 (UNTERNAVIGATION)" und für "HAUPTNAVIGATION 2 - EBENE 2 (UNTERNAVIGATION)"´, zum Öffnen der Unterkategorien, in eigene Module ausgelagert?
in den Funktionen nav() und nav2() sind Fehlerhafte SQL-Statements, und zwar betrifft es jeweils die 2. Abfrage (ab Zeile 119 des Modulcodes). Dort fehlt zwischen C.name und C.public ein Komma ','.
Code: Alles auswählen
$sql = "SELECT
A.idcat,
C.name, //<- hier fehlt ein Komma
C.public,
C.idcatlang
Hallo xmurrix,
ich werde die SQL-Statements mal anpassen, aber ich denke nicht dass daran der Fehler liegt. Denn die Hauptnavigation 1 mit samt Unternavigation funktioniert ja korrekt. Da gibt es keine Probleme.
Erst wenn ich meine sozusagen geklonten Module für die Hauptnavigation 2 mitsamt Unternavigation einbinde, dann kommt es wie beschrieben zur fehlerhalften Anzeige. Wobei ich jetzt keine direkten Fehlermeldungen erhalte - das Ergebnis ist einfach nicht das gewünschte...
Und die Module für die Haupt- und Unternavigation sind deshalb getrennt, weil es sich um die geteilte Navigation handelt, die es erlaubt die Haupt- und Unternavigation jeweils im Template in unterschiedlichen Containern zu platzieren.
Die Unternavi kann also optisch ganz wo anders liegen als die Hauptnavigation...
Also ich werde sobald ich kann die Komma-Geschichte im SQL-Syntax korrigieren und sehen, ob es vielleicht daran liegt. Ich denke aber wie gesagt eher nicht - Das Problem muss irgendwo anders liegen.
Gruss
Tom
ich werde die SQL-Statements mal anpassen, aber ich denke nicht dass daran der Fehler liegt. Denn die Hauptnavigation 1 mit samt Unternavigation funktioniert ja korrekt. Da gibt es keine Probleme.
Erst wenn ich meine sozusagen geklonten Module für die Hauptnavigation 2 mitsamt Unternavigation einbinde, dann kommt es wie beschrieben zur fehlerhalften Anzeige. Wobei ich jetzt keine direkten Fehlermeldungen erhalte - das Ergebnis ist einfach nicht das gewünschte...
Und die Module für die Haupt- und Unternavigation sind deshalb getrennt, weil es sich um die geteilte Navigation handelt, die es erlaubt die Haupt- und Unternavigation jeweils im Template in unterschiedlichen Containern zu platzieren.
Die Unternavi kann also optisch ganz wo anders liegen als die Hauptnavigation...
Also ich werde sobald ich kann die Komma-Geschichte im SQL-Syntax korrigieren und sehen, ob es vielleicht daran liegt. Ich denke aber wie gesagt eher nicht - Das Problem muss irgendwo anders liegen.
Gruss
Tom
Hallo Tom,
habe mir nochmal die Modulcodes angesehen, mir fällt nichts schwerwiegendes auf. Das Einzige ist, dass du die Navigationsliste doppelt erstellst.
Im Modulcode der Hauptnavigationen wird das Array $navitems generiert und dieses Array muss nicht nochmal in den Unternavigationen befüllt werden. Also kannst du in den Unternavigationen alles vor dem Code löschen. Es langt vollkommen aus, wenn in den Unternavigationen die foreach ($navitems as $key => $data) durchlaufen wird.
Zum Problem mit der 2. Hauptnavigation:
Kann es sein, dass die Untermenüpunkte der 2. Hauptnavigation keine Startartikel haben?
Wenn in einer Kategorie kein Startartikel definiert ist, werden auch vorhandene Unterkategorien nicht in den Array $navitems eingelesen und somit auch nicht gezeigt.
Gruß
xmurrix
habe mir nochmal die Modulcodes angesehen, mir fällt nichts schwerwiegendes auf. Das Einzige ist, dass du die Navigationsliste doppelt erstellst.
Im Modulcode der Hauptnavigationen wird das Array $navitems generiert und dieses Array muss nicht nochmal in den Unternavigationen befüllt werden. Also kannst du in den Unternavigationen alles vor dem Code
Code: Alles auswählen
/* Start Output buffer */
ob_start();
Zum Problem mit der 2. Hauptnavigation:
Kann es sein, dass die Untermenüpunkte der 2. Hauptnavigation keine Startartikel haben?
Wenn in einer Kategorie kein Startartikel definiert ist, werden auch vorhandene Unterkategorien nicht in den Array $navitems eingelesen und somit auch nicht gezeigt.
Gruß
xmurrix
wenn ich es richtig verstanden habe, dann hatte ich das problem auch schon und zwar dann wenn sich die geteilten navis im layout sozusagen "überschneiden"
also wenn erst die container mit
navi 1 split 1
navi 2 split 1
dann
navi 1 split 2
navi 2 split 2
eingebunden werden.
habe es "quick & dirty" so gelöst, daß ich vor "navi 2 split 2" den ersten teil nochmal mit der css-anweisung "display:none" aufrufe, so daß auf jeden fall der erste teil dieser gesplitteten navigation direkt vor dem zweiten part aufgerufen wird.
klappt gut, man muß dann nur den templates nochmal den baum im zusätzlichen container zuweisen.
gruß
micha
also wenn erst die container mit
navi 1 split 1
navi 2 split 1
dann
navi 1 split 2
navi 2 split 2
eingebunden werden.
habe es "quick & dirty" so gelöst, daß ich vor "navi 2 split 2" den ersten teil nochmal mit der css-anweisung "display:none" aufrufe, so daß auf jeden fall der erste teil dieser gesplitteten navigation direkt vor dem zweiten part aufgerufen wird.
klappt gut, man muß dann nur den templates nochmal den baum im zusätzlichen container zuweisen.
gruß
micha
Hallo micha,
mir scheint dieser Lösungansatz könnte schon eher mein Problem betreffen und lösen.
Denn in der Tat ist die Reihenfolge meiner geteilten Navis etwas quer...
Bei mir sieht das so aus:
Hauptnavi 2 - Ebene 1
darunter dann
Hauptnavi 1 - Ebene 1
dann jeweils darunter und zwar untereinander auf der linken Seiten
zuerst
Hauptnavi 1 - Ebene 2
darunter
Hauptnavi 2 - Ebene 2
Also wirklich ein wenig durcheinander - Vielleicht sollt ich dann noch zusätzlich die Module tauschen, sprich Hauptnavi 2 mit Hauptnavi 1.
Auf jeden Fall werde ich das sobald Zeit verfügbar mal mit deinem Lösungsansatz versuchen und entsprechend Rückmeldung geben.
Gruss
Tom
mir scheint dieser Lösungansatz könnte schon eher mein Problem betreffen und lösen.
Denn in der Tat ist die Reihenfolge meiner geteilten Navis etwas quer...
Bei mir sieht das so aus:
Hauptnavi 2 - Ebene 1
darunter dann
Hauptnavi 1 - Ebene 1
dann jeweils darunter und zwar untereinander auf der linken Seiten
zuerst
Hauptnavi 1 - Ebene 2
darunter
Hauptnavi 2 - Ebene 2
Also wirklich ein wenig durcheinander - Vielleicht sollt ich dann noch zusätzlich die Module tauschen, sprich Hauptnavi 2 mit Hauptnavi 1.
Auf jeden Fall werde ich das sobald Zeit verfügbar mal mit deinem Lösungsansatz versuchen und entsprechend Rückmeldung geben.
Gruss
Tom
hmh...ich hab nun deinen Vorschlag (micha667) soweit mal umgesetzt, leider nicht mit befriedigendem Ergebnis.
Anders gesagt, ist das wohl nicht das Problem. Denn wenn ich die
Hauptnavigation 2 - Ebene 1 und die entsprechende Unternavigation 2 ALLEINE einbinde, dann funzt sie auch. Umgekehrt auch mit der Hauptnavigation 1.
Sind aber beide Navigationen im Template, dann erscheinen komischerweise bei der Hauptnavigation 1, die jeweiligen Unterpunkte doppelt. Und zwar 2x die Unterpunkte des gewählten Punktes aus der Hauptnavigation 1, während bei der Hauptnavigation 2 überhaupt keine Unterpunkte angezeigt werden.
Ich denke dass sich doch die jeweiligen Module für die Unternavigationen da in die Quere kommen.
Vielleicht kann man mir jemand sagen, ob ich nicht nur die Funktionsnamen neu benennen muss, sondern evtl. noch andere Werte.
Oder ist es vielleicht möglich: mich667 mal die Codes deiner 2 gesplitteten Hauptnavis mitsamt der Unternavis zu posten, um zu sehen, was anders ist.
Gruss
Tom
Anders gesagt, ist das wohl nicht das Problem. Denn wenn ich die
Hauptnavigation 2 - Ebene 1 und die entsprechende Unternavigation 2 ALLEINE einbinde, dann funzt sie auch. Umgekehrt auch mit der Hauptnavigation 1.
Sind aber beide Navigationen im Template, dann erscheinen komischerweise bei der Hauptnavigation 1, die jeweiligen Unterpunkte doppelt. Und zwar 2x die Unterpunkte des gewählten Punktes aus der Hauptnavigation 1, während bei der Hauptnavigation 2 überhaupt keine Unterpunkte angezeigt werden.
Ich denke dass sich doch die jeweiligen Module für die Unternavigationen da in die Quere kommen.
Vielleicht kann man mir jemand sagen, ob ich nicht nur die Funktionsnamen neu benennen muss, sondern evtl. noch andere Werte.
Oder ist es vielleicht möglich: mich667 mal die Codes deiner 2 gesplitteten Hauptnavis mitsamt der Unternavis zu posten, um zu sehen, was anders ist.
Gruss
Tom
mh, bei mir funktioniert es. hast du denn im template die "unsichtbare navi" (display:none) an entsprechender stelle zusätzlich eingebunden und den kategorien neu zugewiesen. hatte nämlch genau den selben fehler (doppelte einträge)
im layout eingebunden sind bei mir (in der reihenfolge)
1. menu (1.Teil, sichtbar, 2. Teil des Moduls nicht benötigt, da ja unten gedoppelt wird)
2. Menu (1.Teil, an funktionsnamen eine 2 angehängt)
2. Menu (2.Teil, an funktionsnamen eine 2 angehängt)
1.1 Menu (1. Teil gedoppelt, unsichtbar, an funktionsnamen eine 3 angehängt)
1.1 Menu (2. Teil gedoppelt, sichtbar, an funktionsnamen eine 3 angehängt)
schätze, daß du beim gedoppelten menu die funktionen nicht erneut umbenannt hast?!
gruß
micha
im layout eingebunden sind bei mir (in der reihenfolge)
1. menu (1.Teil, sichtbar, 2. Teil des Moduls nicht benötigt, da ja unten gedoppelt wird)
2. Menu (1.Teil, an funktionsnamen eine 2 angehängt)
2. Menu (2.Teil, an funktionsnamen eine 2 angehängt)
1.1 Menu (1. Teil gedoppelt, unsichtbar, an funktionsnamen eine 3 angehängt)
1.1 Menu (2. Teil gedoppelt, sichtbar, an funktionsnamen eine 3 angehängt)
schätze, daß du beim gedoppelten menu die funktionen nicht erneut umbenannt hast?!
gruß
micha
OK, also ich hab deinen vorherigen Lösungansatz mal auf die Schnelle ausprobiert und hatte wie gesagt keinen Erfolg. Wobei ich dachte wg. dieser Doppelung der Untermenüs, dass sich es da evtl. um ein anderes Problem handelt.
Aber wenn das auch bei dir aufgetreten ist, dann sollte ich es wohl genau wie vorgeschlagen probieren.
Was ich jetzt nicht genau verstehe ist die Anzahl der benötigten Module.
Also ich hatte bisher 4 Module - die Hauptnavi 2x und die Unternavi 2x. In der Hauptnavi2 und der Unternavi2 habe ich die Funktionen natürlich umbenannt.
Bei deiner Erklärung müsste ich also, die Hauptnavi und die Unternavi noch ein drittes mal als Module anlegen (zumindest die Hauptnavi, denn für das Hauptmenü1 wird ja keine Unternavi benötigt) und die Funktionsnamen umbennen - versteh ich das richtig?
Das würde dann bedeuten, dass du den Umstand das das Untermenü gedoppelt wird nicht verhinderst, sondern für dich ausgenutzt hast.
Dann habe ich das vorher etwas falsch interpretiert...
Sehe ich das jetzt soweit richtig?
Gruss
Tom
Aber wenn das auch bei dir aufgetreten ist, dann sollte ich es wohl genau wie vorgeschlagen probieren.
Was ich jetzt nicht genau verstehe ist die Anzahl der benötigten Module.
Also ich hatte bisher 4 Module - die Hauptnavi 2x und die Unternavi 2x. In der Hauptnavi2 und der Unternavi2 habe ich die Funktionen natürlich umbenannt.
Bei deiner Erklärung müsste ich also, die Hauptnavi und die Unternavi noch ein drittes mal als Module anlegen (zumindest die Hauptnavi, denn für das Hauptmenü1 wird ja keine Unternavi benötigt) und die Funktionsnamen umbennen - versteh ich das richtig?
Das würde dann bedeuten, dass du den Umstand das das Untermenü gedoppelt wird nicht verhinderst, sondern für dich ausgenutzt hast.
Dann habe ich das vorher etwas falsch interpretiert...
Sehe ich das jetzt soweit richtig?
Gruss
Tom
prinzipiell habe ich nur die überschneidung der container im layout aufgelöst, da die beiden navigationen jetzt jeweils direkt hintereinander kommen und contenido somit kein problem mehr damit hat.
man kann strenggenommen sagen, daß es jetzt drei navigationen (bzw. 2-einhalb) sind, von denen eben zwei auf denselben baum zugreifen. und da nur der erste (und einzige) teil der ersten und der zweite teil der dritten navi sichtbar ist (bei identische inhalten = kategoriebäumen), wird diese doppelte navigation als *eine* wahrgenommen.
gruß
micha
man kann strenggenommen sagen, daß es jetzt drei navigationen (bzw. 2-einhalb) sind, von denen eben zwei auf denselben baum zugreifen. und da nur der erste (und einzige) teil der ersten und der zweite teil der dritten navi sichtbar ist (bei identische inhalten = kategoriebäumen), wird diese doppelte navigation als *eine* wahrgenommen.
gruß
micha
Zuletzt geändert von micha667 am Mi 17. Mai 2006, 08:38, insgesamt 1-mal geändert.