contao / core

Contao 3 → see contao/contao for Contao 4
GNU Lesser General Public License v3.0
490 stars 214 forks source link

Artikelalias existiert bereits - in unterschiedlichen Startpunkten #8519

Closed Samson1964 closed 8 years ago

Samson1964 commented 8 years ago

In der 3.5.17 kann man keine Artikel erstellen, wo bereits ein Alias in einem anderen Seitenbaum existiert. Bei Seiten ist dies möglich. Ich kann z.B. in jedem Seitenbaum einen Alias index haben. Beim Anlegen solcher Seiten zeigt Contao beim erstmaligen Bearbeiten des entsprechenden Artikels auch index als Alias an. Will man den Vorschlag übernehmen kommt die Meldung "Das Alias index existiert bereits".

xchs commented 8 years ago

See also: https://github.com/contao/core/issues/7161

fritzmg commented 8 years ago

In #7161 geht es aber eher darum, warum bzw. dass es nicht geht. Hier in diesem Issue ist der Bug eher, dass Contao fälschlicherweise einen bereits existierenden Artikel Alias vorschlägt.

Samson1964 commented 8 years ago

Na ja, mein Englisch ist nicht so sattelfest. Der Alias-Vorschlag von Contao ist eher ein Schönheitsfehler. Der eigentliche Bug ist für mich, daß ein Artikelalias im Gegensatz zu einem Seitenalias seine Einzigartigkeit über alle Seitenbäume haben möchte. Das ist doch wohl nicht beabsichtigt?

fritzmg commented 8 years ago

Doch, weil die ID eines Artikels muss eindeutig bleiben, da du den Artikel ja überall einfügen kannst. Andernfalls könnte es vorkommen, dass du zweimal id="index" auf deiner Seite hast.

asaage commented 8 years ago

So etwas wie {link::pagealias}} kann man allerdings auch überall einfügen... Ich hab das Verhalten dabei allerdings noch nicht überprüft. Weil man den Alias aber ohne weiteres ändern kann hab ich mir eh angewöhnt ID's zu verwenden. Prinzipiell würde ich eher @aschempp zustimmen und behaupten der Artikelalias sollte pro Seite eindeutig sein - was wohl nicht ganz rückwärtskompatibel wäre.

Samson1964 commented 8 years ago

Demzufolge könnte man Seiten nicht in einen anderen Seitenbaum verschieben?! Habe ich gerade mal getestet. Ich konnte die eine Seite "test" problemlos von einem Seitenbaum in den Seitenbaum mit der anderen Seite "test" verschieben. Erst als ich eine der Seiten bearbeiten und speichern wollte, bemerkte Contao das Malheur.

fritzmg commented 8 years ago

So etwas wie {link::pagealias}} kann man allerdings auch überall einfügen...

Ja, das ist ja auch kein Problem.

Prinzipiell würde ich eher @aschempp zustimmen und behaupten der Artikelalias sollte pro Seite eindeutig sein - was wohl nicht ganz rückwärtskompatibel wäre.

Da du aber jeden Artikel überall einfügen kannst, kann nicht gewährleistet werden, dass eine ID nicht mehrmals auf einer Seite vorkommt.

Demzufolge könnte man Seiten nicht in einen anderen Seitenbaum verschieben?!

Nein, du verstehst das Problem falsch. In HTML dürfen nicht mehrere Elemente mit den selben IDs vorkommen.

asaage commented 8 years ago

Ich spiel grad mit contao4 da wird der Artikel-alias gar nichtmehr als id dahergenommen sondern es sieht direkt so aus: id="article-1" was man aber mit css-id überschreiben kann.

Samson1964 commented 8 years ago

Demzufolge könnte man Seiten nicht in einen anderen Seitenbaum verschieben?!

Nein, du verstehst das Problem falsch. In HTML dürfen nicht mehrere Elemente mit den selben IDs vorkommen.

Das in HTML jedes Alias je Struktur nur einmal vorkommen darf ist mir doch auch klar. Nicht klar ist mir warum Artikel und Seiten unterschiedlich behandelt werden: Ein Seitenalias darf je Seitenstruktur nur einmal vorkommen. Ein Artikelalias darf über ALLE Seitenstrukturen nur einmal vorkommen. Dein Argument:

Doch, weil die ID eines Artikels muss eindeutig bleiben, da du den Artikel ja überall einfügen kannst.

Ja, aber Seiten kann ich auch überall einfügen!

fritzmg commented 8 years ago

Eine Seite erzeugt keine HTML ID.

Nochmal ein Beispiel zur Verdeutlichung: angenommen du hast zwei Artikel, jeweils mit dem Alias index. Wenn du jetzt beide Artikel auf einer Seite einbindest, hast du zwei HTML Elemente mit dem Attribut id="index" und das is syntaktisch falsch.

Daher müssen innerhalb der gesamten Contao Installation alle Artikel Aliase Unique sein. So wie es aussieht hat sich dieser Umstand in Contao 4 ohnehin erübrigt.

Samson1964 commented 8 years ago

Darum geht es mir doch gar nicht. Ich will doch nur das Artikelaliase innerhalb eines kompletten Seitenbaums (also unter einem Startpunkt) unique sind (also so wie Seitenaliase). Dann sind sie quasi auch innerhalb einer Seite unique, denn das ist ja eine Ebene tiefer

Im Moment sind Artikelaliase aber sogar innerhalb einer ganzen Installation über alle Seitenbäume hinweg unique. Keine Ahnung wozu das nötig sein soll.

Wieso geht so etwas nicht?: domain.de/de/seitenalias1/articles/test.html (Seitenstruktur deutsch) domain.de/en/seitenalias2/articles/test.html (Seitenstruktur englisch)

Beide Artikelaliase test haben nichts miteinander zu tun, sind in völlig verschiedenen Strukturen. Contao meckert aber rum, daß der Alias test schon existiert.

Warum meckert Contao dann nicht bei: domain.de/de/test.html (Seitenstruktur deutsch) domain.de/en/test.html (Seitenstruktur englisch) diesem Seitenalias test, daß dieser schon in existiert?

Daß so etwas: domain.de/de/seitenalias1/articles/test.html domain.de/de/seitenalias1/articles/test.html oder so etwas: domain.de/de/seitenalias1/articles/test.html domain.de/de/seitenalias2/articles/test.html nicht geht, brauchst Du mir nicht extra zu erklären. Das ist doch logisch. Wobei - Variante 2 bin ich mir jetzt gerade nicht sicher...

leofeyer commented 8 years ago

Darum geht es mir doch gar nicht. Ich will doch nur das Artikelaliase innerhalb eines kompletten Seitenbaums (also unter einem Startpunkt) unique sind (also so wie Seitenaliase). Dann sind sie quasi auch innerhalb einer Seite unique, denn das ist ja eine Ebene tiefer.

Dann ist das Ticket doch ein Duplikat von #7161.