Validierungsfehler xtcommerce

Alt 21.12.2009, 22:25   # 1
Ruth
 
Registriert seit: 21.12.2009
Beiträge: 8
Ich bin neu hier und erst mal hallo an alle. Ich weiss nicht, ob mir hier vielleicht jemand helfen kann. Es betrifft einen xtc-Shop. Bei der Validierung bekomme ich Fehlermeldungen und seit Tagen finde ich nicht heraus, wo diese zu finden sind [Invalid] Markup Validation of http://www.gammassaucen.ch/Senf - W3C Markup Validator. Kann mir vielleicht jemand von euch einen Tipp geben. Danke zum voraus
  Mit Zitat antworten
Alt 21.12.2009, 22:47   # 2
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Moin,

das ist für mich etwas schwer, weil ich den Shop nicht installiert habe. Ich weiß nicht so ganz, wie weit Deine Suche schon gekommen ist, aber ich tippe, Du fragst eher, in welchen XTC-Dateien Du suchen musst, nicht was im HTML falsch ist?

Zuerst einmal sollte man vorne anfangen und dann gucken, ob sich dann ggf. auch weitere Fehler von selbst erledigen. Der erste Fehler ist der Zeilenwechsel der Produkte, die Tabellen-Zeile wird nach "Basilikumsenf" (wobei ja jedes Produkt eine eigene Tabelle ist) korrekt geschlossen (</tr>), aber dann nicht wieder aufgemacht vor dem "Bärlauchsenf" (<tr> fehlt).

Für mehr möge sich jemand mit installiertem XTC einmischen. Oder Du fragst (ich schicke ja ungern weg hier aber) im Forum zur Software...

Grüße,
Thorsten
__________________
Wieder da: FreewareGuide.de
...bin letztens durch die Aufnahmeprüfung zur Hellseherschule gekracht! smiley crystal ball
  Mit Zitat antworten
Alt 21.12.2009, 23:02   # 3
Ruth
Threadstarter
 
Registriert seit: 21.12.2009
Beiträge: 8
Lieben Dank für die Antwort. Darf ich gleichwohl mal nachfragen. Ist der Fehler irgendwo hier versteckt und ich finde ihn nicht:
HTML-Code:
{config_load file="$language/lang_$language.conf" section="index"}
{if $CATEGORIES_NAME}
<h1>{$CATEGORIES_NAME}</h1>
<div class="more">{if $CATEGORIES_DESCRIPTION}{$CATEGORIES_DESCRIPTION}{/if}{/if}</div><br />
<table width="98%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><hr size="1" noshade="noshade" class="line"/></td>
  </tr>
</table>
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>{$NAVIGATION} </td>
</tr>
</table>
<table width="98%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><hr size="1" noshade="noshade" class="line"/></td>
  </tr>
</table>
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td align="right" class="main"> {$SORTING_DROPDOWN} </td>
  </tr>
</table>
<table width="100%" border="0" align="center" cellpadding="8" cellspacing="2">
  <tr> 		
{foreach name=aussen item=module_data from=$module_content} 
		{php} 
          $col++; 
		{/php} 
  <td align="center" valign="top" class="main">
			<table width="99%"  class="div_produkte" border="0" cellspacing="2" cellpadding="2">
				<tr align="center">
					<td colspan="2" valign="middle" class="prodhead">
						 <h5><strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></h5></td>
				</tr>
				<tr align="center">
				  <td colspan="2" class="prodhead"><hr size="1" noshade="noshade" class="line"/></td>
			  </tr>
				<tr align="center">
				  <td colspan="2" align="left">{if $module_data.PRODUCTS_SHORT_DESCRIPTION}
			      <div class="more">{$module_data.PRODUCTS_SHORT_DESCRIPTION}</div>{/if}</td>
			  </tr>
				<tr align="center">
					<td colspan="2"><a href="{$module_data.PRODUCTS_LINK}" onfocus="if(this.blur)this.blur()">{if $module_data.PRODUCTS_IMAGE}<img src="{$module_data.PRODUCTS_IMAGE}"  alt="{$module_data.PRODUCTS_NAME}" border="0" class="prod_border" /></a></td>
				</tr>
				<tr align="center">
				  <td colspan="2"><hr size="1" noshade="noshade" class="line"/></td>
			  </tr>
				<tr align="center">
				<td colspan="2" valign="bottom" class="poweredby"><div class="div_preis">{$module_data.PRODUCTS_PRICE}</div>
