Seite 13 von 25

Verfasst: Fr 7. Dez 2007, 20:45
von ZuMe
Hallo,

wollte nur Danke sagen für das schöne Modul ! Jetzt gehts in meinem Testbereich so wie ich es mir vorgestellt hab, erste Ebene quer und die restlichen dann links und alles prima :)

Hat sich eigentlich noch etwas ergeben wegen dieser Zweisprachigkeit, was seelauer geschrieben hat? Ich hatte die englische Sprache nämlich auch im Modul gelassen und möchte sie nach seinem letzten Post jetzt nicht einfach löschen, falls dann auch die Artikel des Beispielmandanten weg sind.

Kummer, vielleicht solltest Du noch irgendwo dazu schreiben, daß die Klasse nur 4 Navigationsebenen ausliest und abbildet (so, wie die Standard-Beispielnavigation ja auch).
Es ist ja aber dank deiner gründlichen Kommentierung schnell zu ändern, wenn man mehr braucht.

lg,
Suse

Verfasst: Do 20. Dez 2007, 10:29
von mayer_nl
Hallo,
gibt es die Möglichkeit eine 4. und 5. Ebene einzubauen :?:
So einfach wie die 3. ist es leider nicht.

Verfasst: Fr 21. Dez 2007, 00:46
von kmutx
Ich weiss nicht ob es schon zu spät ist oder ob ich es einfach nicht verstehe.....

ich habe nun die datei atelierq....clas...php in das cms/includes verzeichnis kopiert. und ein modul nur mit dem output aus der output.php erstellt. dieses über ein template einem container zugewiesen..... und nix klappt.

das ganze lesen hier im thread verwirrt mich noch umso mehr...... kann denn niemand mal alle nötigen schritte cronologisch zuzammenfassen? Bitte.....

Na wenigstens noch einer, der's nicht versteht

Verfasst: Mo 24. Dez 2007, 21:41
von Siegfried
Also ich lese auch schon ein paar tage und versuche das modul einzubauen, aber ich kriege nicht die geringste reaktion aus dem ganzen. ich kann mich nur anschließen... Bitte

Verfasst: Do 27. Dez 2007, 10:45
von kummer
meistens liegt es nur an den indidzes. die oberste ebene hat eine 0, die zweite ebene eine 1 usw. um die erste ebene unterhalb der hauptnavigation anzuzeigen, ist der index 0 zu verwenden. probier das mal aus. das beispiel, das hier publiziert ist, ist nicht ideal.

fehler bei cat ohne sub

Verfasst: Mo 7. Jan 2008, 12:16
von wewo
Hallo!
Zuerst danke für das Modul - schöne Arbeit!
Verwende das Modul für eine gesplittete Navigation, doch leider bekomme ich seltsame Fehler und kann mir nicht ganz erklären wo der Hund begraben ist. :roll:

Navigation_Hauptebene:

Code: Alles auswählen

<?php

cInclude('classes', 'class.aQnavigation.php');

$cApiClient = new cApiClient($client);
$aQnavigation = new aQnavigation($cApiClient->getProperty('navigation', 'idcat_hauptnavi'));


$aQnavigation->before(0,'<ul id="navigationmain">');
$aQnavigation->between(0, '');
$aQnavigation->after(0,'</ul>');
$aQnavigation->maskNormal(0, '<li><a href="{link}">{name1}</a></li>');
$aQnavigation->maskNormalSub(0, '<li><a href="{link}" class="sub">{name1}</a></li>');
$aQnavigation->maskSelected(0, '<li><a href="{link}" class="activ">{name1}</a></li>');
$aQnavigation->maskSelectedSub(0, '<li><a href="{link}" class="activ">{name1}</a></li>');


echo $aQnavigation->showNavigation(0);

?>
Navigation_Subebene:

Code: Alles auswählen

<?php

cInclude('classes', 'class.aQnavigation.php');
$cApiClient = new cApiClient($client);
$treeID = intval($cApiClient->getProperty('navigation', 'idcat_hauptnavi'));
$aQnavigation = new aQnavigation($treeID);

// Ausgabe 2. Stufe
$aQnavigation->before(         2, "\n\t<ul class='opensub'>");
$aQnavigation->after(          2, "\n\t</ul>\n");
$aQnavigation->between(        2,  "\n\t\t");
$aQnavigation->maskNormal(     2, "<li class='indented'><a href='{link}'>{name1}</a></li>"                );
$aQnavigation->maskSelected(   2, "<li class='indented active'><a href='{link}' class='active'>{name1}</a></li>" );

