Jump to content
xt:Commerce Community Forum

XTC-kein valides XHTML


franc

Recommended Posts

Hallo, ist das ein alter Hut, dass XTC keinen validen Quelltext (XHTML) erzeugt?

Wie kann das sein? Ist doch immerhin eine kommerzielle Anwendung für die man was bezahlen muss.

Nicht mal der Demoshop ist valide.

Ich hab den Shop installiert und danach das YAML für XTC -Plugin, wo so ein Link direkt zur Validierung führt und da war ich überrascht, dass da Fehler drin sind (nicht von YAML, sondern von XTC).

Gibts da irgendeinen Trick oder nimmt man diese Unprofessionalität dafür hin, dass XTC (was aber immerhin zum grössten Teil von OSC stammt) "nur" 100 Euro kostet?

Ich muss einen Onlineshop einrichten und bin jetzt etwas im Zweifel ob XTC das Richtige ist...

Gruss franc

Link to comment
Share on other sites

Hallo franc,

jepp, ist ein alter Hut. Scheint aber kaum jemanden wirklich zu interessieren. (Es soll ja sogar Stimmen geben, die behaupten, dass nicht valide Seiten bei Google besser gerankt werden...)

Wenn Du validen Code haben willst, gibt es keinen Trick, da musst Du einfach die Fehler beheben. - Und wenn Du schon dabei bist, kannst Du eigentlich gleich eine vernünftige Seite mit CSS draus machen...

Ben

Link to comment
Share on other sites

Wie Ben schon sagt: Das mit dem nicht validen Code interessiert genauso viel wie die Layouttabellen. Selbst Version 4 des Shops soll auf einem Grundlayout mit Tabellen basieren...

Du meisten Validierungsfehler beim YAML-Template dürften durch die falsche & kommen. Hier hab ich einen Thread zu einem anderen Forum verlinkt, da steht, an welchen Stellen man drehen muss. Mit SEF URLs funktioniert das aber nicht (zumindest bei mir nicht), die haben aber das Problem mit den &-Zeichen sowieso nicht.

Matt

Link to comment
Share on other sites

Jaja, die alten Hüte...

Schaut doch einfach mal WAS da als nicht valide mokiert wird:

95% der "Fehler" beziehen sich auf die &-Zeichen in den URL-Parametern der Warenkorb- und Boxlinks. Wenn man die Shopstat-URLs verwendet, ist man die UNDs in den Navigationslinks schonmal los.

Bleiben noch die Kauflinks. Ich hab's in nächtelanger Kleinarbeit geschafft, tatsächlich den Shop komplett valide zu machen (& anstatt &), bis ich mich mal ernsthaft mit dem W3C und dem dortigen Validator auseinandergesetzt habe: Der ist nämlich in diesem Punkt selbst fehlerhaft.

Niemanden ausser dem Validator interessiert es, ob in einer URL nun & oder & steht - der Validator sieht in & einen Fehler, der dann auch noch mehrere Folgefehler nach sich zieht (einmal & = 4 Fehler).

Und wenn man sich mal einen Nachmittag Zeit nimmt, dann kann man auch mindestens die Hälfte (okay, bei zwei Nachmittagen gern auch alle) der Tabellen aus dem Standardtemplate entfernen, bzw. durch DIVs ersetzen.

Es gab hier mal vor einiger Zeit ein "tabellenloses CSS-Template", und das war grosser Murks - da wurden einfach alle Tabellen (auch die, die sinnvoll waren, z.B. im Warenkorb) krampfhaft durch krude verschachtelte DIVs mit redundanten CSS-Selektoren ersetzt. Der resultierende Code war weniger strukturiert und viel (!) unübersichtlicher als das Original. Und Ladezeit gespart hat der auch nicht wirklich, war gerade mal knapp unter 30% weniger.

Ich hab durch eigene Handarbeit ein sauberes Template aus dem Standardtemplate gemacht - 55% der Codemenge, viel übersichtlicher und JA, es sind immer noch Tabellen drin - aber eben nur noch die, die auch nötig waren, ohne das Layout komplett neu aufzubauen. Sprich:

  • Für den Header und die Breadcrumb-Navi jeweils ein DIV
  • EINE Tabelle für links/mitte/rechts
  • Für die Navigation simple Listen anstatt der elend verschachtelten Tabellen
  • Für die Kategoriebeschreibung ein DIV
  • Für die Kategorie-Images kleine Tabellen (gut, da mach ich wohl noch DIVs draus)
  • Pro Artikel eine Tabelle links/rechts und rechts keine weitere
  • Für den Footer ein DIV

...ach ja, und die Boxen nicht vergessen - anstatt drei-vier Tabellen kommt man pro Box meist mit einer aus - oder eben mit DIVs

Tabellen an sich sind nicht der Teufel - nur bei zu vielen oder wenn sie nicht anständig beschrieben/formatiert sind (Stichworte: th, summary, abbr) wird es ärgerlich - siehe Ladezeiten. Aber darüber wurde hier schon viel und leidenschaftlich diskutiert, da will ich jetzt nicht wieder davon anfangen...

Cheers,

IaN

Link to comment
Share on other sites

hallo!

lese mit interesse die diskussion. ich bin schon der meinung, dass es möglich ist, saubere xhtml-templates zu erstellen, auch wenn vielleicht der warenkorb aus pragmatischen gründen eine tabelle bleibt. als dienstleister hab ich unsern kunden gegenüber den anspruch technisch korrekte websites abzuliefern und nicht auf einer komplett veralteten tabellen-layout-methode zu beharren - bloss weil es vielleicht einmal richtig mühe machen würde, die templates in schlankem, xhtml-code aufzusetzen.