<span class="price_total">{$module_data.PRODUCTS_SHIPPING_LINK}</span></td>
				</tr>
				<tr valign="bottom">
				<td align="center" class="txt" valign="top"><a href="{$module_data.PRODUCTS_LINK}" onfocus="if(this.blur)this.blur()"><img src="{$tpl_path}buttons/{$language}/small_view.gif" alt="{$module_data.PRODUCTS_NAME}" /></a> {/if}</td>
				<td align="center" class="txt" valign="top">{$module_data.PRODUCTS_BUTTON_BUY_NOW}</td>
				</tr>
  </table> </td>
      {php} 
		if ($col>=2) { 
		$col=0; 
		echo '</tr>
	';
		} 
		{/php} 
		{/foreach}
  <tr>
  <td></td></tr>
</table> 
<table width="98%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><hr size="1" noshade="noshade" class="line"/></td>
  </tr>
</table>
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>{$NAVIGATION} </td>
</tr>
</table>
  Mit Zitat antworten
Alt 22.12.2009, 07:08   # 4
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Klar, darin kann ich schon nach Fehlern gucken

Ich extrahiere mal die entsprechende Tabelle (Zeilen 25 bis 69) und lasse den eigentlichen Produkt-Inhalt (Zeilen 32 bis 58) raus;
HTML-Code:
<table width="100%" border="0" align="center" cellpadding="8" cellspacing="2">
<tr>
{foreach name=aussen item=module_data from=$module_content}
{php}
$col++;
{/php}
<td align="center" valign="top" class="main">
<!-- *** TABLE Produkt *** --></td>
{php}
if ($col>=2) {
$col=0;
echo '</tr>
';
}
{/php}
{/foreach}
<tr>
<td></td></tr>
</table>
Zuerst mal ist die letzte <tr>-Zeile ("<tr><td></td></tr>") überflüssig (für Abstände besser CSS nutzen).

Und schon sieht man, dass das öffnende "<tr> nur einmal geschrieben wird, während das schließende "</tr>" in FOREACH-Schleife und IF-Bedingung ggf. immer wieder geschrieben wird. D.h. die Zeile 26 muss heruntergezogen werden und in eine passende Bedingung gesetzt:
HTML-Code:
<!-- Vorher: tr-->
{foreach name=aussen item=module_data from=$module_content}
{php}
$col++;
if ($col==1) {
echo '<tr>
';
}
{/php}
Mich wundert etwas, ob $col überhaupt vorher initialisiert wurde, das wäre noch hilfreich, das noch dazu sähe dann so aus:
HTML-Code:
<!-- Vorher: tr-->
{php}
$col=0;
{/php}
{foreach name=aussen item=module_data from=$module_content}
{php}
$col++;
if ($col==1) {
echo '<tr>
';
}
{/php}
Hilft Dir das schon?

Ansonsten sind drumherum etwas zu viele Tabellen, nur für ein WIDTH die horizontal Linien oder {$NAVIGATION} je in eine Tabelle zu quetschen macht den Code nicht übersichtlicher.

Auch die Überschrift solltest Du Dir nochmal angucken:
HTML-Code:
{if $CATEGORIES_NAME}
<h1>{$CATEGORIES_NAME}</h1>
<div class="more">{if $CATEGORIES_DESCRIPTION}{$CATEGORIES_DESCRIPTION}{/if}{/if}</div><br />
Ich weiß nicht, wie sehr Du Dich auf Vorhandensein von NAME und DESCRIPTION einer Kategorie verlassen kannst, aber wenn der Name fehlt, dann schreibt er ein abgesprengtes "</div><br />" in das HTML, was je nach Aufbau eines Templates drum herum dieses kaputt schießen kann, wenn die DESCRIPTION fehlt kannst Du Dir das DIV dazu eigentlich auch sparen:
HTML-Code:
{if $CATEGORIES_NAME}
<h1>{$CATEGORIES_NAME}</h1>
{if $CATEGORIES_DESCRIPTION}
<div class="more">{$CATEGORIES_DESCRIPTION}</div>{/if}{/if}
<br />
Grüße,
Thorsten
__________________
Wieder da: FreewareGuide.de
...bin letztens durch die Aufnahmeprüfung zur Hellseherschule gekracht! smiley crystal ball
  Mit Zitat antworten
Alt 22.12.2009, 17:28   # 5
Ruth
Threadstarter
 