// Ausgabe 1. Stufe
$aQnavigation->before(         1, "\n<ul id='subnavigation'>\n");
$aQnavigation->after(          1, "\n</ul>\n");
$aQnavigation->between(        1, "\t");
$aQnavigation->maskNormal(     1, "\n<li><a href='{link}'>{name1}</a></li>"                                       );
$aQnavigation->maskSelectedSub(1, "\n<li class='more open'><a href='{link}' class='active'>{name1}</a>{sub}</li>" );
$aQnavigation->setSub(1, $aQnavigation->showNavigation(2));


echo  $aQnavigation->showNavigation(1);

?>
Die Kategorien sind zumeist entweder:
- Haupt
-- Sub
-- Sub
-- Sub
-- Sub
oder
- Haupt
-- Sub
--- SubSub
--- SubSub
-- Sub


Bei allen Menüs mit SubSub Ebene funktioniert alles Prima, nur wenn ich eine Sub Ebene !ohne! SubSub auswähle funktioniert das Menü leider nicht mehr.

Mal ein fehlerfreier Beispielcode für eine aktive SubSub Kategorie:

Code: Alles auswählen

<ul id='subnavigation'>

<li><a href='/neukunden/produkte/leadsgenerator/'>Leadsgenerator®</a></li>	
<li class='more open'><a href='/neukunden/produkte/socratesdatabase/' class='active'>Socratesdatabase®</a>
	<ul class='opensub'><li class='indented'><a href='/neukunden/produkte/socratesdatabase/vorteile/'>Vorteile</a></li>
		<li class='indented'><a href='/neukunden/produkte/socratesdatabase/beispiele/'>Beispiele</a></li>
		<li class='indented active'><a href='/neukunden/produkte/socratesdatabase/seminare/' class='active'>Seminare</a></li>

		<li class='indented'><a href='/neukunden/produkte/socratesdatabase/einsatzgebiete/'>Einsatzgebiete</a></li>
	</ul>
</li>	
<li><a href='/neukunden/produkte/voicegenerator/'>Voicegenerator®</a></li>	
<li><a href='/neukunden/produkte/salesturbo/'>Salesturbo®</a></li>
</ul>
Beispielcode aktive Level 0 Ebene (z.b: Kontakt) mit nur Subs (ohne SubSubs):

Code: Alles auswählen

<ul id='subnavigation'>

<li><a href='/neukunden/kontakt/anschrift/'>Anschrift</a></li>	

<li><a href='/neukunden/kontakt/callback/'>Callback</a></li>	
<li><a href='/neukunden/kontakt/kontaktformular/'>Kontaktformular</a></li>
</ul>
Und jetzt die fehlerhafte Ausgabe, wenn ich eine dieser Subs (callback) auswähle

Code: Alles auswählen

<ul id='subnavigation'>

<li><a href='/neukunden/kontakt/anschrift/'>Anschrift</a></li>	
<li class='more open'><a href='/neukunden/kontakt/callback/' class='active'>Callback</a>
	<ul class='opensub'></li>	
<li><a href='/neukunden/kontakt/kontaktformular/'>Kontaktformular</a></li>

</ul>
		<!-- content schon vom nächten modul..... -->
		<div class="content left bxl">	
			<h1>Callback Formular<br/>
</h1>
..
..
..
..

Was läuft denn da schief :?:
Es wird $aQnavigation->before( 2, "\n\t<ul class='opensub'>"); fälschlicher Weise gerufen aber $aQnavigation->after( 2, "\n\t</ul>"); nicht?? Und warum überhaupt der Sprung in die 2. Subebene?

HILFE :shock:

Wenn ich allerdings das Outputmodul der Subnavi wiefolgt ändere:

Code: Alles auswählen

<?php

cInclude('classes', 'class.aQnavigation.php');
$cApiClient = new cApiClient($client);
$treeID = intval($cApiClient->getProperty('navigation', 'idcat_hauptnavi'));
$aQnavigation = new aQnavigation($treeID);

