[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 - Seite 4 - 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
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Klasse nav42 - eine erweiterte rex_navigation

29. Apr 2014, 17:22

eventuell auch die möglichkeit den counter optional in nem spam mit zu übergeben?
,.. naja spammen wolln ma mal nicht *JOKE*

macht das alles Sinn?
Möglich wärs... aber wozu; ich verstehs noch nicht ganz ... sry

grz. Chris

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

Re: Klasse nav42 - eine erweiterte rex_navigation

30. Apr 2014, 08:37

Hi@all,
... hatte schon jemand Zeit die navExtend zu testen.
http://www.redaxo.org/de/download/templ ... =&cat_id=2
Gibts noch Bugs o.ä. ... ansonsten pack ich n PlugIn zusammen für SEO42.

Danke. Grz. Chris

Benutzeravatar
Oliver.Kreischer
Beiträge: 2508
Registriert: 17. Dez 2004, 00:03
Wohnort: Velbert - LA
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

30. Apr 2014, 11:03

Hey Chris,

leider habe ich es noch nicht geschafft. Vielleicht heute Mittag....

LG
Oliver
> Friends Of REDAXO Gemeinsame REDAXO-Entwicklung!
> REDAXO Agenturen. Eintragen erwünscht!
> Komm in den Slack Channel Es lohnt sich!

Benutzeravatar
Oliver.Kreischer
Beiträge: 2508
Registriert: 17. Dez 2004, 00:03
Wohnort: Velbert - LA
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

5. Mai 2014, 13:23

Hey Chris,

endlich habe ich es geschafft die Nav einzubauen. Der ersten Test hat problemlos funktioniert.

LG
Oliver
> Friends Of REDAXO Gemeinsame REDAXO-Entwicklung!
> REDAXO Agenturen. Eintragen erwünscht!
> Komm in den Slack Channel Es lohnt sich!

Benutzeravatar
Oliver.Kreischer
Beiträge: 2508
Registriert: 17. Dez 2004, 00:03
Wohnort: Velbert - LA
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

5. Mai 2014, 17:11

...was mir noch aufgefallen ist...

Sofern ich eine Navigation wie folgt habe

Code: Alles auswählen

kat1.1
kat1.2
  kat1.2.1
kat1.3
kat1.4
und ich lasse alle kategorien ausser kat1.2.1 in einer navigation (main) ausgeben und kat1.2.1 in einer anderen navigation (extra) dann wird trotzdem in der main naiv ein leeres ul unter kat1.2 geschrieben...

lg
oliver
> Friends Of REDAXO Gemeinsame REDAXO-Entwicklung!
> REDAXO Agenturen. Eintragen erwünscht!
> Komm in den Slack Channel Es lohnt sich!

Gort
Beiträge: 80
Registriert: 3. Aug 2006, 13:55

Re: Klasse nav42 - eine erweiterte rex_navigation

11. Aug 2014, 11:44

Weil ich gerade ein ganzes Weilchen drüber geknobelt habe...

Entweder als spezielle Lösung für seltene(?) Fälle oder evt. eine Anregung generell etwas in der Art in die Klasse aufzunehmen.

Szenario war: Ich baue eine Navigation mit indivuellen Icons. Deshalb habe ich ein Kategorie-Metafeld mit einer CSS ID angelegt.
Problem: Bei aktivem Menuepunkt möchte ich in meinem Sprite eine andere Position springen. Aktuell kann ich das aber nicht, da der "current" / "active" state ebenfalls und ausschliesslich über die Listenklasse geregelt wird. Ich brauche aber auch einen "active" / "current" state für den Link.

Wers braucht kann in "seo42/classes/class.nav42.inc.php" in Zeile 224:

Code: Alles auswählen

$defaultLink = '<a href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';
eränzen mit:

Code: Alles auswählen

$defaultLink = '<a'. $classAttribute . ' href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';
Nun erhät auch der a-Tag einen "current" bzw. "active" state und man ist etwas flexibler unterwegs.

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

Re: Klasse nav42 - eine erweiterte rex_navigation

11. Aug 2014, 11:54

Hi und Danke. Aber hättest du den selected State nicht im Li belassen können und dann einfach dein CSS abändern? so: #mainmenu li.selected a ?

Gort
Beiträge: 80
Registriert: 3. Aug 2006, 13:55

Re: Klasse nav42 - eine erweiterte rex_navigation

11. Aug 2014, 12:25

Ich habe es im li belassen. In meiner Variante bekommt nun sowohl der li als auch der a-tag ein current bzw. active (weil ich möglichst wenig abändern wollte).

Aber in meiner Menuekonstruktion war es notwenig zwischen indivueller Menuepunkt-ID und individueller Menuepunkt-ID-selected zu unterscheiden.
Wird (wie gesagt) eher selten vorkommen, aber falls doch mal, kann man nun hier nachlesen. Und ich persönlich hätte auch nix dagegen wenn etwas in der Art generell per Option machbar wäre.

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

Re: Klasse nav42 - eine erweiterte rex_navigation

11. Aug 2014, 12:43

Ok. Eine Option halt ich aber hier nicht für sinnvoll, da wie gesagt man einfach nur das CSS dementsprechend anpassen muss. Falls sich aber noch mehr für den Wunsch aussprechen nehm ichs gerne mit auf ;)