gut, ich hab die templates also selbst umgearbeitet, was aber schon mehr als 2 nachmittage gedauert hat :-))

ausserdem kann ich beim update auf eine neuere xtc-version die arbeit nochmal machen oder mühselig die versch. änderungen rausfischen. das ist nervig, aufwändig und für den kunden teuer. ausserdem einfach eine schwäche, die ich wegen entstehender kosten dem kunden auch so mitteilen muss. (gut, das mögliche konkurrenz-produkt ist genauso tabellen-verliebt)

weil wir demnächst wieder ein neues shop-projekt anfangen, das auf kundenwunsch xhtml-valide sein muss: wann genau kommt die neue version raus und was genau heisst :

version 4, sowie Sp2.2 wird ein css sowie ein table template enthalten.

ist "ein table template" ein verschreiber? ich möchte ja gerne xtc-templates mit möglichst wenig tables.

danke & grüße

cat

Link to comment
Share on other sites

Moin cat,

und nicht auf einer komplett veralteten tabellen-layout-methode zu beharren - bloss weil es vielleicht einmal richtig mühe machen würde, die templates in schlankem, xhtml-code aufzusetzen.

Tables für Layout = Bäh, zustimm! Aber nichtsdestotrotz sind Tables immer noch im XHTML-Standard enthalten, und zwar nicht aus...

aus pragmatischen gründen

Tabellen sind für tabellarische Daten gedacht, und der Warenkorb zeigt Daten in tabellarischer Form an. Da ist eine Tabelle also korrekt genutzt. Bin grad dabei, die Tabellen richtig zu beschriften (th, summary, abbr) - dann sind die sogar mit Lynx gut zugänglich.

ist "ein table template" ein verschreiber? ich möchte ja gerne xtc-templates mit möglichst wenig tables.

Guck mal genau hin: Ein CSS-Template und ein Table Template - wirst es Dir also aussuchen können :rolleyes:

das auf kundenwunsch xhtml-valide sein muss

Wie schon gesagt, das *grosse* Problem sind die nicht codierten Und-Zeichen in den URLs, mach die richtig und schon ist die Seite valide (auch *mit* Tables, s.o.). Ach ja, im Standardtemplate sind noch einige <br> anstatt <br /> - auch das ist schnell gemacht.

Such mal bei gooooo.... nach "xt valide xhtml" - auf der Seite vom Gunnar findest Du viele Tipps! Auch sehr zu empfehlen ist die gemeinnützige Seite Dive Into Accessibility

Cheers,

IaN

Link to comment
Share on other sites

hi ian (john?),

danke und jajaja, du hast recht mit deinen antworten. ich mein natürlich mit veralteten tabellen die layout-tabellen und beim warenkorb hast du auch recht, stimmt. aber ich hab mal versucht die such-leisten-tabelle weg-zu-optimieren und bin dazu bis in den core gegangen, was zwar geht aber wovon man doch besser die finger lasen sollte. und da hab ich dann aus *pragmatischen* gründen die tabelle doch gelassen, ich glaub so wars.

und v.a. danke für die aufklärung, ich hab den satz mit den templates ab version 4 bzw. sp2.2 völlig falsch verstanden. wahlweise table-templates oder eben flotte xhtml-templates, das ist super!!!

ich hoffe also diese neuerung kommt bald raus, hab aber bereits rumgesucht hier im forum, scheint es weiss keiner wann sie kommt...

grüße

cat

:rolleyes: :rolleyes:

Link to comment
Share on other sites

  • 3 weeks later...

... also mit yaml fuer xtc schaut das anscheinend viel besser aus, mit der validierung. jedenfalls hab ich da keine fehler mehr (xhtml transitional).

in der main.php muss man jedenfalls das javascript mit dem

CDATA einpacken in

includes/classes|main.php

muss es da nach zeile 50 (getShippingLink) heissen:

return ' '.SHIPPING_EXCL.'<script language="JavaScript" type="text/javascript">/* <![CDATA[ */document.write(\'<div><a href="javascript:newWin=void(window.open(\\\''.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS).'\\\', \\\'popup\\\', \\\'toolbar=0, scrollbars=yes, resizable=yes, height=400, width=400\\\'))">'.SHIPPING_COSTS.'</div></a>\');/* ]]> */</script><noscript><a href="'.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS).'" target="_blank">'.SHIPPING_COSTS.'</a></noscript>';

Link to comment
Share on other sites

  • 1 month later...

Bei dieser Anpassung spuck der Validator aber folgende Fehlermeldung aus:

Error Line 189 column 402: document type does not allow element "noscript" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag....iv></a>');/* ]]> */</script><noscript><a href="http://www.shop.de/shop/p

also dieses &%$!@-forum fügt Leerzeichen ein wo keine waren:

... (\\\''.xtc _href_link ....

nach dem xtc soll KEIN Leerzeichen sein, das Forum zaubert aber eines rein.

Das duerfte schon mal Fehler erzeugen...

Link to comment
Share on other sites

  • 2 weeks later...

Worum so kompliziert wenns auch einfach geht: Einfach statt dem <script>/<noscript>-Konstrukt die onclick-Methode verwenden. Funktion sieht dann so aus:


function getShippingLink() {
return ' '.SHIPPING_EXCL.'<a href="'.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS).'" onclick="newWin=void(window.open(\''.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS).'\', \'popup\', \'toolbar=0, scrollbars=yes, resizable=yes, height=400, width=400\'))" target="_blank">'.SHIPPING_COSTS.'</a>';

}
[/PHP]

---

Kaffee und Espresso - bei Kaffeeabo.de

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...