[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Klasse nav42 - eine erweiterte rex_navigation - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Klasse nav42 - eine erweiterte rex_navigation

16. Apr 2013, 14:01

UPDATE: 18.11.2015
Die Klasse nav42 ist nun in das Navigation Factory Addon eingeflossen :)

Download: http://www.redaxo.org/de/download/addons/?addon_id=1255
(oder über Installer)

Kommentare/Diskussion hier: http://www.redaxo.org/de/forum/addons-f ... 20770.html
Zuletzt geändert von RexDude am 18. Nov 2015, 23:56, insgesamt 33-mal geändert.

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Vorstellung der Klasse rex_navigation_ex

16. Apr 2013, 14:13

Ganz tolle Sache. Nur den Aufruf kapier ich einfach nicht... Kann man nicht die Klassen einfach austauschen?
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

Re: Vorstellung der Klasse rex_navigation_ex

16. Apr 2013, 14:17

Ich vermute, dass Rudi das erweitert hat, nicht ersetzt. Habs aber noch nicht genauer verglichen.
Und man verliert durchs Ersetzen die leichte Update-Fähigkeit von Redaxo.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Vorstellung der Klasse rex_navigation_ex

16. Apr 2013, 14:20

Du meinst patchen? :P Das wollte ich ja gerade damit vermeiden...

Die Einbindung ist doch ganz einfach:

1. Klasse ins Template packen irgendwo vor dem <html> tag
2. rex_navigation_ex::getMenuByLevel(...) und/oder rex_navigation_ex::getMenuByCategory(...) nutzen

@peter: genau :)

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Vorstellung der Klasse rex_navigation_ex

16. Apr 2013, 16:27

Super klasse. Für einen relativen Programmierlegastheniker zuerst schwer zu verstehen.

Für alle, die es auch nicht sofort verstehen, hier meine Einbindung:

1. Template mit dem Inhalt von rex_navigation_ex angelegt.
2. Im Haupttemplate ganz oben eingebunden: REX_TEMPLATE[4].
3. Alle Anpassungen im Template rex_navigation_ex machen.
4. Einbindung der Navigation mit

Code: Alles auswählen

<?php echo rex_navigation_ex::getMenuByCategory(0,3,TRUE,TRUE) ?>
Dank RexDude hier noch ein Trick für die Beeinflussung der ul-Klasse.
Zeile 53

Code: Alles auswählen

if (count($navObj) > 0) {
$return .= '<ul>';
}
ändern in z.B.

Code: Alles auswählen

if (count($navObj) > 0) {
	if ($depth == 0) {
		$return .= '<ul class="sf-menu" id="nav">';
	} else {
		$return .= '<ul>';	
	}
}
Danke für diese neue flexible Methode!

Ralf
Zuletzt geändert von ralf.schlott am 18. Apr 2013, 01:46, insgesamt 1-mal geändert.
- Danke für Redaxo! -
http://www.prenzlweb.de

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

Re: Vorstellung der Klasse rex_navigation_ex

21. Apr 2013, 21:21

Addcode würde sich alternativ zum includen der Classe eignen: https://github.com/joachimdoerr/addcode

lg
Joachim
Doerr Softwaredevelopment | GitHub
Beati pauperes spiritu.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Vorstellung der Klasse rex_navigation_ex

21. Apr 2013, 21:37

@joachim: danke für den hinweis :)

@ingo: kannst du mir bitte noch genau aufzeigen, wo ich in meinem code redundanz drin hab und das dry prinzip missachte?

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

Re: Vorstellung der Klasse rex_navigation_ex

22. Apr 2013, 18:53

Trotzdem äußert sich Professionalität u.a. auch in einer angemessenen und respektvollen Diskussionskultur.

Lg, Peter.

jorgos
Beiträge: 73
Registriert: 13. Jun 2011, 13:08

Re: Vorstellung der Klasse rex_navigation_ex

11. Sep 2013, 18:17

Hallo zusammen,

jetzt muss mir nochmal einer helfen.
Wenn ich die Klasse über
include(....) einbinde und folgendes aufrufe
<?php echo rex_navigation_ex::getMenuByCategory(0,3,TRUE,TRUE) ?>

passiert bei mir nix. Da bricht alles komplett zusammen.

Hat jemand eine Idee?

Vielen Dank im Voraus

Jorgos

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

Re: Vorstellung der Klasse rex_navigation_ex

11. Sep 2013, 18:42

Hast Du mal 'nen Link oder den genauen Wortlaut der Fehlermeldung?
Redaxo-Version? PHP-Version?

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Klasse rex_navigation42 (ehemals rex_navigation_ex)

21. Sep 2013, 19:35

Zur Info:

Klasse ist jetzt Bestandteil von SEO42 (ab 2.1.0). Der erste Beitrag dieses Threads wurde dahingehend abgeändert. Desweiteren wurden die Methoden `getMenuByLevel()` in `getNavigationByLevel()` und `getMenuByCategory()` in `getNavigationByCategory()` umbenannt.