// Ausgabe 2. Stufe
$aQnavigation->before(         2, "");
$aQnavigation->after(          2, "");
$aQnavigation->between(        2,  "\n\t\t");
$aQnavigation->maskNormal(     2, "<li class='indented'><a href='{link}'>{name1}</a></li>"                );
$aQnavigation->maskSelected(   2, "<li class='indented active'><a href='{link}' class='active'>{name1}</a></li>" );

// Ausgabe 1. Stufe
$aQnavigation->before(         1, "\n<ul id='subnavigation'>\n");
$aQnavigation->after(          1, "\n</ul><!-- after sub1 -->\n");
$aQnavigation->between(        1, "\t");
$aQnavigation->maskNormal(     1, "\n<li><a href='{link}'>{name1}</a></li>"                                       );
$aQnavigation->maskSelected(   1, "\n<li><a href='{link}' class='active'>{name1}</a></li>"                        );
$aQnavigation->maskSelectedSub(1, "\n<li class='more open'><a href='{link}' class='active'>{name1}</a>\n\t<ul class='opensub'>{sub}\n</ul>\n</li>" );
$aQnavigation->setSub(1, $aQnavigation->showNavigation(2));


echo  $aQnavigation->showNavigation(1);

?>
Läuft alles wieder normal...... steh ich am Schlauch was die Methoden before/after machen sollten?

Ciao
wewo

Verfasst: Mo 7. Jan 2008, 13:00
von kummer
es wird immer zwischen menupunkten unterschieden, die noch unterpunkte haben und welchen, die eben keine haben. das musst du auch dann berücksichtigen, wenn du die gleiche ausgabe machen willst. du solltest also sowas haben:

Code: Alles auswählen

$aQnavigation->maskSelected(   2, "<li class='indented active'><a href='{link}' class='active'>{name1}</a></li>" ); 
$aQnavigation->maskSelectedSub(   2, "<li class='indented active'><a href='{link}' class='active'>{name1}</a></li>" ); 
sonst erfolgt ein aufruf einer maske, die nicht existiert.

ich hoffe, das löst dein problem.

gruss,
andreas

4. ebene - lösung gefunden?

Verfasst: Di 29. Jan 2008, 14:09
von Pepe G.
mayer_nl hat geschrieben:Hallo,
gibt es die Möglichkeit eine 4. und 5. Ebene einzubauen :?:
So einfach wie die 3. ist es leider nicht.
Bei mir geht es auch nicht.
Ich würde mir gerne die 4. Ebene ausgeben lassen, doch es klappt leider nur bis zur 3. Ebene.

Ich habe die 3. Ebene kopiert, die 3 durch eine 4 ersetzt und
dann noch die "setSub" Zeile eingefügt.

Hat jemand eine Idee?

Hier der Output:

Code: Alles auswählen

<?php 

cInclude('frontend', 'includes/atelierq.navigation.class.inc.php'); 

$cApiClient = new cApiClient($client); 
$aQnavigation = new aQnavigation($cApiClient->getProperty('navigation', 'idcat_servicenavigation')); 

