Zubehör unter Artikel in details.tpl bringt W3C-Fehler

Guten Morgen im Forum,
heute habe ich eine Frage, die sich aus der Prüfung meiner Seite ( fffw.de ) mit W3C ergibt.
Ich habe viele Artikel mit Zubehör, diese sollten in der details.tpl unter dem Artikel angezeigt werden.
Ich habe das Zubehör wie bei FAQ & Manual beschrieben ( http://www.oxid-esales.com/de/resources/help-faq/eshop-manual/beispiel-templateanpassung-zubehoer-unter-dem-artikel-anzeigen ) aus der _right.tpl in die details.tpl übernommen, damit es unter dem Artikel angezeigt wird.
Bei der Prüfung der Seite eines Artikels mit vielen Zubehörteilen mit dem Marcup Validation Service W3C ( http://validator.w3.org/? ) bekomme ich nun viele Fehler angezeigt. Es werden die id’s getestet :

Auszug aus Fehlermeldung:

Line 580, Column 31: ID “TEST_RIGHTSIDEACCESSOIRESHEADER” already defined
<strong class=“head2” id=“test_RightSideAccessoiresHeader”>Zubehör</strong>

An “id” is a unique identifier. Each time this attribute is used in a document it must have a different value. If you are using this attribute as a hook for style sheets it may be more appropriate to use classes (which group elements) than id (which are used to identify exactly one element).

Line 243, Column 28: ID “TEST_RIGHTSIDEACCESSOIRESHEADER” first defined here
<strong class=“h2” id=“test_RightSideAccessoiresHeader”>Zubehör</strong>

…es werden nun Fehler für jede “id” angezeigt…
Wie kann ich das Problem beheben, damit die Validierung ohne Fehler durchlaufen kann???
Danke und Gruss Judith

Moin!

Der Validator bemängelt, dass dein Shop die IDs mehrmals vergibt. Der Sinn der ID ist einem Element eine einzigartige Idefikationsnummer (es können auch Wörter sein) zu geben, anhand welcher das gewünschte Element gefunden werden kann.
Du kannst es ganz einfach mit deiner Sozialversicherungsnummer vergleichen, weil niemand anders die gleiche haben darf, damit deine Versicherung nur Dir zugeordnet werden könnte und nicht vielleicht jemand anderem. Die Idee der ID ist die selbe.

und jetzt zu deinem Anwendungsfall:
du hast in den Zeile 243 und in der Zeile 580 jeweils ein Element mit der id “test_RightSideAccessoiresHeader”, Vermutlich hast du sowohl unter dem Artikel als auch rechts jeweils eine Zubehör-box, stimmts? Eine davon müsste weg

Hallo,
mit dem id-Attribut <div id = “xxx”> können Elemente eindeutig bezeichnet werden, d. h. es darf nur einmal pro Dokument verwendet werden. Eine Klasse <div class = “xxx”> hingegen ist keine eindeutige Bezeichnung, kann im Dokument beliebig oft verwendet werden. Da müssten teilweise in den Templates die id-Attribute in Klassen umgewandelt oder die id-Attribute namentlich geändert und in den css-Dateien entsprechend ergänzt werden.
Aber eigentlich steht das ja schon alles in deinem Text drinnen oder habe ich etwas falsch verstanden ?

Danke für die Antworten,

"du hast in den Zeile 243 und in der Zeile 580 jeweils ein Element mit der id “test_RightSideAccessoiresHeader”, Vermutlich hast du sowohl unter dem Artikel als auch rechts jeweils eine Zubehör-box, stimmts? Eine davon müsste weg "

…nein, ich habe nur unter dem Artikel die Zubehörteile. Es werden die “id’s” aller Zuhörteile aus der details.tpl miteinander “verglichen”, da liegt wohl der Fehler, nicht dass das Zubehör in details.tpl und in _right.tpl auftaucht. Habe ich nur ein Zubehör zum Artikel und in der details.tpl angezeigt, ist die Validierung ohne Fehler…
Wo sollte ich denn nun die id’s ändern?
Danke Judith

Überall da, wo eine ID mehrfach vorkommt, wird der Fehler erscheinen. Man kann z.B. einen Counter anlegen und CSS etc. entsprechend anpassen.

Ich muss erst mal noch weiter fragen…
Ursprünglich wird doch in der _right.tpl das Zubehör, wenn welches vorhanden ist, aufgelistet, ich betone mal “aufgelistet”. Ich habe folgendes ausprobiert: ich habe diesen code aus der _right.tpl

( [{ if $oView->getAccessoires() }]
<strong class=“h2” id=“test_RightSideAccessoiresHeader”>[{ oxmultilang ident=“INC_RIGHTITEM_ACCESSORIES” }]</strong>
<div class=“box”>
<div>[{include file=“inc/rightlist.tpl” list=$oView->getAccessoires() altproduct=$product test_Type=accessoire}]</div>
</div>
[{ /if }])

mal in die details.tpl eingefügt. Für diese Auflistung kommen bei W3C keine Fehlermeldungen, die kommen nur, wenn ich diesen angepassten code für die details.tpl

[{ if $oView->getAccessoires() }]
<strong class=“head2” id=“test_RightSideAccessoiresHeader”>[{ oxmultilang ident=“INC_RIGHTITEM_ACCESSORIES” }]</strong>
[{foreach from=$oView->getAccessoires() item=accessoryproduct name=test_accessorylist}]
[{include file=“inc/product.tpl” size=“small” product=$accessoryproduct}]
[{/foreach}]
[{ /if }]

einfüge.

Natürlich habe ich dann keine vernünftige Anzeige der Zubehörteile in der details.tpl, aber die immer wieder vergebenen “id’s” sind weg.

Warum wird nun das Zubehör in der _right.tpl anders aufgelistet ( ohne foreach-schleife…) als in der details.tpl, ich habe doch nur gemacht, was das Manual beschreibt. Ich würde jetzt ungerne id’s, Klassen und die css ändern, da ich ja auch bei der Auflistung der zuletzt angesehen Artikel diese id’s usw. benötige. Wäre es nicht besser, die “Auflistung” der Zubehörteile, so wie sie in der _right.tpl erfolgt in die details.tpl zu übernehmen…ginge das irgendwie??? danke Judith

Einmal wird die product.tpl und einmal die rightlist.tpl aufgerufen, dessen Ausgabe sicherlich nicht gleich ist :slight_smile: .

Die Auflistung der Zubehörteile soll aber doch bei beiden Varianten das gleiche Ergebnis bringen, nur in anderer optischer Form: einmal rechts neben dem Artikel in der _right.tpl wenn man das möchte, oder eben gleich unter dem jeweiligen Artikel in der details.tpl. Wieso gibt es dann verschiedene code für die gleiche Auflistung? Versteht Ihr, was ich damit meine? danke gruss Judith

Webdesign ist wie Kochen:
Ich backe meinen Apfelkuchen mit Flash und CSS und du backst deinen mit HTML5 und PHP, und am Ende schmecken sie fast gleich.

Anders gesagt: wir leben in der freien Welt und können einander nicht vorschreiben wir man den XY-Kuchen zu backen hat, wir können nur mitteilen wir wir unseren Kuchen gebacken haben. Deswegen führen auch mehrere Wege zum selben Ergebnis

…ja, aber der Kuchen, welcher mir durch das Übernehmen der code-Zutaten aus dem Manual-Backbuch entsteht ist leider nicht ganz durchgebacken, oder warum kommen beim Check durch den W3C-Back-Ober-Spezialisten so viele Fehlermeldungen? Ich habe doch nur die Zutaten nach Anweisung aus dem Backladen Oxid-e genommen und in meine Shop-Rührschüssel getan und mit dem Browser umgerührt…
Was nun…?
Gruss Judith

ich müsste erst in die Rührschüssel reingucken um zu sagen was das faul ist.
Am besten _right.tpl und details.tpl

boah - und wer backt mir nun Weihnachts-Plätzchen? Ich bekomm Hunger… :slight_smile:

Willst Du wirklich so viel Zeit und Energie an diesem unterprioisierten Problem verbringen, oder diese nicht lieber sinnvoller einsetzen? Keiner straft Dich ab, nur weil da ein paar W3C-Fehlerchen drin sind. Schonmal die Seite von Amazon überprüfen lassen?
:eek:

Hi zusammen,

die ID kann einfach im Template entfernt werden, da diese keinen Einfluss auf das Aussehen nimmt und auch sonst hier an dieser Stelle nicht gebraucht wird.

Danke für Eure Antworten,
soweit ich das angesehen habe, verschwinden mit den id’s dann auch die jeweiligen Anzeigen…Titel, Bilder, Preis…—ich arbeite in der produkt.tpl, geht also wohl nicht.

Guten Morgen, vielleicht hat Ray “Hebsacker” ja recht und ich mach mir viel zu viele Gedanken zur Perfektion meines “Kuchens”, er “schmeckt” ja auch mit diesen Fehleranzeigen bei W3C (fffw.de).
Danke an alle, die mir geholfen haben, Gruss Judith