Registriert seit: 21.12.2009
Beiträge: 8
Lieber Thorsten
Erst mal lieben Dank für die grossartige Hilfe. Leider konnte ich bis jetzt nicht herausfinden, wo die Fehler genau begraben sind. Wahrscheinlich in der Tiefe des Shopsystems und da kenne ich mich nun gar nicht aus. Ist ja auch nicht sooo schlimm, der Rest ist ja valide und wie hat mir jemand in einem Forum gesagt: "ein grüner Balken ist nur für das eigene Ego". Stimmt ja eigentlich auch. Trotzdem lieben Dank für die Mühe. Grüsse Ruth
  Mit Zitat antworten
Alt 22.12.2009, 17:40   # 6
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Zitat:
Zitat von Ruth Beitrag anzeigen
Leider konnte ich bis jetzt nicht herausfinden, wo die Fehler genau begraben sind.
Ich kann nicht folgen. War meine Lösung nicht verständlich? Wenn Du dieses Stück Quellcode gepostet hast, dann weißt Du doch, wo Du es her hast, wieso "in der Tiefe des Shopsystems"? Damit sind nicht alle Fehler behoben aber die ersten, groben...

Ratlos,
Thorsten
  Mit Zitat antworten
Alt 22.12.2009, 17:52   # 7
Ruth
Threadstarter
 
Registriert seit: 21.12.2009
Beiträge: 8
Hallo Thorsten. Vielleicht habe ich es auch nicht richtig verstanden. Ich bin so viele Stunden daran gesessen, dass mir der Kopf bald platzt. Hab die Datei product_listing mal so gemacht, aber ist irgendiwe alles falsch. Bin halt doch noch eine blutige Anfängerin

HTML-Code:
{config_load file="$language/lang_$language.conf" section="index"}
{if $CATEGORIES_NAME}
<h1>{$CATEGORIES_NAME}</h1>
{if $CATEGORIES_DESCRIPTION}
<div class="more">{$CATEGORIES_DESCRIPTION}</div>{/if}{/if}
<br />
<table width="98%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><hr size="1" noshade="noshade" class="line"/></td>
  </tr>
</table>
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>{$NAVIGATION} </td>
</tr>
</table>
<table width="98%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><hr size="1" noshade="noshade" class="line"/></td>
  </tr>
</table>
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td align="right" class="main"> {$SORTING_DROPDOWN} </td>
  </tr>
</table>
<table width="99%"  class="div_produkte" border="0" cellspacing="2" cellpadding="2">
				<tr align="center">
					<td colspan="2" valign="middle" class="prodhead">
						 <h5><strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></h5></td>
				</tr>
				<tr align="center">
				  <td colspan="2" class="prodhead"><hr size="1" noshade="noshade" class="line"/></td>
			  </tr>
				<tr align="center">
				  <td colspan="2" align="left">{if $module_data.PRODUCTS_SHORT_DESCRIPTION}
			      <div class="more">{$module_data.PRODUCTS_SHORT_DESCRIPTION}</div>{/if}</td>
			  </tr>
				<tr align="center">
					<td colspan="2"><a href="{$module_data.PRODUCTS_LINK}" onfocus="if(this.blur)this.blur()">{if $module_data.PRODUCTS_IMAGE}<img src="{$module_data.PRODUCTS_IMAGE}"  alt="{$module_data.PRODUCTS_NAME}" border="0" class="prod_border" /></a></td>
				</tr>
				<tr align="center">
				  <td colspan="2"><hr size="1" noshade="noshade" class="line"/></td>
			  </tr>
				<tr align="center">
				<td colspan="2" valign="bottom" class="poweredby"><div class="div_preis">{$module_data.PRODUCTS_PRICE}</div>
<span class="price_total">{$module_data.PRODUCTS_SHIPPING_LINK}</span></td>
				</tr>
				<tr valign="bottom">
				<td align="center" class="txt" valign="top"><a href="{$module_data.PRODUCTS_LINK}" onfocus="if(this.blur)this.blur()"><img src="{$tpl_path}buttons/{$language}/small_view.gif" alt="{$module_data.PRODUCTS_NAME}" /></a> {/if}</td>
				<td align="center" class="txt" valign="top">{$module_data.PRODUCTS_BUTTON_BUY_NOW}</td>
				</tr>
  </table> </td>
    
<table width="98%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><hr size="1" noshade="noshade" class="line"/></td>
  </tr>
</table>
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>{$NAVIGATION} </td>
</tr>
</table>
  Mit Zitat antworten
