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

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 29. Apr 2014, 17:22
von darwin
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

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 30. Apr 2014, 08:37
von darwin
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

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 30. Apr 2014, 11:03
von Oliver.Kreischer
Hey Chris,

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

LG
Oliver

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 5. Mai 2014, 13:23
von Oliver.Kreischer
Hey Chris,

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

LG
Oliver

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 5. Mai 2014, 17:11
von Oliver.Kreischer
...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

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 11. Aug 2014, 11:44
von Gort
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.

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 11. Aug 2014, 11:54
von RexDude
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 ?

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 11. Aug 2014, 12:25
von Gort
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.

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 11. Aug 2014, 12:43
von RexDude
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 ;)

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 11. Aug 2014, 13:05
von Gort
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?

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 11. Aug 2014, 13:11
von RexDude
Hmm, geht das nicht so:
ul li.current a#Punkt 1
(wobei hier eigntlich kein Leerzeichen in der ID sein sollte)

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 11. Aug 2014, 13:15
von Gort
Und mit welcher Option (ohne Patch) vergibst Du die ID an den A-Tag. Das war ja genau das was ich gepatcht hatte;-)

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 11. Aug 2014, 13:20
von RexDude
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>';
    }
});

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 20. Okt 2014, 10:26
von himmelreich
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

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 20. Okt 2014, 10:32
von RexDude
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 ;)).

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 20. Okt 2014, 10:36
von RexDude
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.

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 20. Okt 2014, 12:14
von himmelreich
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

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 18. Nov 2014, 11:51
von wolfgang
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.

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 18. Nov 2014, 12:40
von Peter.Bickel
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.

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 18. Nov 2014, 12:42
von darwin
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

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 12. Feb 2015, 12:49
von Larsen
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

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 12. Feb 2015, 12:54
von darwin
Hi Lars,
yep, sry ... werd demnächst mal da wieder rangehen.

grz. Chris

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 12. Feb 2015, 14:57
von Larsen
schön zu wissen. Danke für die Mühe.

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 25. Mär 2015, 22:39
von phloo
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)

Re: Klasse nav42 - eine erweiterte rex_navigation

Verfasst: 25. Mär 2015, 23:46
von Peter.Bickel
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.