Warum schlagen numerische Tags im Composer fehl, wenn eine ID existiert?

Wenn ich versuche, einen numerischen Tag zu erstellen, also z. B. 2026, funktioniert das, solange kein anderer Tag dieselbe ID 2026 verwendet. Ist diese ID bereits belegt, erhalte ich stattdessen diesen vorhandenen Tag, nicht 2026.

Ich bin ziemlich sicher, dass das ein alter Bug ist, der irgendwann behoben wurde. Oder habe ich mich geirrt und sollte gar keine numerischen Tags verwenden? :thinking:

Wie auch immer, ich zähle das als Bug — und ich würde sehr gerne Jahre als Tags nutzen.

Numerische Tags sollten unterstützt werden, und das aktuelle kanonische URL-Format soll diese Mehrdeutigkeit vermeiden.

Zum Beispiel, wenn der Tag den Namen 2026 hat und seine Tag-ID 3 ist, sollte die kanonische URL lauten:

/tag/2026/3

Die mehrdeutige Form ist die ältere/legacy-URL:

/tag/2026

Diese kann als „Tag mit der ID 2026“ interpretiert werden, sodass sie, falls ein anderer Tag diese ID hat, möglicherweise auf diesen anderen Tag statt auf den Tag namens 2026 verweist.


Wo versuchen Sie, den Tag zu verwenden oder darauf zuzugreifen? Wenn der Link von Discourse selbst generiert wird, würde ich erwarten, dass das kanonische /tag/:slug/:id-URL-Format verwendet wird. Wenn Sie die URL manuell eingeben, einen alten gespeicherten Link, einen benutzerdefinierten Theme-/Plugin-Link oder eine importierte/Seitenleisten-/benutzerdefinierte URL verwenden, könnte es immer noch das mehrdeutige Legacy-Format verwenden und auf den falschen Tag verweisen.

Falls möglich, sollten wir das :foo in /tag/:foo stets als Slug behandeln und für IDs das Format /tag/:foo/:id vorsehen, wobei :foo beliebig sein kann (z. B. -, wenn man es nicht weiß oder egal ist).

Das würde die Abwärtskompatibilität verbessern und auch in Fällen helfen, in denen der Slug bekannt ist, die ID jedoch nicht – was bei Tags oft der Fall ist, da der Name die übliche Referenz darstellt.

IDs dienen derzeit primär der Unterstützung der Lokalisierung.

1 „Gefällt mir“

Normalerweise beim Erstellen eines Themas und Hinzufügen von Tags. Oder soll ich einfach sagen, beim Hinzufügen eines Tags?

Ein reales Beispiel.

Beim Schreiben eines Themas versuchte ich, das Tag 2013 zu erstellen. Aber ich bekam sahara, weil es /tag/sahara/2013 ist.

Und wie vorher gefragt :smirking_face: ja, dasselbe passiert im Safe-Mode.

Also,

Das stimmt, und so war die Situation vor nicht allzu langer Zeit noch.

2 „Gefällt mir“

Vielen Dank für das konkrete Beispiel. Ich konnte das Problem reproduzieren und arbeite bereits an der Lösung.

Bei den Tests ist mir aufgefallen, dass auch keine numerischen Tags erstellt werden, wenn diese keine entsprechende ID haben. (z. B. würde der Versuch, den Tag 2939858339 zu erstellen, nichts bewirken und das Thema würde nicht mit einem Tag versehen werden).

2 „Gefällt mir“