[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
ID in der rex_navigation ausgeben - 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/
frood
Beiträge: 226
Registriert: 7. Okt 2008, 15:17

ID in der rex_navigation ausgeben

1. Dez 2012, 15:31

Moin!

rex_navigation::factory() ist ja eine schöne Sache!
Es wäre aber schön, wenn zu jedem erzeugten Link auch eine ID ausgegeben würde, damit man die einzelnen Links dann gezielt ansprechen kann (z.B. per javascript).

Ist ja leicht zu bewerkstelligen:
Einfach in der class.rex_navigation.inc.php die Zeile 230 ergänzen:

Code: Alles auswählen

$return .= '<a id="'.$nav->getId().'" '. $linkClass .' href="'.$nav->getUrl().'">'.htmlspecialchars($nav->getName()).'</a>';
Es macht immerwieder Spaß, mit Redaxo zu arbeiten!
Ein dickes Lob an alle Entwickler!! (Muss auch mal sein ;) )

Gruss, Frood (begeistert)

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: ID in der rex_navigation ausgeben

6. Dez 2012, 00:25

IDs dürfen nicht mit einer Zahl anfangen. Die Navigation Factory gibt dem den Link umgebenden Listenelement eine Klasse mit. Wenn du mit einem Framework wie jQuery arbeitest, kannst du den Eintrag bequem mit über die Klasse greifen. Das ist zwar wesentlich langsamer als der direkte Zugriff auf eine ID, wird aber in der Praxis keinem auffallen (es geht um Millisekunden).

Der Haken an deinem Vorschlag ist, dass eine ID nur genau einmal pro Dokument vorhanden sein darf. Wenn du also zweimal die selbe Kategorie über die Navigation Factory verlinkst, ist deine Seite nicht mehr valide und dein Javascript funktioniert nicht mehr :wink:

frood
Beiträge: 226
Registriert: 7. Okt 2008, 15:17

Re: ID in der rex_navigation ausgeben

6. Dez 2012, 11:41

Hallo Ingo,
IDs dürfen nicht mit einer Zahl anfangen.
Das ist natürlich richtig, hatte den falschen Code eingestellt, mein Code sieht so aus:

Code: Alles auswählen

$return .= '<a id="id_'.$nav->getId().'" '. $linkClass .' href="'.$nav->getUrl().'">'.htmlspecialchars($nav->getName()).'</a>';
Wenn du mit einem Framework wie jQuery arbeitest, kannst du den Eintrag bequem mit über die Klasse greifen.

Funktioniert aber schlecht, wenn man gerade diese Klasse per js ändern will.
Der Haken an deinem Vorschlag ist, dass eine ID nur genau einmal pro Dokument vorhanden sein darf. Wenn du also zweimal die selbe Kategorie über die Navigation Factory verlinkst, ist deine Seite nicht mehr valide und dein Javascript funktioniert nicht mehr
warum sollte ich dieselbe Kat innerhalb einer Navi zweimal verlinken??

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: ID in der rex_navigation ausgeben

6. Dez 2012, 16:17

frood hat geschrieben:Funktioniert aber schlecht, wenn man gerade diese Klasse per js ändern will.
Das funktioniert hervorragend. Poste ein Beispiel, dann zeige ich dir gerne wie.
frood hat geschrieben:warum sollte ich dieselbe Kat innerhalb einer Navi zweimal verlinken??
Nicht innerhalb einer Navi, sondern innerhalb eines Dokuments. Hauptnavi/Footernavi z.B.

Zurück zu „Allgemeines [R5]“