Gort
Beiträge: 80
Registriert: 3. Aug 2006, 13:55

Re: Klasse nav42 - eine erweiterte rex_navigation

11. Aug 2014, 13:05

Wie ich schon andeutete: Ich MUSS dass nicht als Feature durchdrücken. Aber Du kannst dieses Szenario NICHT nur per CSS regeln.

Unterscheide mal

Code: Alles auswählen

<a id="Punkt 1" href="testlink">TEST</a>
= ICON #1

von

Code: Alles auswählen

[code]<a id="Punkt 1" class="active current" href="testlink">TEST</a>
[/code] = Icon#2

per CSS. Oder habe ich einen Denkfehler / was übersehen?

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

Re: Klasse nav42 - eine erweiterte rex_navigation

11. Aug 2014, 13:11

Hmm, geht das nicht so:
ul li.current a#Punkt 1
(wobei hier eigntlich kein Leerzeichen in der ID sein sollte)

Gort
Beiträge: 80
Registriert: 3. Aug 2006, 13:55

Re: Klasse nav42 - eine erweiterte rex_navigation

11. Aug 2014, 13:15

Und mit welcher Option (ohne Patch) vergibst Du die ID an den A-Tag. Das war ja genau das was ich gepatcht hatte;-)

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

Re: Klasse nav42 - eine erweiterte rex_navigation

11. Aug 2014, 13:20

Achso, dann so:

ul li#Punkt 1.current a

Und halt dann setLiIdFromMetaField() nutzen.

Oder du kannst auch so den Link manipulieren ohne die Klasse zu patchen:

Code: Alles auswählen

$nav->setLinkFromUserFunc(function($cat, $depth) { // php funktion die den link zurückgibt (hier als beispiel: erste ebene ohne verlinkung)
    if ($depth == 1) {
        return htmlspecialchars($cat->getName());
    } else {
        return '<a href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';
    }
});

Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: Klasse nav42 - eine erweiterte rex_navigation

20. Okt 2014, 10:26

Hallo Zusamme,

nutze nav42 und möchte zusätzlich zu meiner normalen Navigation die super funktioniert, im Fußbereich meiner mehrsprachigen Seite, Artikel einer bestimmten Kategorie ausgeben.

REDAXO: 4.5.1
PHP: 5.4.17
SEO42: 2.8.3

Mein Problem es wird immer ul li mit ausgegeben ich brauch aber nur a

Grund für das ganze, es soll zwischen einem Text erscheinen.

Wie kann ich das lösen?

Mein bisheriger Ansatz:

Code: Alles auswählen

<?
echo nav42::getNavigationByCategory(27, 2, true, true, false, "current active", "nav", "sf-menu", "cat_css_id", "cat_css_class", function($cat, $depth) {
		return '&nbsp;&nbsp;|&nbsp;&nbsp;<a href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';});
