Seite 3 von 8
Verfasst: Mi 21. Jun 2006, 07:39
von bundeswehr_soldat
Ich habe jetzt soweit alles eingebunden. Bin erst mal an der Hauptnavigation dran.
Diese befindet sich bei mir horizontal über der Seite.
Es gibt inzwischen auch keine Fehlermeldungen, also scheine ich den Code richtig eingegeben zu haben.
Es wird aber kein Menü ausgeben.
Ich hatte den Verdacht, dass es keine Daten zum Ausgeben hat, deshalb hab ich den Code an dieser Stelle geändert, sodass er eine Ausgabe macht:
Code: Alles auswählen
elseif (!$output && $this->navigationTree[$parentId][$next]['postid'] == 0) {
/*
* Die Navigation enthält nichts.
*/
echo 'Die Navigation enthält nichts';
}
Meine Befürchtung hat sich bestätigt und es wird
Die Navigation enthält nichts
ausgegeben.
Muss ich irgendwo noch das richtige Menü ausgeben, oder wißt ihr ne andere Lösung?
Grüße Tom
Verfasst: Mi 21. Jun 2006, 07:45
von Halchteranerin
bloede Frage, aber hast du die Kategorie oder den Artikel konfiguriert? Dabei muss der Navigationsbaum ausgewaehlt werden, sonst weiss Contenido nicht, was angezeigt werden soll.
Verfasst: Mi 21. Jun 2006, 07:55
von bundeswehr_soldat
du meinst direkt im content unter kategorie,
Kategorie - Hauptnavigation, dann Kategorie konfigurieren,
Modul in Container ... Hauptnavigationsmodul ausgewählt und Hauptnavigation als Baum ausgewählt.
Ergebniss:
Die Navigation enthält nichts
Verfasst: Mi 21. Jun 2006, 09:19
von bundeswehr_soldat
ok, problem gelößt...
--> Es war eine 2. Sprache angelegt. Diese gelöscht -> Navigation funkt
Danke
Verfasst: Fr 14. Jul 2006, 16:06
von KrissKrass
Habe das Modul eingebaut es es funktioniert super... Nur das mit dem before und after nicht. was habe ich falschgemacht?
Hier mein Quellcode:
Code: Alles auswählen
<?php
if (!class_exists('navigation')) {
class navigation {
/**
* Konstruktor der Klasse.
* @param Integer Primärschlüssel der Startkategorie.
*/
function navigation($startId) {
global $client, $lang, $idcat;
$this->startId = $startId;
$this->client = $client;
$this->lang = $lang;
$this->idcat = $idcat;
$this->before = '';
$this->beforeEach = '';
$this->between = '';
$this->after = '';
$this->db = new DB_Contenido();
$this->setStartIds();
$this->getNavigation();
}
/**
* Auslesen der Navigationsstruktur aus der Datenbank.
*/
function getNavigation() {
global $cfg;
if ($this->startId != $this->id[0]) {
/*
* Wenn die StartId nicht identisch ist mit der höchsten Ebene der
* aktuell selektierten Kategorie, dann liegt die gewählte Kategorie
* folgerichtig ausserhalb des für die Navigation gewählten Baumes.
* In diesem Fall ist nur die Hauptnavigation einzublenden.
*/
$this->id[0] = $this->startId;
for ($i = 1; $i <= 3; $i++) {
$this->id[$i] = -1;
}
}
$this->db->query("" .
"SELECT " .
" a.idcat, " .
" a.parentid, " .
" a.preid, " .
" a.postid, " .
" a.parentid, " .
" b.visible, " .
" b.name, " .
" b.idlang " .
" FROM {$cfg['tab']['cat']} AS a " .
"LEFT JOIN {$cfg['tab']['cat_lang']} AS b ON a.idcat = b.idcat " .
"WHERE " .
" a.idclient = {$this->client} " .
" AND (" .
" a.parentid = {$this->id[0]} " .
" OR a.parentid = {$this->id[1]} " .
" OR a.parentid = {$this->id[2]} " .
" OR a.parentid = {$this->id[3]} " .
" ) " .
"");
$this->navigationTree = array();
$this->firstId[0] = 0;
$this->firstId[1] = 0;
$this->firstId[2] = 0;
$this->firstId[3] = 0;
while ($this->db->next_record()) {
for ($i = 0; $i <= 3; $i++) {
if (($this->firstId[$i] == 0 && $this->db->f('parentid') == $this->id[$i] && $this->db->f('preid') == 0 && $this->db->f('idlang') == $this->lang) || ($this->firstId[$i] == 0 && $this->db->f('parentid') == $this->id[$i] && $this->db->f('preid') == 0 && $this->db->f('idlang') == null)) {
$this->firstId[$i] = $this->db->f('idcat');
}
}
$this->navigationTree[$this->db->f('parentid')][$this->db->f('idcat')] = array('preid'=>$this->db->f('preid'), 'postid'=>$this->db->f('postid'), 'visible'=>$this->db->f('visible'), 'name'=>$this->db->f('name'), 'idlang'=>$this->db->f('idlang'));
}
}
/**
* Ausgabe der Navigation an die Standardausgabe.
* @param String Navigationstyp
*/
function showNavigation($type, $next = -1) {
static $first;
static $output = false;
if ($next == 0) {
return false;
}
if ($next == -1) {
echo $this->before;
$next = $this->firstId[$type];
$first = true;
}
$parentId = $this->id[$type];
$link = 'front_content.php?idcat='.$next;
if ($this->navigationTree[$parentId][$next]['visible'] == 1 && $this->navigationTree[$parentId][$next]['idlang'] == $this->lang) {
if (!$first) {
echo $this->between;
}
if ($this->isSelected($next)) {
echo '<td width="117" height="33" bgcolor="#DCDCDC" align="center"><a href="'.$link.'" class="navigation_active">'.$this->navigationTree[$parentId][$next]['name'].'</a></td><td width="5" bgcolor="#FFFFFF"><img src="images/space.gif" width="5" height="5" alt=""></td>';
} else {
echo '<td width="117" height="33" bgcolor="#DCDCDC" align="center"><a href="'.$link.'" class="navigation">'.$this->navigationTree[$parentId][$next]['name'].'</a></td><td width="5" bgcolor="#FFFFFF"><img src="images/space.gif" width="5" height="5" alt=""></td>';
}
$first = false;
$output = true;
} elseif (!$output && $this->navigationTree[$parentId][$next]['postid'] == 0) {
/*
* Die Navigation enthält nichts.
*/
echo ' ';
}
$this->showNavigation($type, $this->navigationTree[$parentId][$next]['postid']);
}
/**
* Ausgabe vor der Navigation
* @param String Ausgabe vor der Navigation.
*/
function before($text) {
echo '';
}
/**
* Ausgabe vor jedem Eintrag
* @param String Ausgabe vor jedem Eintrag.
*/
function beforeEach($text) {
$this->beforeEach = $text;
}
/**
* Ausgabe vor jedem selektierten Menueintrag
* @param String Ausgabe vor jedem selektierten Menueintrag.
*/
function beforeSelected($text) {
$this->beforeSelected = $text;
}
/**
* Ausgabe zwischen zwei Hauptmenupunkten
* @param String Ausgabe zwischen zwei Hauptmenupunkten.
*/
function between($text) {
$this->between = $text;
}
/**
* Ausgabe nach der Navigation
* @param String Ausgabe nach der Navigation.
*/
function after($text) {
echo '';
}
/**
* Gibt das Level der Kategorie zurück.
* @param Integer Primärschlüssel der Kategorie.
* @return Integer Level der spezifizierten Kategorie.
*/
function getLevel($idcat) {
global $cfg;
if (empty($idcat)) {
return 0;
}
$this->db->query("" .
"SELECT level FROM {$cfg['tab']['cat_tree']} " .
"WHERE " .
" idcat = $idcat" .
"");
if ($this->db->next_record()) {
return $this->db->f('level');
} else {
return 0;
}
}
/**
* Gib die Tiefe relativ zum Hauptmenu an.
* @param Integer Primärschlüssel der Kategorie
* @return Integer Level relativ zum Hauptmenu
*/
function getNetLevel($idcat) {
return $this->getLevel($idcat) - $this->getLevel($this->startId);
}
/**
* Ermittlung des jeweils ersten Kategorieeintrages jeder Ebene. Die
* Speicherung dieser Daten erfolgt in das Klassenattribut id.
*/
function setStartIds() {
$id = $this->idcat;
$level = $this->getNetLevel($id);
$this->id[$level] = $id;
while ($level > 0) {
$this->id[$level-1] = $this->getParentId($id);
$id = $this->id[$level-1];
$level = $this->getNetLevel($id);
}
if (empty($this->id)) {
$this->id[0] = $this->startId;
}
for ($i = 1; $i <= 3; $i++) {
if (empty($this->id[$i])) {
$this->id[$i] = -1;
}
}
ksort($this->id);
}
/**
* Ermittlung des Elternelementes der Kategorie mit dem Primärschlüssel
* idcat
* @param Integer Primärschlüssel des Kindelementes, dessen Elternelement
* ermittelt werden soll.
* @return Integer Primärschlüssel des Elternelementes.
*/
function getParentId($idcat) {
global $cfg;
$this->db->query("" .
"SELECT parentid FROM {$cfg['tab']['cat']} " .
"WHERE " .
" idcat = $idcat " .
"");
if ($this->db->next_record()) {
return $this->db->f('parentid');
} else {
return 0;
}
}
/**
* Anzeige, ob eine Navigationsebene Elemente enthält oder nicht.
* @param Integer Navigationsstufe.
* @return Boolean True, wenn die Navigationsstufe leer ist (keine Elemente
* enhält). Sonst false.
*/
function navigationEmpty($level) {
if ($this->firstId[$level] == 0) {
return true;
}
return false;
}
/**
* Anzeige, ob eine Kategorie selektiert ist oder nicht. Eine Kategorie gilt
* als selektiert, wenn sie die aktuelle Kategorie ist oder ein direktes
* oder indirektes Elternelement der aktuellen Kategorie.
* @param Integer Primärschlüssel der Kategorie, deren Status gefragt ist.
* @return Boolean True, wenn die gefragte Kategorie mit der aktuellen
* Kategorie übereinstimmt oder ein direktes oder indirektes Elternelement
* der aktuellen Kategorie darstellt.
*/
function isSelected($idcat) {
return in_array($idcat, $this->id);
}
}
}
$navigation = new navigation("CMS_VALUE[0]");
$navigation->after('</tr></table></td></tr><tr><td bgcolor="#FFFFFF"><img src="images/space.gif" width="10" height="5" alt=""></td></tr></table>');
$navigation->before('<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td bgcolor="#DCDCDC"><table border="0" cellspacing="0" cellpadding="0"><tr>');
$navigation->showNavigation(0);
?>
Dabke für die Hilfe.
Verfasst: Mi 26. Jul 2006, 17:15
von broedi
philippe hat geschrieben:
und nun kam eine sprache hinzu (kurz vor launch)
und im deutschen bereich (lang1) ist die navi weg.
any idea??
zum sprachenproblem:
in der funktion getNavigation() des moduls den folgenden sql-code (ab FROM) ersetzen hat zumindest bei mir geholfen:
Code: Alles auswählen
" FROM {$cfg['tab']['cat']} AS a " .
"INNER JOIN {$cfg['tab']['cat_lang']} AS b ON a.idcat = b.idcat " .
"WHERE " .
" b.idlang = ". $this->lang." " .
" AND a.idclient = {$this->client} " .
" AND (" .
" a.parentid = {$this->id[0]} " .
" OR a.parentid = {$this->id[1]} " .
" OR a.parentid = {$this->id[2]} " .
" OR a.parentid = {$this->id[3]} " .
" ) " .
"");
gruss
broedi
Immernoch fehlende Einbindung von AFTER
Verfasst: Di 1. Aug 2006, 00:36
von alwin4711
Hallo,
könnte mal jemand von den php-Spezialisten mir die Änderungen mitteilen
um die Funktion
function after($text) {
$this->after = $text;
}
im Navigationsmodul zu aktivieren.
So wie es im Moment ist, geht die Navigation leider nicht richtig.
Vielen Dank im voraus
Alwin
Problem mit gesplitteter Navigation und Hilfsnavi
Verfasst: Do 3. Aug 2006, 12:34
von shadows
Hallo ihrs,
ich habe die gesplittete Navigation eingebaut und diese funktioniert auch sehr gut. Allerdings habe ich nun eine Hilfsnavigation (Impressum|Sitemap|Suche) eingebaut und bekomme die Fehlermeldung:
Fatal error: Call to a member function showNavigation() on a non-object in C:\Programme\xampp\htdocs\contenido-cms\cms\front_content.php(792) : eval()'d code on line 525
Nehme ich die Hilfsnavi raus, läuft's wieder korrekt. Wo liegt denn mein Fehler? Kann mir jemand helfen?
Vielen Dank schon mal!
shadows
Re: Problem mit gesplitteter Navigation und Hilfsnavi
Verfasst: Mo 28. Aug 2006, 10:43
von Deddy
Hallo!
Ich habe da noch ein kleines Problemchen.
Meine Navigation sieht so aus:
Code: Alles auswählen
+Hauptnavigation
+meine Familie
-Ich
-mein Bruder
+Kontakt
-Kontaktformular
+Impressum
Funktioniert soweit gut. Die gesplittete Subnavi wir wunderbar angezeigt. Auch die Hauptnavi. Wähle ich aber die Seite "mein Bruder" aus, wird mir in der gesplitteten Navigation nur meine Famile angezeigt. Ich verwende die Release: 4.6.8.
Wäre prima, wenn mir da jemand helfen würde. Ich komme einfach nicht weiter.
Gruß Deddy
Re: Problem mit gesplitteter Navigation und Hilfsnavi
Verfasst: Mo 28. Aug 2006, 12:49
von mvf
Deddy hat geschrieben:Hallo!
Ich habe da noch ein kleines Problemchen.
Meine Navigation sieht so aus:
Code: Alles auswählen
+Hauptnavigation
+meine Familie
-Ich
-mein Bruder
+Kontakt
-Kontaktformular
+Impressum
Funktioniert soweit gut. Die gesplittete Subnavi wir wunderbar angezeigt. Auch die Hauptnavi. Wähle ich aber die Seite "mein Bruder" aus, wird mir in der gesplitteten Navigation nur meine Famile angezeigt. Ich verwende die Release: 4.6.8.
Wäre prima, wenn mir da jemand helfen würde. Ich komme einfach nicht weiter.
Gruß Deddy
ähm wie ???
genau das ist doch der sinn einer gesplitteten navi
level 1 zb horizontal im header =
meine fam - kontakt - impressum
click auf meine fam öffnet dann z.b. in einer column oder an anderer stelle im layout
- ich
- mein bruder
clcik auf eines der beiden zeigt den startikel
verstehe nicht was du meinst
Verfasst: Di 29. Aug 2006, 07:21
von Deddy
Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.
Hat sich erledigt

Verfasst: Di 5. Sep 2006, 16:04
von DocET
funktioniert die navi auch mit adv.modrewrite?
lg
Verfasst: Di 5. Sep 2006, 16:52
von mvf
schon aml probiert?

Verfasst: Sa 28. Okt 2006, 16:12
von simas
Ist es auch möglich, Navigation 1 in einem Container und Navigation 2, 3 etc. so wie es bei der Standardnavigation ist darzustellen?
Vielen Dank
Simon
Verfasst: Mo 30. Okt 2006, 09:08
von rene04
@simas:
wie meinst du das genau? etwa so:
www.sieda.com ?
gruesse rene