$aQnavigation->between(4, ''); 
$aQnavigation->maskNormal(4, '<div class="navthirdoff"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->maskSelected(4, '<div class="navthirdon"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->maskSelectedSub(4, '<div class="navthirdon"><a target="_self" href="{link}">{name1}</a></div>'); 

$aQnavigation->between(3, ''); 
$aQnavigation->maskNormal(3, '<div class="navthirdoff"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->maskSelected(3, '<div class="navthirdon"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->maskSelectedSub(3, '<div class="navthirdon"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->setSub(3, $aQnavigation->showNavigation(4)); 

$aQnavigation->between(2, ''); 
$aQnavigation->maskNormal(2, '<div class="navsecondoff"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->maskSelected(2, '<div class="navsecondon"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->maskSelectedSub(2, '<div class="navsecondon"><a target="_self" href="{link}">{name1}</a></div>{sub}'); 
$aQnavigation->setSub(2, $aQnavigation->showNavigation(3)); 

$aQnavigation->between(1, ''); 
$aQnavigation->maskNormal(1, '<div class="navfirstoff"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->maskSelected(1, '<div class="navfirstopen"><a target="_self" href="{link}">{name1}</a></div>'); 
$aQnavigation->maskSelectedSub(1, '<div class="navfirstopen"><a target="_self" href="{link}">{name1}</a></div>{sub}'); 
$aQnavigation->setSub(1, $aQnavigation->showNavigation(2)); 

echo $aQnavigation->showNavigation(1); 

?>

Verfasst: Di 29. Jan 2008, 17:13
von kummer
so sollte es gehen:

Code: Alles auswählen

$aQnavigation->between(3, '');
$aQnavigation->maskNormal(3, '<div class="navthirdoff"><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskSelected(3, '<div class="navthirdon"><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskSelectedSub(3, '<div class="navthirdon"><a target="_self" href="{link}">{name1}</a>{sub}</div>');
$aQnavigation->setSub(3, $aQnavigation->showNavigation(4)); 
(3. ebene durch diesen code ersetzen. respl. {sub} an der richtigen stelle einfügen.)

gruss,
andreas

Verfasst: Mi 30. Jan 2008, 09:20
von Pepe G.
danke erstmal für deine antwort andreas,

klappt leider nicht.

das {sub} bzw. deinen teil habe ich ersetzt aber die 4. Ebene wird immer noch nicht angezeigt.

bei einem var_dump($aQnavigation);
taucht auch keine 4. Ebene auf.

kategorie & artikel alles ist online

hast du noch eine idee?

danke und grüße
pepe

Verfasst: Mi 6. Feb 2008, 10:08
von derSteffen
Hallo,

ich habe mal ein Frage, weil ich das gerade gelesen habe. Funktioniert die Navigation universell nicht in mehrsprachigen Versionen?

und ...

Kann ich dieses Modul in einem Template auch zweimal verwenden (für 2 Kategoriebäume)?

Vielen Dank

Verfasst: Mo 18. Feb 2008, 10:29
von matt.loker
Hi Kummer,
habe mal eine Frage.
Kann man den Include

Code: Alles auswählen

cInclude('frontend', 'includes/atelierq.navigation.class.inc.php');

$cApiClient = new cApiClient($client);
$aQnavigation = new aQnavigation($cApiClient->getProperty('navigation', 'idcat_mainnavigation'));
nicht aus dem eigentlichen Modul trennen und in ein neues eigenständiges Modul schmeißen und es dann an den Anfang noch vor den HTML-Code einbauen?
Bei mir ist es gerade so, dass bei abwechselnd mal die Ebene 1 des Hauptmenüs zuerst geladen wird und dann erst die anderen Ebenen und ein ander Mal die Ebenen 2-5 vor der Ebene 1 geladen wird. Das liegt am Design der Seite.

Nun müsste ich es so lösen, dass ich 2 verschiedene Layouts haben mit 2 unterschiedlichen Navigationsmodulen und zwar ein Modul indem der Include in der Ebene 1 passiert und ein anderes Modul in dem der Include erst in den Ebenen 2-5 geschieht.

Ich hoffe du kommst mir meiner Erklärung mit. Habe die gabe Sachen unnötig zu verkomplizieren :). Es würde deine Navi dadurch noch ein Stück felxibler machen da man dann nicht mehr auf die Reihenfolge, in der die Module eingebunden werden, achten müsste.

Grüße
Matt

Verfasst: Fr 22. Feb 2008, 15:31
von kummer
matt.loker hat geschrieben:...nicht aus dem eigentlichen Modul trennen und in ein neues eigenständiges Modul schmeißen und es dann an den Anfang noch vor den HTML-Code einbauen?
das kann man auf jeden fall machen. ich sehe da keinerlei problem.

Verfasst: Mo 25. Feb 2008, 14:36
von matt.loker
Ich habe es jetzt doch auf der Design-Ebene lösen können aber es ist gut zu wissen, dass es geht :)
Dank dir!

Verfasst: Mo 25. Feb 2008, 14:53
von kummer
mit folgender anweisung...

Code: Alles auswählen

$aQnavigation = new aQnavigation($cApiClient->getProperty('navigation', 'idcat_mainnavigation')); 
wird bloss die instanziierung vorgenommen. diese muss vor dem ersten gebrauch erfolgen, kann allerdings in ein separates modul ausgelagert werden oder sogar direkt in das layout integriert werden (das ja auch interpretiert werden wird).

es ist im übrigen auch möglich, die kategorie direkt im modul zu konfigurieren. dazu kann einfach folgende anweisung verwendet werden:

Code: Alles auswählen

$aQnavigation = new aQnavigation(1); 
wobei die 1 durch die zutreffend idcat zu ersetzen ist. das ist häufig einfacher, als jedesmal die kategorie als eingeschaft in contenido anlegen zu müssen.