?>
Das momentane Ergebnis:

Code: Alles auswählen

<ul id="nav" class="sf-menu">
<li>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/funa/impressum.html">Impressum</a>
</li>
<li>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/funa/agb.html">AGB</a>
</li>
</ul>
Wunschergebnis:

Code: Alles auswählen

&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/funa/impressum.html">Impressum</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/funa/agb.html">AGB</a>
Im Voraus schon mal Danke für eure Hilfe

Gruß Himmelreich

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

Re: Klasse nav42 - eine erweiterte rex_navigation

20. Okt 2014, 10:32

nav42 gibt halt nur eine ul aus. wenn du dass ohne möchtest musst du dir selbst was schreiben. oder quick and dirty einfach hartcodiert ins template (mit rex_getUrl() vesreteht sich ;)).

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

Re: Klasse nav42 - eine erweiterte rex_navigation

20. Okt 2014, 10:36

oder du bleibst bei der ul und schaust dass du sie so stylst wie du sie haben möchtest. die &nbsp's kann man übrigens mit margin/padding realisieren und die | kann man über den :after oder :befor selector per CSS einfügen.

Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: Klasse nav42 - eine erweiterte rex_navigation

20. Okt 2014, 12:14

Hallo RexDude,

danke für deine schnelle Antwort.

Habs wie folgt gelöst:

Code: Alles auswählen

<?php 
foreach (OOCategory::getChildrenById(27, true, $REX['CUR_CLANG']) as $fna){
	echo '&nbsp;&nbsp;|&nbsp;&nbsp;<a href="'.$fna->getUrl().'">'.$fna->getName().'</a>'."\n";
} ?>
Gruß Himmelreich

wolfgang
Beiträge: 126
Registriert: 20. Okt 2005, 20:52
Wohnort: 23966 Tressow
Kontaktdaten: Website

Re: Klasse nav42 - eine erweiterte rex_navigation

18. Nov 2014, 11:51

In der Standard rex_navigation kann ich folgende Konstruktion machen:

Metafeld anlegen cat_menutype, als Checkbox
Felddefinition: 1:Hauptmenü|2:Footer

Dann kann ich im Template so eine Hauptnavigation machen:

Code: Alles auswählen

$nav = rex_navigation::factory();
$nav->addFilter('cat_menutype', '|1|', 'regex');
echo $nav->get();
bzw. mit

Code: Alles auswählen

$nav->addFilter('cat_menutype', '|2|', 'regex');
eine Fußnavigation

Und kann so ganz flexibel irgendwelche Navigationen zusammen bauen. Nun hab ich nicht gefunden, wie das mit nav42 geht.

Es kommt bei mir öfter mal vor, dass bestimmte Menüpunkte irgendwo ein- und ausgeblendet werden sollen und dies über das Backend gesteuert werden sollte und nicht über die Programmierung. Klar könnte ich das mit Klassen machen und diese über CSS ausblenden - finde ich persönlich aber nicht so hübsch. Da habe ich ein wenig Sorge wegen seo.

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

Re: Klasse nav42 - eine erweiterte rex_navigation

18. Nov 2014, 12:40

Hallo Wolfgang,

ich weiß nicht, ob es einen ähnlich kurzen Weg gibt wie in der rex_navigation, aber es gibt auf jeden Fall setLinkFromUserFunc, mit dem sich das auf jeden Fall (und noch viel mehr) realisieren lässt.
Schau mal in den Codebeispielen des AddOns.
Hier auch ein Anwendungsbeispiel, allerdings umfangreicher, in ähnlichem Kontext:
http://www.redaxo.org/de/forum/addons-f ... ml#p112703

Peter.

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

Re: Klasse nav42 - eine erweiterte rex_navigation

18. Nov 2014, 12:42

HI,
mit diesem u.s. Template werden MetaInfo Felder für Kategorie mitangelegt
indem man dann die Ausgabe-Position der jeweiligen Kategorie/NaviPunkt steuern kann.