Wenn man SEO42 nutzt braucht man nichts weiter ins sein Template einzufügen. Erst wenn man spezielle Geschichten machen will, muss man seine eigene Klasse ableiten und diese dann in ein Template packen. Genaueres Vorgehen hab ich im ersten Beitrag dieses Threads geschrieben.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Klasse nav42 - eine erweiterte rex_navigation

22. Okt 2013, 14:22

Und noch ein Update:
- Klasse heisst jetzt nav42
- Es wurden noch einige zusätzliche Parameter ergänzt. Damit sollten sich so ziemlich alle Anforderungen, die in der Praxis vorkommen abdecken lassen, ohne das man die Klasse überschreiben braucht. Folgendes geht jetzt:

Alle Features
https://github.com/RexDude/seo42#featur ... asse-nav42

Vollständiges Codebeispiel

Code: Alles auswählen

// ausgabe der navigation mit startkategorie id = 42
// 2 level tief
// alle unterebenen werden angezeigt
// offline artikel werden nicht angezeigt
// startartikel der website wird nicht ausgeblendet
// li klasse für selektierte menüpunkte: "current"
// erste ul id: "nav"
// erste ul klasse "sf-menu"
// li id aus metainfo feld: "cat_css_id"
// li klasse aus metainfo feld: "cat_css_class"
// php funktion die den link zurückgibt (hier als beispiel: erste ebene ohne verlinkung)
echo nav42::getNavigationByCategory(42, 2, true, true, false, "current", "nav", "sf-menu", "cat_css_id", "cat_css_class", function($cat, $depth) {
    if ($depth == 1) {
        return htmlspecialchars($cat->getName());
    } else {
        return '<a href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';
    }
}); 
EDIT: das gleiche gibts natürlich auch für getNavigationByLevel()

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

23. Okt 2013, 10:31

Prima, danke!
Da dürften wirklich kaum noch Wünsche offen bleiben.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Okt 2013, 10:22

Peter.Bickel hat geschrieben:Da dürften wirklich kaum noch Wünsche offen bleiben.
nav42::getLangNavigation() fehlt noch :lol:

EDIT: Ist jetzt drin ;)

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 00:48

Frage hierzu:

Gibt es irgendwo etwas zur Breadcrumb-Ausgabe?
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 11:02

Ist geplannt, aber noch nicht realisiert.

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 14:06

Subba! Bin gespannt.
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
webghost
Beiträge: 266
Registriert: 6. Okt 2010, 20:10
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 15:17

Dann schmeiss ich gleich noch eine Idee mit rein 8) Ein Breadcrumb welches nicht nur den Pfad darstellt, sondern gleich noch die Geschwister-Kategorien der jeweiligen Ebene enthält. Etwa um ein Breadcrumb mit Dropdown zu realisieren.

Muss demnächst sowas umsetzen, weiss noch nicht ganz wie ich es mache, aber wahrscheinlich wird etwas in der Art rauskommen

Code: Alles auswählen

    <ul>
        <li>Start</li>
        <li>
            Level1-1
            <ul>
                <li>Level1-2</li>
                <li>Level1-3</li>
                <li>Level1-4</li>
            </ul>
        </li>
        <li>
            Level2-1
            <ul>
                <li>...</li>
                <li>...</li>
                <li>...</li>
            </ul>
        </li>
    </ul>

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 15:21

Eine flexible seo42::getBreadcrumbNavigation() wäre halt cool, die man für verschiedene Aforderungen nutzen kann :D

Benutzeravatar
webghost
Beiträge: 266
Registriert: 6. Okt 2010, 20:10
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 15:34

ja klar, welche aber auch sowas kann, also sowas per parameter aktivert werden kann :wink:

Noch was anderes, in nav42 gibt es keine Möglichkeit Kategorien die Kinder haben zu markieren? sowas wie <li class="hasChild">...

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 15:38

Du hast eigentlich nur einfluß auf den Link, siehe letzten Parameter.
Vielleicht kannst du aber auch Parameter $liClassFromMetaField irgendwie nutzen um deine CSS Klasse einzuschleusen.
Und per jQuery könnte man auch solche Klassen vollautomatisch einbauen.

Benutzeravatar
webghost
Beiträge: 266
Registriert: 6. Okt 2010, 20:10
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 15:47

muss ich dann noch genau anschauen, danke. Bei meiner selbst geschriebenen Navigation habe ich eben das hasChild drin um direkt per jQuery darauf zugreifen zu können, etwa für Klick statt hover. Aber eigentlich kann ich ja auch mit jQuery schauen ob da noch ein ul drin ist.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Feb 2014, 15:48

Aber eigentlich kann ich ja auch mit jQuery schauen ob da noch ein ul drin ist.
Eben :D

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Klasse nav42 - eine erweiterte rex_navigation

24. Mär 2014, 12:08

Hi RexDude,
hab mir mal erlaubt die nav42 etwas zu erweitern.
Zum testen freigegeben:

nav42extend

grz Chris


Zurück zu „Allgemeines [R4]“