Alt 22.12.2009, 20:08   # 8
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Jetzt wiederum folge ich Dir nicht, das ist doch jetzt eine andere Seite als die vorhin, dies ist keine Produktliste, zumindest finde ich jetzt gar keine FOREACH-Schleife mehr. Hast du das jetzt absichtlich auf ein Produkt beschränkt und funktioniert das so überhaupt (woher kennt PHP plötzlich $module_data, was vorher in der Schleife die Item-Variable war)? Warum hast du den ganzen Code gelöscht statt ihn zu reparieren? So kann ich leider auch nicht weiterhelfen, ggf. brauchst Du professionelle Unterstützung.

Sorry,
Thorsten

PS: Ab jetzt bin ich sowieso kaum noch hier, Weihnachtspause. Musst also eh Geduld mitbringen.
  Mit Zitat antworten
Alt 22.12.2009, 21:22   # 9
Ruth
Threadstarter
 
Registriert seit: 21.12.2009
Beiträge: 8
Hallo Thorsten. Irgendwie stand ich vorher neben den Schuhen. Hab es hingekriegt, alles grün. Vielen, vielen, lieben Dank für alles, vorallem für deine Engelsgeduld. Nun kann ich endlich wieder ruhig schlafen. Frohes Fest. Siehe hier: [Valid] Markup Validation of http://www.gammassaucen.ch/ - W3C Markup Validator
  Mit Zitat antworten
Alt 07.01.2010, 23:09   # 10
Ruth
Threadstarter
 
Registriert seit: 21.12.2009
Beiträge: 8
Hallo. Habe es endlich geschafft, die 138 Fehler auf 22 zu korrigieren, aber nun stehe ich wieder mal an ([Invalid] Markup Validation of http://www.spezialitaetenshop.ch/ - W3C Markup Validator). Würde mir ev. noch einmal jemand weiterhelfen? Dankeschön
  Mit Zitat antworten
Alt 08.01.2010, 06:47   # 11
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Moin,

kein Problem, aber ich bin für Stück für Stück, es ist immer übersichtlicher, wenn man einen Fehler gründlich beseitigt und dann testet was übrig bleibt. Dann irritieren Folgefehler (wo der Validator nur wegen vorheriger Fehler durcheinander kommt) nicht...

Ich hatte ja vorher schon mal gesagt, dass man ggf. die massive Verwendung von Tabellen auf ein Minimum reduzieren sollte, das rächt sich wieder einmal, es ist schlicht unübersichtlich, und darum passt das HTML nicht.

Die Tabelle ab Zeile 914 ist offenbar defekt, und zwar wird die TR-Zeile mit dem "[weitere]"-Link (ab Zeile 941) am Ende nicht mit </tr> geschlossen.

Grüße,
Thorsten
__________________
Wieder da: FreewareGuide.de
...bin letztens durch die Aufnahmeprüfung zur Hellseherschule gekracht! smiley crystal ball
  Mit Zitat antworten
Alt 08.01.2010, 11:23   # 12
Ruth
Threadstarter
 
Registriert seit: 21.12.2009
Beiträge: 8
Hallo Thorsten. Erst mal lieben Dank für deine Hilfe. Ich habe den Fehler gefunden in der box_special und diesen korrigiert, d.h. rot markiert eingefügt.
<td align="right" class="boxText2"><a href="{$SPECIALS_LINK}">[weitere]</a></td>
</tr>
<tr>
Kann es sein, dass mir der Validator jetzt aber 1 Fehler mehr anzeigt?
  Mit Zitat antworten
Alt 10.01.2010, 14:39   # 13
Ruth
Threadstarter
 
Registriert seit: 21.12.2009
Beiträge: 8
Hallo. Ich habe es geschafft, Seite ist valide. Vielen lieben, lieben Dank für die Hilfe und Mühe.
  Mit Zitat antworten
Alt 11.01.2010, 13:09   # 14
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Puh, das freut mich. Mich hatte Krankheit und Familienfeier leider aufgehalten, darum kam ich nicht zur Antwort.

Grüße,
Thorsten
  Mit Zitat antworten

Alt 28.05.2012, 23:11 # --
News Flash
 
Benutzerbild von News Flash
 
 
 

Das könnte Dich auch noch interessieren:

Nicht fündig geworden? Dann ohne Anmeldung in unserem Gast-Forum nachfragen.

   
Antwort
Themen-Optionen



Alle Zeitangaben in WEZ +2. Es ist jetzt 23:11 Uhr.