Modul :: NavigationUniversell

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Di 17. Jul 2007, 11:49

das aufteilen der navigation ist einfach.

mit dem aufruf...

Code: Alles auswählen

$aQnavigation->setSub(0, $aQnavigation->showNavigation(1));
wird die navigation der stufe 1 in die stufe 0 integriert. dies muss nicht unbedingt so sein. man kann das ganze auch trennen.

folgender code gibt die navigation der stufe 0 aus:

Code: Alles auswählen

echo $aQnavigation->showNavigation(0);
und dieser die stufe 1:

Code: Alles auswählen

echo $aQnavigation->showNavigation(1);
wenn man die zweite stufe an einer völlig anderen stelle möchte, braucht man ein weiteres modul, welches lediglich noch den aufruf der zweiten ebene enthält:

Code: Alles auswählen

<?php
    echo $aQnavigation->showNavigation(1);
?>
man kann also z.b. eine hauptnavigation (stufe 0) horizontal erstellen und dann an einer anderen stelle die stufe 1, 2 und 3 verschachtelt ausgeben.

das ganze sieht dann z.b. so aus:

modul 1 (hauptnavigation)

Code: Alles auswählen

<?php

cInclude('classes', 'atelierq.navigation.class.inc.php');

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

$aQnavigation->between(0, '');
$aQnavigation->maskNormal(0, '<div><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskNormalSub(0, '<div><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskSelected(0, '<div><a target="_self" href="{link}">›{name1}</a></div>');
$aQnavigation->maskSelectedSub(0, '<div><a target="_self" href="{link}">›{name1}</a></div>');

echo $aQnavigation->showNavigation(0);
?>
modul 2 (subnavigation verschachtelt)

Code: Alles auswählen

<?php

$aQnavigation->between(2, '');
$aQnavigation->maskNormal(2, '<div><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskSelected(2, '<div><a target="_self" href="{link}">›{name1}</a></div>');
$aQnavigation->maskNormalSub(2, '<div><a target="_self" href="{link}">{name1}</a>{sub}</div>');
$aQnavigation->maskSelectedSub(2, '<div><a target="_self" href="{link}">›{name1}</a>{sub}</div>');

$aQnavigation->between(1, '');
$aQnavigation->maskNormal(1, '<div><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskNormalSub(1, '<div><a target="_self" href="{link}">{name1}</a></div>{sub}');
$aQnavigation->maskSelected(1, '<div><a target="_self" href="{link}">›{name1}</a></div>');
$aQnavigation->maskSelectedSub(1, '<div><a target="_self" href="{link}">›{name1}</a></div>{sub}');

$aQnavigation->setSub(1, $aQnavigation->showNavigation(2));

echo $aQnavigation->showNavigation(1);
?>
da die klasseninstanziierung im ersten modul erfolgt, muss einfach sichergestellt sein, dass der code des moduls 1 vor dem code des moduls 2 ausgeführt wird. sonst müsste man einfach die klasseninstanziierung in das andere modul übernehmen.

all clear?
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

andy-man
Beiträge: 166
Registriert: Di 25. Nov 2003, 11:29
Wohnort: Oberstaufenbach
Kontaktdaten:

Beitrag von andy-man » Di 17. Jul 2007, 12:31

Hallo Kummer,
einfach klasse. Habe die gesplitteten Module eingebaut. Brauche nur noch die <DIV> formatieren und fertig ist die Navi.

Vielen Dank.

andy-man

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Di 17. Jul 2007, 12:42

ich habe soeben mal einen performance-check vorgenommen. auf meinem rechner benötigt die standard-navigation zur darstellung des menues im durchschnitt ca. 15 ms (abhängig von der anzahl unterkategorien). mit diesem modul reduziert sich die dauer für das menurendering im schnitt auf 3 bis 4 ms.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

qotsa
Beiträge: 29
Registriert: Di 6. Jun 2006, 09:09
Kontaktdaten:

Beitrag von qotsa » Di 17. Jul 2007, 18:46

Hallo,

Ist es möglich, mit diesem Modul jede Ebene an einem beliebigen Ort im Layout auszugeben?

Ich will zum Beispiel oben horizontal die 1. Ebene, links vertikal die zweite Ebene und in der Mitte etwas kleiner die 3. Ebene wieder horizontal. Eventuell könnte mir der Modul-Entwickler mithilfe eines Beispiel ein wenig auf die Sprünge helfen, das wäre wirklich sehr nett. Ich blicke da nicht so recht durch. :?

edit: Hab es inzwischen hinbekommen. Dein Modul ist fantastisch. Vielen, vielen Dank für deine Mühe! :)

Das passt zwar jetzt nicht ganz hier rein, aber ist es irgendwie möglich, dass sich immer gleich der erste Punkt des Submenüs mitöffnet? Wie oben schon erwähnt, ist bei mir oben horizontal die erste Ebene, dann links vertikal die zweite und in der Mitte wenn benötigt wieder horizontal die dritte Ebene. Wenn man jetzt einen Punkt der ersten Ebene anklickt, gibt es dafür keinen eigenen Artikel, man sollte automatisch zum ersten Punkt der dritten Ebene kommen. Mit Weiterleitungen würde das natürlich funktionieren, aber das ist erstens nicht elegant und zweitens sehr aufwendig. Vielleicht kann mir da jemand einen Tipp geben.

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 18. Jul 2007, 08:56

qotsa hat geschrieben:Das passt zwar jetzt nicht ganz hier rein, aber ist es irgendwie möglich, dass sich immer gleich der erste Punkt des Submenüs mitöffnet? Wie oben schon erwähnt, ist bei mir oben horizontal die erste Ebene, dann links vertikal die zweite und in der Mitte wenn benötigt wieder horizontal die dritte Ebene. Wenn man jetzt einen Punkt der ersten Ebene anklickt, gibt es dafür keinen eigenen Artikel, man sollte automatisch zum ersten Punkt der dritten Ebene kommen. Mit Weiterleitungen würde das natürlich funktionieren, aber das ist erstens nicht elegant und zweitens sehr aufwendig. Vielleicht kann mir da jemand einen Tipp geben.
nun, genau dafür sind die weiterleitungen gedacht. diese bringen naturgemäss einen gewissen overhead (der ist jedoch klein); allerdings hast du damit eine grössere flexibilität. denn das kann sich sehr schnell ändern. plötzlich brauchst du die erste seite (hauptebene) trotzdem oder du möchtest vielleicht nicht auf den ersten, sondern einen folgenden artikel weiterleiten.

wie auch immer, das modul liesse sich natürlich entsprechend umbauen. ist jedoch ein nicht unbeträchtlicher aufwand. ich würde es mit weiterleitungen lösen. aber das überlasse ich dir.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 18. Jul 2007, 16:02

Zur Info: Ich gehe mal davon aus, dass die Navigations-Klassen-Datei auch in <Mandant>/includes liegen kann.

Damit würde man sie so einbinden:
cInclude('frontend', 'includes/atelierq.navigation.class.inc.php');

Das hat den Vorteil, dass man sich bei einem Update von Contenido nicht daran erinnern muss, dass man in einem der Verzeichnisse eine zusätzliche Datei abgelegt hat... :wink:

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Do 19. Jul 2007, 07:57

HerrB hat geschrieben:Zur Info: Ich gehe mal davon aus, dass die Navigations-Klassen-Datei auch in <Mandant>/includes liegen kann.

Damit würde man sie so einbinden:
cInclude('frontend', 'includes/atelierq.navigation.class.inc.php');
vielen dank für den hinweis. in der tat spielt es keine rolle, wo genau die klasse liegt, sofern sie richtig eingebunden wird.

ich werde das in zukunft berücksichtigen und das mandanten-include-verzeichnis vorschlagen.

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

ichier
Beiträge: 12
Registriert: Do 26. Apr 2007, 13:07
Kontaktdaten:

bug mit mod rewrite ?

Beitrag von ichier » Di 31. Jul 2007, 11:25

hi,
wir haben folgendes probiert:

im Modul:
$aQnavigation->maskNormal(1, '<li><a target="_self" href="{link}" class="{name2}">{name1}</a></li>');

Die Kategorie benannt in "Impressum$$$imprint"
Alias ist Impressum

nun erhalten wir einen lustig falschen link:
href="/impressumimprint/" class="imprint"

was kann man tun?
(ohne $$$imprint im Kategorienamen gehts natürlich)

contenido 4.6.15 mit mod rewrite

gruß, nïkö

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mo 6. Aug 2007, 09:40

ist das problem noch bestehend? falls ja, liegt wohl ein kleiner fehler in der klasse. falls bedarf besteht, würde ich mich darum kümmern... bitte bescheid geben.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mo 6. Aug 2007, 13:26

ich habe noch im code nachgeschaut. da scheint alles in ordnung zu sein.

nur zur sicherheit: name1 und name2 wird mit den richtigen werten ersetzt, oder? nur der link sieht etwas komisch aus. aber das kann tatsächlich so sein, wenn du mod_rewrite einsetzt. weil mod_rewrite ja die links umschreibt. deshalb die frage: funktioniert der link denn oder nicht?
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

ichier
Beiträge: 12
Registriert: Do 26. Apr 2007, 13:07
Kontaktdaten:

Beitrag von ichier » Di 7. Aug 2007, 09:23

hi
ähm nee die links funktionierten nicht, müsste '/impressum/' sein oder '/impressum'
name1 & 2 stimmen; 2 ist ja mit angegeben
hatte jetzt einfach ein anderes modul genommen, aber danke trotzdem
nïkö

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Di 7. Aug 2007, 09:55

ichier hat geschrieben:ähm nee die links funktionierten nicht, müsste '/impressum/' sein oder '/impressum'
also wenn die kategorie impressum$$$imprint lautet, dann kann die url unmöglich nur noch aus impressum bestehen.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

ichier
Beiträge: 12
Registriert: Do 26. Apr 2007, 13:07
Kontaktdaten:

Beitrag von ichier » Mi 8. Aug 2007, 09:07

wieso nicht ?
also sie ist es ja nicht, aber sie sollte es nach modrewrite werden, und dazu sind die aliase da, oder nicht? kann es sein daß mr statt des alias den kategorienamen verwendet ?

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 8. Aug 2007, 09:17

das kann ich dir nicht genau sagen. allerdings wird vom navigationsmodul ein pfad mit 'front_content.php?...' ausgegen. die ersetzung erfolgt mit sicherheit durch mod_rewrite.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

achiboy
Beiträge: 138
Registriert: Do 26. Aug 2004, 05:05
Kontaktdaten:

Beitrag von achiboy » Mo 27. Aug 2007, 05:59

hallo

ich habe dieses Modul erfolgreich eingebaut. Tolle Sache...

Wenn ich nun eine Kategorie schütze, wird diese im Menu nicht angezeigt (obwohl ich mich im Frontend anmelde ;-). Woran kann das liegen?

Gesperrt