[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • ID für Navigationslist (<ul id="">) mit rex_navigation facto
Seite 1 von 1

ID für Navigationslist (<ul id="">) mit rex_navigation facto

Verfasst: 18. Dez 2013, 01:48
von svenalbert
Hi,

ich suche mir hier schon den halben Abend die Augen eckig, aber ich komme nicht wirklich weiter.

Man kann/konnte ja der Factory Klassen für die verschiedenen Level "mitgeben". Geht das zufällig auch mit einer ID für den ersten ul-Tag? Gefühlt ist alles, was man so findet in ein div mit einer ID gepackt.

Lieben Dank vorab und gute Nacht.
Sven

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 18. Dez 2013, 09:43
von RexDude
Eine Mögligkeit ist die direkt in SEO42 eingebaute Klasse nav42 zu nutzen:
https://github.com/RexDude/seo42/blob/m ... inc.php#L4
Parameter: $firstUlId

Siehe Codbeispiele 6 von SEO42 :)

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 14:48
von svenalbert
Ja, damit habe ich auch schon geliebäugelt, aber anhand der Beispiele bin ich nicht wirklich damit zurechtgekommen.

Code: Alles auswählen

getNavigationByLevel($levelStart = 0, $levelDepth = 2, $showAll = false, $ignoreOfflines = true, $hideWebsiteStartArticle = false, $currentClass = 'selected', $firstUlId = '', $firstUlClass = '', $liIdFromMetaField = '', $liClassFromMetaField = '', $linkFromUserFunc = '')
Das ist wesentlich erklärender für mich. :)= Danke, mal schauen.

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 15:00
von RexDude
Naja so schwer ist das nicht. Einfach die Standardwerte übernehmen (bzw. diese auch anpassen) bis man zum $firstUlId Parameter kommt:

Code: Alles auswählen

echo nav42::getNavigationByLevel(0, 2, false, true, false, 'selected', 'my-ul-id');

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 15:11
von svenalbert
Bekommt eigentlich auch der aktuelle Link eine Klasse verpasst? IMHO nein.

EDIT: Sollte eigentlich nur hier eine kleine Ergänzung sein. Ich habe jetzt einfach die $liClassAttribute verwurstet.
https://github.com/RexDude/seo42/blob/m ... nc.php#L75

EDIT2: Ich revidiere mich, das war nur die lang-nav. Bin weiter am Suchen. :)=

https://github.com/RexDude/seo42/blob/m ... c.php#L160

Code: Alles auswählen

$defaultLink = '<a '. $classAttribute .' href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';
EDIT3: Allem Anschein nach in Zeile 160. Ob das allerdings immer funktioniert weiß ich nicht.

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 16:23
von RexDude
Ich würde nach Möglichkeit net im Code herumfummeln wegen Updatefähigkeit erhalten etc.
Um CSS_Klassen einzuschleusen hast du aktuell zwei Möglichekten. Du ziehst sie dir individuell über ein MetaInfo-Feld rein per $liClassFromMetaField Parameter (Und dann halt per CSS li.classname a zugreifen).

Oder so:

Code: Alles auswählen

echo nav42::getNavigationByLevel(0, 2, false, true, false, 'selected', 'my-ul-id', '', '', '',
    function($cat, $depth) {
        return '<a class="cat-' . $cat->getId()  . '" href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';
}); 
(Oder halt wie immer du auch deine Klassen benannt haben möchtest.)

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 16:50
von svenalbert
Also gebe ich jeder Kat ein Metafeld per default mit "selected"?

Aber liClass zielt doch auch wieder nur auf das List-Item und nicht auf den Link selbst.


EDIT: ... und die zweite Methode betrifft ALLE Links und nicht nur den CURRENT.

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 17:07
von RexDude
Aber liClass zielt doch auch wieder nur auf das List-Item und nicht auf den Link selbst.
Dude, in deinem CSS kannst du doch per li.classname a auf deinen link zugreifen???
EDIT: ... und die zweite Methode betrifft ALLE Links und nicht nur den CURRENT.
Das geht in der Tat nicht, da müsste man $current_category_id nocht der Funktion als Parameter mitgeben um dann sowas wie hier zu machen: https://github.com/RexDude/seo42/blob/m ... c.php#L130

Aber auch hier Dude: Du kannst du doch per li.selected a bzw. li.current a auf deinen aktuellen link zugreifen???

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 17:18
von RexDude
Bzw. halt das geht ja doch ganz simpel:

Code: Alles auswählen

echo nav42::getNavigationByLevel(0, 2, false, true, false, 'selected', 'my-ul-id', '', '', '',
    function($cat, $depth) {
        global $REX;
        
        if ($cat->getId() == $this->category_id) {
            return '<a class="foo" href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';
        } else {
            return '<a href="' . $cat->getUrl() . '">' . htmlspecialchars($cat->getName()) . '</a>';
        }
});
Ganz schön flexibel diese nav42 Klasse :lol:

EDIT: Wenn du aber mehrere Level hast, musst du vermutlich noch den $depth Parameter mit ins Spiel bringen und/oder den PATH irgendwie auslesen.

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 17:32
von svenalbert
RexDude hat geschrieben:Dude, in deinem CSS kannst du doch per li.classname a auf deinen link zugreifen???
Dude, das ist mir klar. Ich brauche aber trotzdem eine Klasse für den Link-Tag. :)= *weiterles*

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 17:34
von RexDude
Dude, das ist mir klar. Ich brauche aber trotzdem eine Klasse für den Link-Tag.
Wenn du meinst Dude ;)

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 17:38
von RexDude
Oder so Dude (hehe) :lol: :

Code: Alles auswählen

$('li.selected a').addClass('eine-klasse-die-nach-rexdudes-meinung-gar-net-noetig-waere')

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 18:08
von svenalbert
RexDude hat geschrieben:

Code: Alles auswählen

...
        if ($cat->getId() == $this->category_id) {
 ... 
Er stört sich irgendwie an diesem Vergleich.

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 18:32
von RexDude
Er stört sich irgendwie an diesem Vergleich.
:?:

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 19:56
von svenalbert
Ich kann die Id ausgeben lassen, aber bei dem Vergleich bricht das Skript ab.

Re: ID für Navigationslist (<ul id="">) mit rex_navigation f

Verfasst: 19. Dez 2013, 20:06
von RexDude
Liegt vermutlich am $this. Ging aber bei mir. Probiers mal mit $REX['ARTICLE_ID']. Oder schau mal hier wegen path und depth: https://github.com/RexDude/seo42/blob/m ... inc.php#L8