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: http://redaxo.org/slack/
Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

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

18. Dez 2013, 01:48

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

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

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

18. Dez 2013, 09:43

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 :)

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

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

19. Dez 2013, 14:48

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.

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

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

19. Dez 2013, 15:00

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');

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

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

19. Dez 2013, 15:11

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.

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

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

19. Dez 2013, 16:23

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.)

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

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

19. Dez 2013, 16:50

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.

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

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

19. Dez 2013, 17:07

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???

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

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

19. Dez 2013, 17:18

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.

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

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

19. Dez 2013, 17:32

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*

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

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

19. Dez 2013, 17:34

Dude, das ist mir klar. Ich brauche aber trotzdem eine Klasse für den Link-Tag.
Wenn du meinst Dude ;)

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

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

19. Dez 2013, 17:38

Oder so Dude (hehe) :lol: :

Code: Alles auswählen

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

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

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

19. Dez 2013, 18:08

RexDude hat geschrieben:

Code: Alles auswählen

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

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

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

19. Dez 2013, 18:32

Er stört sich irgendwie an diesem Vergleich.
:?:

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

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

19. Dez 2013, 19:56

Ich kann die Id ausgeben lassen, aber bei dem Vergleich bricht das Skript ab.

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

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

19. Dez 2013, 20:06

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

Zurück zu „Allgemeines [R4]“