Navigation 1.1 geteilt mit Überschrift

rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Navigation 1.1 geteilt mit Überschrift

Beitrag von rw72 » Di 9. Okt 2007, 14:20

Hallo,
ich nutze die Navigation 1.1 von Jan Lengowski.
Die Navigation ist geteilt - das Funktioniert auch Problemlos.

Ich würde aber gerne über dem Untermenü noch die jeweilige Überschrift über dem Untermenü nochmals anzeigen lassen.

Hauptmenü z.B. Test1 / Test2
Untermenü z.B.
Test1
- Unter1
- Uunter2

Wie kann ich das realisieren?

Danke

Modul Haupt:

Code: Alles auswählen

<?php 
// Hauptnav 
/*********************************************** 
* 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 
*/ 
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(); 

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

if ($idcat == $data['idcat'] || is_array($data['sub'])) { 
$tpl->generate('templates/navfirst_h_on.html'); 
} else { 
$tpl->generate('templates/navfirst_h_off.html'); 
} 
if (is_array($data['sub'])) { 
$tmp_data = array(); 
$tmp_data = $data; 
} // end if 
} // end foreach 

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

/* Clean buffer */ 
ob_end_clean(); 

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

?> 
Modul Unter:

Code: Alles auswählen

<?php
if (is_array($tmp_data['sub'])) {
$data = $tmp_data;

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

if ($idcat == $data['idcat'] || is_array($data['sub'])) {
$tpl->generate('templates/navsecond_h_on.html');
} else {
$tpl->generate('templates/navsecond_h_off.html');
}
if (is_array($data['sub'])) {

foreach ($data['sub'] as $key2 => $data2) {

/* 3. Navigations Ebene */
$tpl->reset();
$tpl->set('d', 'NAME', $data2['name']);
$tpl->set('d', 'TARGET', $data2['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data2['idcat']));
$tpl->next();

if ($idcat == $data2['idcat']) {
$tpl->generate('templates/navthird_h_on.html');
} else {
$tpl->generate('templates/navthird_h_off.html');
}
} // end foreach
} // end if

} // end for each
} // end if  ?>

wosch

Beitrag von wosch » Di 9. Okt 2007, 15:06

Solch ein Modul gibt es.
Du mußt mal bei geteilter Navi suchen.
Da gibt es ein paar Threads (mit Module) zu.
In einem steht (ganz unscheinbar) ein Beitrag mit einem Modul um die Ebene 1 über den Punkten der Ebenen 2 auszugeben.

silicone
Beiträge: 299
Registriert: Di 15. Mär 2005, 10:33
Kontaktdaten:

Beitrag von silicone » Di 9. Okt 2007, 15:40

Hallo,
versuch dasmal...


Gruß, Thomas

rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Beitrag von rw72 » Di 9. Okt 2007, 16:58

Ich suche kein Modul neues Modul.
Mein Modul funktioniert mit geteilter Navigation!

Aber ich will den Titel in der Unternavigation nochmals einblenden!!!

wosch

Beitrag von wosch » Di 9. Okt 2007, 17:19

rw72 hat geschrieben:Ich suche kein Modul neues Modul.
Mein Modul funktioniert mit geteilter Navigation!

Aber ich will den Titel in der Unternavigation nochmals einblenden!!!
Ja, das ist klar.

Aber ...

Bevor du nichts hast, oder bevor sich jemand hinsetzt und programmiert ...

Als neues Modul, schnell eingebunden - ist alles bereits da.

Und es gibt immer mehrere Wege nach Rom.

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Di 9. Okt 2007, 17:26

verschoben

rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Beitrag von rw72 » Di 9. Okt 2007, 17:37

Sorry hatte dich falsch verstanden - funktioniert DANKE

Gibt es auch noch eine Möglichkeit das wenn hinter einer Kategorie kein Artikel ist die Navigation ohne Link anzuzeigen?

DANKE

wosch

Beitrag von wosch » Di 9. Okt 2007, 18:22

rw72 hat geschrieben:Gibt es auch noch eine Möglichkeit das wenn hinter einer Kategorie kein Artikel ist die Navigation ohne Link anzuzeigen?

DANKE
Mir nicht bekannt.
Macht aber auch keinen Sinn.
Was soll eine Kategorie angezeigt werden wenn dahinter kein Inhalt/Artikel ist?

Wenn du die Kategorie nur hast um etwas anzuzeigen, leg einen Artikel an, mach den Artikel zum Startartikel.
Und in diesem Artikel machst du eine interne Weiterleitung auf einen Artikel (einer Kategorie die Online ist, der Artikle ist online und Startartikel) der dafür angezeigt werden soll.

Wie ich sagte, viele Wege führen nach Rom, und Contenido läßt da schon Spielraum für kreative Ideen.

rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Beitrag von rw72 » Di 9. Okt 2007, 20:06

Leider funktioniert das von silicone gefundene nicht.
Wenn ich auf ein Punkt in der 2. Ebene klicke, ändert sich die Überschrift.

Hat jemand noch so ein Modul gefunden?

wosch

Beitrag von wosch » Di 9. Okt 2007, 20:16

rw72 hat geschrieben:Hat jemand noch so ein Modul gefunden?
Warum suchst du nicht selber danach, Stichworte hatte ich genannt?
Zeit zu schade?
Zeit zu kostbar?
Zeit besser für was anderes Nutzen?

Den Rest sage ich besser nicht was ich denke, schreiben möchte ...

rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Beitrag von rw72 » Di 9. Okt 2007, 20:22

Weil ich keins finde - bin leider nicht so schlau wie Sie.

Wenn ich "Navigation 1.1 geteilte Navigation" erhalte ich 65 Funde die leider das Problem nicht lösen

wosch

Beitrag von wosch » Di 9. Okt 2007, 20:27

rw72 hat geschrieben:Weil ich keins finde - bin leider nicht so schlau wie Sie.

Wenn ich "Navigation 1.1 geteilte Navigation" erhalte ich 65 Funde die leider das Problem nicht lösen
Das Stichwort heißt: geteilte navigation
(alle Wörter/sinnvoll-Themen, nicht Beiträge, auf 4.6.x beschränken, ...)

Und selbst wenn, 65 Beiträge habe ich locker in 1 Stunde überflogen, was kostet deine Stunde?

Also mach dich ran, oder schreibe: ich suche jemand gegen Bezahlung der ...

Mann, ... *zenziert*

wosch

Beitrag von wosch » Di 9. Okt 2007, 20:42

http://www.contenido.de/forum/viewtopic ... sid=037736

Deine Zeitersparnis sende als Spende an HerrB für das Projekt Coummnity Contenido

rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Beitrag von rw72 » Di 9. Okt 2007, 21:04

Das ist der gleiche Code wie von silicone.

Und der funktioniert leider nicht korrekt.
Wenn ich auf ein Untermenüpunkt klicke erhalte ich nicht die 1. Kategorie sondern den Text des ausgewählten Unterpunkts.

Aber Danke ich suche selbst bevor wir weiter diskutieren!

wosch

Beitrag von wosch » Di 9. Okt 2007, 21:29

*schulterzuck*
Bei mir hat er mit einer 4.6.x und XAMPP funktioniert.

Gesperrt