http://www.redaxo.org/de/download/templ ... =&cat_id=2

grz.Chris

Benutzeravatar
Larsen
Beiträge: 34
Registriert: 3. Nov 2009, 22:39

Re: Klasse nav42 - eine erweiterte rex_navigation

12. Feb 2015, 12:49

Hi Darwin,

dort bei der nav42extend steht
nur für SEO42 v3.3.0
Heisst das, es ist mit erratischem Verhalten in Verbindung mit aktuelleren SOE42 Versionen zu rechnen?

Versuche nämlich gerade dem Phänomen auf den Grund zu gehen woher die zusätzlichen <ul></ul> in meiner extended nav42 kommen. Struktur wird mir momentan so erzeugt:

Code: Alles auswählen

<ul class="nav navbar-nav">
    <li class="hasChilds dropdown">
        <a href="..." class="dropdown-toggle" data-toggle="dropdown">1.<b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li class="first">
                <a href="...">1.1</a>
            </li>
            <li class=" ">
                <a href="h...">1.2</a>
            </li>
            ...
        </ul>
    </li>
    <li class="hasChilds dropdown">
        <a href="..." class="dropdown-toggle" data-toggle="dropdown">2. <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li class="first">
                ...
            </li>
        ...
    ...
    <ul class="dropdown-menu"></ul>
    <ul class="dropdown-menu"></ul>
    <ul class="dropdown-menu"></ul>
    <ul class="dropdown-menu"></ul>
    <ul class="dropdown-menu"></ul>
</ul>
Am Ende werden mit 5 leere <ul> rausgegeben. Ich habe auch die Meta-Felder der Kategorien gecheckt, ob da noch irgendwo was falsch eingestellt ist. Aber soweit ist das alles korrekt.

Achja, der Code für die nav42extend ist dieser hier:

Code: Alles auswählen

<?php
                $nav_bar = new nav42extend();
                $nav_bar->setLevelDepth(2);
                $nav_bar->setShowAll(true);
                $nav_bar->setIgnoreOfflines(true);
                $nav_bar->setSelectedClass("current");
                $nav_bar->setActiveClass("active");
                $nav_bar->setUlClass('nav navbar-nav',0);
                $nav_bar->setUlClass('dropdown-menu',1);
                $nav_bar->setHideWebsiteStartArticle(true);
                $nav_bar->setHasChilds(true);
                $nav_bar->setNavPosition(true);
                $nav_bar->setNavPositionId(1);
				
                echo $nav_bar->getNavigationByCategory(0);
                ?>
Gruss, Lars

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

Re: Klasse nav42 - eine erweiterte rex_navigation

12. Feb 2015, 12:54

Hi Lars,
yep, sry ... werd demnächst mal da wieder rangehen.

grz. Chris

Benutzeravatar
Larsen
Beiträge: 34
Registriert: 3. Nov 2009, 22:39

Re: Klasse nav42 - eine erweiterte rex_navigation

12. Feb 2015, 14:57

schön zu wissen. Danke für die Mühe.

phloo
Beiträge: 76
Registriert: 5. Aug 2008, 17:06

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Mär 2015, 22:39

Guten Abend.

Wie kann man denn mit nav42 die Kategorien IDs mit ausgeben lassen?
Z.B. <li id="4"><a href="....

Finde keine Lösung. Muss via jQuery ein Listenpunkt einfügen und brauche eine eindeutige ID für den Listenpunkt davor (da flexibles System)

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

Re: Klasse nav42 - eine erweiterte rex_navigation

25. Mär 2015, 23:46

Das sollte mit setLinkFromUserFunc funktionieren. Kuck Dir mal das Codebeispiel im SEO42-AddOn an.

Übrigens, früher durften CSS-Klassen und -IDS keine Zahlen sein, bzw. nicht mit einer Zahl beginnen. Weiß aber nicht, ob das immer noch so ist.

Grüße,
Peter.

Zurück zu „Allgemeines [R4]“