<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blogpotato &#187; xt:Commerce</title>
	<atom:link href="http://www.blogpotato.de/category/xtcommerce/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blogpotato.de</link>
	<description>Apple, Mac, Web, Baseball</description>
	<lastBuildDate>Fri, 30 Dec 2011 10:06:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel='hub' href='http://www.blogpotato.de/?pushpress=hub'/>
		<item>
		<title>Evergreen-Shop &#8211; ein xt:C-Fork von Estelco</title>
		<link>http://www.blogpotato.de/2010/01/08/evergreen-shop-ein-xtc-fork-von-estelco/</link>
		<comments>http://www.blogpotato.de/2010/01/08/evergreen-shop-ein-xtc-fork-von-estelco/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 11:56:10 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/?p=542</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Darauf hat die Welt gewartet. Echt jetzt. Ganz ehrlich. Ich meine, xt:Commerce in der 3er Version <em>ist</em> in die Jahre gekommen und, zumindest offiziell, von Veyton abgelÃ¶st. Seit Jahren quÃ¤len wir uns mit den UnzulÃ¤nglichkeiten: <a href="http://www.blogpotato.de/category/xtcommerce/">Schlechter Code, noch schlechteres Markup, miese SEO</a>. Mir vÃ¶llig unverstÃ¤ndlich, wieso es jahrelang gedauert hat, bis jemand auf das naheliegendste kommt: Wir machen vom xt:Commerce, der ja selbst ein Fork von <a href="http://www.oscommerce.de/">os:Commerce</a> ist, <a href="http://www.xtc-load.de/2010/01/evergreen-1-1-beta-veroffentlicht/">einfach einen Fork</a>. Ey, Allder, das ist so genial, die Idee so unique, dass es schon wieder...
]]></description>
			<content:encoded><![CDATA[<p>Darauf hat die Welt gewartet. Echt jetzt. Ganz ehrlich. Ich meine, xt:Commerce in der 3er Version <em>ist</em> in die Jahre gekommen und, zumindest offiziell, von Veyton abgelÃ¶st. Seit Jahren quÃ¤len wir uns mit den UnzulÃ¤nglichkeiten: <a href="http://www.blogpotato.de/category/xtcommerce/">Schlechter Code, noch schlechteres Markup, miese SEO</a>. Mir vÃ¶llig unverstÃ¤ndlich, wieso es Jahre gedauert hat, bis jemand auf das naheliegendste kommt: Wir machen vom xt:Commerce, der ja selbst ein Fork von <a href="http://www.oscommerce.de/">os:Commerce</a> ist, <a href="http://www.xtc-load.de/2010/01/evergreen-1-1-beta-veroffentlicht/">einfach einen Fork</a>. Ey, Allder, das ist so genial, die Idee so unique, dass es schon wieder&#8230;</p>
<p>&#8230;BlÃ¶dsinn ist! Jetzt mal ernsthaft: <a href="http://www.gambio.de/">Gambio</a>, <a href="http://www.commerce-seo.de/">Commerce:SEO</a>, <a href="http://www.ecb-shop">Ecombase-Shop</a>, <a href="http://www.xtc-modified.org/">xtc:Modified</a>. Und mindestens zehn vergessen. Bei den ganzen Forks sollte man langsam echt mal aufpassen, dass man noch genug Messer im Haus hat. Ãœberall schieÃŸen die Abgabelungen mit Mini- bzw. Micro-Teams an Programmieren aus dem Boden, einen guten Frontend-Developer hat keiner und man wurschtelt lustig vor sich hin anstatt KrÃ¤fte zu bÃ¼ndeln &#8211; und nur bei Gambio und Ecombase ist Substanz hinter der ganzen Geschichte zu erkennen.</p>
<p>Ich glaub ja fast, ich mach einfach mal nen <a href="http://svnbook.red-bean.com/en/1.1/ch04s06.html">svn-tag</a> aus meinem trunk, geb ihm nen lustigen Namen und publiziere meinen eigenen Fork. Dann hÃ¤tten wir zumindest das Frontend-Problem mal im Griff.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2010/01/08/evergreen-shop-ein-xtc-fork-von-estelco/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Moneybookers &#8211; das Armutszeugnis einer Alternative [upd]</title>
		<link>http://www.blogpotato.de/2009/03/06/moneybookers-das-armutszeugnis-einer-alternative-2/</link>
		<comments>http://www.blogpotato.de/2009/03/06/moneybookers-das-armutszeugnis-einer-alternative-2/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 10:00:32 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/?p=502</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p><a href="http://www.paypal.de/">Paypal</a> ist scheiÃŸe. Wissen wir alle. Man braucht nur ein paar Schlagworte in die <a href="http://www.google.com/search?q=paypal+kritik">Suchmaschine seiner Wahl</a> einzuhÃ¤mmern, um genug Lesestoff fÃ¼r lange Winterabende zu haben. Man kann die Abende aber auch nutzen, um sich nach Alternativen umzusehen. <a href="http://www.moneybookers.de/">Moneybookers</a> ist so eine - wenn man nicht gerade <a href="http://www.weinhandel-bgg.de/">Rotwein</a> verkauft. Und die sind, <a href="http://www.shopbetreiber-blog.de/2009/02/27/moneybookers-ebay/">nach dem Ritterschlag durch eBay</a>, jetzt auch mehr oder weniger hoffÃ¤hig.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.paypal.de/">Paypal</a> ist scheiÃŸe. Wissen wir alle. Man braucht nur ein paar Schlagworte in die <a href="http://www.google.com/search?q=paypal+kritik">Suchmaschine seiner Wahl</a> einzuhÃ¤mmern, um genug Lesestoff fÃ¼r lange Winterabende zu haben. Man kann die Abende aber auch nutzen, um sich nach Alternativen umzusehen. <a href="http://www.moneybookers.de/">Moneybookers</a> ist so eine &#8211; wenn man nicht gerade <a href="http://www.weinhandel-bgg.de/">Rotwein</a> verkauft. Und die sind, <a href="http://www.shopbetreiber-blog.de/2009/02/27/moneybookers-ebay/">nach dem Ritterschlag durch eBay</a>, jetzt auch mehr oder weniger hoffÃ¤hig.</p>
<p>Tendenziell eher weniger. Ich mÃ¶chte das integrieren, aber das ist irgendwie nur mÃ¶glich, wenn man sich dabei selbst arm macht. Eine Testumgebung analog zur <a href="http://www.sandbox.paypal.com/">Paypal Sandbox</a> fÃ¤llt aus wegen gibt&#8217;s nicht. Die Folge ist eine halbseidene Integration, die, wenn sie mal genutzt wird, eigentlich immer Probleme macht. Nur: Debuggen kann man das halt nicht. Keine Ahnung, wie das eBay gemacht hat, aber da gibt&#8217;s wohl Kunden erster und zweiter Klasse. </p>
<p>Wobei ich mir eher wie ein Kunde der Holzstuhlklasse vorkomme. Denn wenn man den Merchant Support per E-Mail was fragt muss man sich in Geduld Ã¼ben. Meine Anfrage ist auf jeden Fall seit drei Tagen offen und es gab noch nicht mal den gefÃ¼rchteten Autoreply. </p>
<p>So wird das nichts, Moneybookers! Das ist schlicht und ergreifend ein Armutszeugnis. Sowohl technisch als auch was den Support angeht! Dann lieber <a href="http://www.sofortueberweisung.de/">SofortÃ¼berweisung</a> einbauen. Das funktioniert und die Akzeptanz ist ungefÃ¤hr fÃ¼nf mal so hoch wie bei Moneybookers.</p>
<p><strong>[update]:</strong> Komisch, dass man immer erst bloggen muss. Moneybookers hat sich aber auf jeden Fall mittlerweile gemeldet und das, was am Telefon noch kategorisch verneint wurde (Testumgebung), gibt es sehr wohl und Moneybookers kann ZugÃ¤nge auch in Testaccounts umwandeln. Da fragt man sich schon: Warum nicht gleich so und warum nicht schneller?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2009/03/06/moneybookers-das-armutszeugnis-einer-alternative-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Handy-Shop-Modul fÃ¼r xt:Commerce</title>
		<link>http://www.blogpotato.de/2008/10/14/handy-shop-modul-fur-xtcommerce/</link>
		<comments>http://www.blogpotato.de/2008/10/14/handy-shop-modul-fur-xtcommerce/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 18:52:14 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/?p=426</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Wer jetzt nicht so viel mit Pyramiden, SchwippbÃ¶gen oder Kuckucksuhren anfangen kann und daher lieber Handys Ã¼bers Internet verticken mÃ¶chte, steht schnell vor einem Problem ganz besonderer KomplexitÃ¤t: WKZ-Klassen, Tarife, Netze, VertrÃ¤ge, verschiedene Anbieter. Und das ganz bitte auch noch in xt:Commerce integriert. Zwar gibt es noch keine LÃ¶sung fÃ¼r einen solchen Online-Shop, aber fÃ¼r [...]]]></description>
			<content:encoded><![CDATA[<p>Wer jetzt nicht so viel mit <a href="http://www.erzgebirge-palace.com/Weihnachtspyramiden:::52.html">Pyramiden</a>, <a href="http://www.erzgebirge-palace.com/Schwibboegen:::108.html">SchwippbÃ¶gen</a> oder <a href="http://www.schwarzwald-palast.de/">Kuckucksuhren</a> anfangen kann und daher lieber Handys Ã¼bers Internet verticken mÃ¶chte, steht schnell vor einem Problem ganz besonderer KomplexitÃ¤t: WKZ-Klassen, Tarife, Netze, VertrÃ¤ge, verschiedene Anbieter. Und das ganz bitte auch noch in xt:Commerce integriert. </p>
<p>Zwar gibt es noch keine LÃ¶sung fÃ¼r einen solchen Online-Shop, aber fÃ¼r xt:Commerce springt die GÃ¶rlitzer Firma Kiwi-Vision GbR mit ihrem â€ž<a href="http://www.dein-webshop.de/handyshop.html">Kandy-Modul</a>â€? fÃ¼r den Open-Source-Shop in die Bresche, das alle gÃ¤ngigen AbhÃ¤ngigkeiten, die in der Mobilfunkbranche existieren, kennt. Man kann das Modul entweder separat erwerben oder den kompletten Shop drumherum gleich mit.<br />
Wie so so viele andere Module auch ist das Kandy-Modul explizit auf xt:Commerce 3.0.4 SP2 ausgelegt &#8211; ein Umstand, der sicherlich der schlechten (sprich: nicht vorhandenen) AbwÃ¤rtskompatibilitÃ¤t von xt:Commerce an und fÃ¼r sich geschuldet ist, aber da sich die Entwicklung der nÃ¤chsten Version des Shops, welche Versionsnummer auch immer die haben wird, wohl noch Ã¼ber geraume Zeit hinzieht, dÃ¼rfte das kein allzu groÃŸer Fallstrick sein. </p>
<p>Das Modul biete viele interessante Features, die das Administrieren eines Handy-Online-Shops in vielerlei Hinsicht erleichtern:</p>
<h3>Verwaltung von VertrÃ¤gen</h3>
<p>Interessant bei einem Handy-Shop ist natÃ¼rlich primÃ¤r mal die Verwaltung von VertrÃ¤gen &#8211; kauft ja nicht jeder wie ich ein <a href="http://www.blogpotato.de/2008/04/25/das-ubergangshandy/">Handy ohne Vertrag</a>, nur um sich kurze Zeit spÃ¤ter wieder ein <a href="http://www.blogpotato.de/2008/06/10/das-ubergangshandy-hat-ausgedient/">neues zu kaufen</a>. VertrÃ¤ge lassen sich Ã¼ber den Admin neu anlegen, aktivieren und deaktivieren sowie natÃ¼rlich lÃ¶schen und bearbeiten. Dabei kann der Shopbetreiber entscheiden, ob der Vertrag in einer Kurzliste angezeigt wird oder nicht und kann darÃ¼ber hinaus Aliasnamen vergeben, die sich intern und Ã¶ffentlich unterscheiden dÃ¼rfen. Als Komfortmerkmale fÃ¼r den Kunden steht durch das Modul der Download einer Informationsdatei zum Vertrag sowie der Vertrag selbst als Dateidownload zur VerfÃ¼gung. Beschreibungen und Tarifkonditionen kÃ¶nnen darÃ¼ber hinaus mit angegeben werden, um den Kunden mit noch mehr Informationen zum Vertrag zu versorgen.<br />
VertrÃ¤ge kÃ¶nnen einzelnen Providern, Netzen, WKZ- und Tarifklassen zugewiesen werden, die Angabe von Vertragsprovision, GrundgebÃ¼hr und der Mindestumsatz versteht sich von selbst. Auch eine termingesteuerte Vertragsprovision ist mÃ¶glich. Diese Einstellungen sowie die Angabe von Startguthaben, Paketpreis und Anschlusspreis kÃ¶nnen Ã¼ber die Vertragsverwaltung vorgenommen werden, hier kann auch eine Tarifeignung eingestellt werden.</p>
<h3>Provider, Tarifklassen, WKZ-Klassen und Netze</h3>
<p>SelbstverstÃ¤ndlich kÃ¶nnen auch Tarifklassenwerte festgelegt werden und Provider, WKZ-Klassen, Netze und Tarifklassen bearbeitet, angelegt oder gelÃ¶scht werden. Hier wird auch ein Antragsformular auf Providerebene als Downloaddatei zur VerfÃ¼gung gestellt sowie Logos fÃ¼r Netze und Provider.</p>
<h3>GerÃ¤te und Verbindungen</h3>
<p>Mit dem â€žKandy-Modulâ€œ kÃ¶nnen anschlieÃŸend schnell und einfach Produkte aus dem Shop als VertragsgerÃ¤te definiert und an die vorher angelegten VertrÃ¤ge gebunden werden. AuÃŸerdem lassen sich dann die GerÃ¤tepreise bei Vertragsbindungen festgelegen. ZusÃ¤tzlich kann der Shop-Betreiber WKZ-Klassen vorgeben und GerÃ¤tedaten zuweisen.</p>
<h3>Shopbereich</h3>
<p>Im Shop selbst wird dem Kunden das Handy, welches er ausgewÃ¤hlt hat, mit dem Preis ohne Vertrag angezeigt. ZusÃ¤tzlich wird der â€žabâ€œ-Preis, fÃ¼r den das Handy mit dem gÃ¼nstigsten Vertrag erworben werden kann, angezeigt.</p>
<h3>Produktdetails</h3>
<p>Der Kunde kann beim Produkt den Tarif im Bereich GerÃ¤tedetails auswÃ¤hlen. Der GerÃ¤t kann aber genauso Ã¼ber das Handynetz, mit Hilfe einer Suchmaske (Tariffinder) oder ohne Tarif ausgewÃ¤hlt werden. Zudem kÃ¶nnen die Tarife in der Netzauswahl-Ansicht gruppiert werden.</p>
<h4>TarifwÃ¤hler</h4>
<p>Im TarifwÃ¤hler wÃ¤hlt der Kunde einfach den gewÃ¼nschten Vertrag aus und bekommt dabei alle passenden GerÃ¤te und Tarifinformationen angezeigt.</p>
<h4>VertragsverlÃ¤ngerung</h4>
<p>In diesem Bereich steht dem Kunden ein Formular zur VerfÃ¼gung, in welches er seine Kundendaten und das gewÃ¼nschte Handy eintragen kann. Dieses Formular wird dann an eine E-Mail-Adresse gesendet, die Ã¼ber das Kandy-Modul definierbar ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2008/10/14/handy-shop-modul-fur-xtcommerce/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wieder einer (was: Tabellenlos um jeden Preis)</title>
		<link>http://www.blogpotato.de/2008/06/17/wieder-einer-was-tabellenlos-um-jeden-preis/</link>
		<comments>http://www.blogpotato.de/2008/06/17/wieder-einer-was-tabellenlos-um-jeden-preis/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 08:42:04 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2008/06/17/wieder-einer-was-tabellenlos-um-jeden-preis/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Lange nix zu xt:Commerce und Konsorten gehabt, aber das hier muss gerade mal sein: Was ist daran so schwer zu verstehen? Tabellenfrei heiÃŸt nicht zwangslÃ¤ufig, dass man die Ã¼berall rausmachen muss, sondern nur da, wo sie rein layouttechnischen Charakter haben. Typisches Beispiel fÃ¼r eine Tabelle: Der Warenkorb. commerce:SEO, dass damit wirbt, ein tabellenfreier, SEO-optimierter Shop [...]]]></description>
			<content:encoded><![CDATA[<p><em>Lange nix zu xt:Commerce und Konsorten gehabt, aber das hier muss gerade mal sein:</em></p>
<p>Was ist daran so schwer zu verstehen? Tabellenfrei heiÃŸt nicht zwangslÃ¤ufig, dass man die Ã¼berall rausmachen muss, sondern nur da, wo sie rein layouttechnischen Charakter haben. Typisches Beispiel fÃ¼r eine Tabelle: Der Warenkorb.<br />
<a href="http://www.commerce-seo.de/">commerce:SEO</a>, dass damit wirbt, ein tabellenfreier, SEO-optimierter Shop zu sein, hat natÃ¼rlich auch dort die Tabellen eliminiert. Und ein Blick in den <a href="http://commerce-seo-v1.seo-template.de/">Quelltext der Startseite</a> zeigt auch schreckliches:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">align</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;center&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;page_container&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;page_inner_container&quot;</span>&gt;</span>
      <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;innerBox&quot;</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;outerContainer&quot;</span>&gt;</span>
          <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;innerContainer&quot;</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;wrap&quot;</span>&gt;</span>
              <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;middle&quot;</span>&gt;</span>
                <span style="color: #808080; font-style: italic;">&lt;!-- Hauptteil --&gt;</span>
                  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;mainbody&quot;</span>&gt;</span>
                    [...]
                  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
              <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
          <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
      <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>Will man nicht haben. Wirklich nicht. FÃ¼r die Seite, die den Shop bewirbt, ein tabellenbasiertes Joomla-Template zu nutzen, zeugt auch von Weitblick.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2008/06/17/wieder-einer-was-tabellenlos-um-jeden-preis/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>What can brown do for you?</title>
		<link>http://www.blogpotato.de/2007/12/20/what-can-brown-do-for-you/</link>
		<comments>http://www.blogpotato.de/2007/12/20/what-can-brown-do-for-you/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 16:12:43 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Analog]]></category>
		<category><![CDATA[Blog around the Clock]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/12/20/what-can-brown-do-for-you/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/analog/" title="Analog">Analog</a><a href="http://www.blogpotato.de/category/blog-around-the-clock/" title="Blog around the Clock">Blog around the Clock</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Ich bin ein Post-Fan. Ich habe fÃ¼nf Jahre fÃ¼r das Unternehmen gearbeitet und es hat mir sehr viel SpaÃŸ gemacht, ein Teil des Gesichtes zu sein, mit dem die Post in der Ã–ffentlichkeit wahrgenommen wird. Was aber nicht zwangslÃ¤ufig bedeutet, dass ich hier mit der Unternehmensbrille rumlaufe und alles auf Gedeih und Verderb gut heiÃŸen [...]]]></description>
			<content:encoded><![CDATA[<p>Ich bin ein <a href="http://www.deutschepost.de/">Post</a>-Fan. Ich habe fÃ¼nf Jahre fÃ¼r das Unternehmen gearbeitet und es hat mir sehr viel SpaÃŸ gemacht, <a href="http://www.blogpotato.de/2007/10/27/harry-potter-zur-geisterstunde-â€žihr-verarscht-mich-dochâ€?/">ein Teil des Gesichtes zu sein, mit dem die Post in der Ã–ffentlichkeit wahrgenommen wird</a>. Was aber nicht zwangslÃ¤ufig bedeutet, dass ich hier mit der Unternehmensbrille rumlaufe und alles auf Gedeih und Verderb gut heiÃŸen wÃ¼rde. Das Filialkonzept ist mehr als Ã¼berarbeitungswÃ¼rdig und auch die Fremdvergabe von Zustelldiensten im Paketbereich trÃ¤gt nicht unbedingt dazu bei, dass die Post beim Endkunden positiv(er) ankommt, wenn denn die QualitÃ¤t der Zustellung nicht (mehr) stimmt. Das sieht dann so aus wie bei den <a href="http://www.pin-group.net/">alternativen</a> <a href="http://www.postino.info/">Zustelldiensten</a> im Briefdienst. Da war, zumindest zu meiner aktiven Zeit, â€žPfusch durch Unwissenheitâ€? das primÃ¤re Erkennungsmerkmal. </p>
<p>Aber das soll hier gar nicht Thema sein. Heute geht es um die Frachtdienstleistung mit Fokus auf den internationalen Versand. Das GeschÃ¤ft Ã¼ber das Internet boomt. Das fÃ¼hrt zwangslÃ¤ufig dazu, dass mehr Pakete verschickt werden. Man kann das ganze kreativ angehen und wie <a href="http://www.dhl.de/">DHL</a> beispielsweise dieses Jahr <a href="http://www.dhl.de/dhl?tab=1&amp;skin=hi&amp;check=yes&amp;lang=de_DE&amp;xmlFile=3001521">auch Sonntags ausliefern</a> &#8211; oder pragmatisch wie DPD und GLS, die nicht mehr in der Lage sind, irgendwas bis Weihnachten auszuliefern, das <a href="http://www.test.de/themen/freizeit-reise/meldung/-/1486289/1486289/">nicht gestern bei ihnen war</a>. So innovativ die Post respektive DHL im Inland ist, so unglaublich dilettantisch wird sie, wenn es um den internationalen Versand geht.</p>
<p>Unsere <a href="http://www.erzgebirge-palace.com/">Erzgebirge-Produkte</a> versenden wir ja auch international. Das Paket bekommt bei uns einen schicken internationalen Paketaufkleber, auf dem auch bereits die Sendungsnummer steht, mit der dieses auf die Reise gehen wird. Nur hat der EmpfÃ¤nger nichts davon. Geht die Sendung beispielsweise in die USA, dann kennt das Tracking von <a href="http://www.dhl-usa.com/">DHL USA</a> die Sendung schlicht und ergreifend nicht. Das hat einen einfachen Grund: Das Paket wird auf US-Boden nicht mehr von DHL, sondern vom <a href="http://www.usps.com/">US Postal Service</a> weiter befÃ¶rdert. Ob DHL Deutschland der eigene US-Ableger einfach nur zu teuer ist oder das ganze aufgrund alter VertrÃ¤ge, als das alles noch verstaatlicht war, geschieht, entzieht sich dabei meiner Kenntnis. Apropos kennen: USPS kennt die Nummer natÃ¼rlich nicht, denn die wÃ¼rfeln sich eine neue. Die bekommt man dann von DHL Deutschland auf telefonische Nachfrage &#8211; ein vom Workflow her eher unpraktikables Vorgehen, wenn man mehr als ein Paket pro Monat international verschickt. In Zeiten globaler Vernetzung ist es mir aber ein RÃ¤tsel, warum man nicht Trackingnummern entwickeln kann, die Carrier-Ã¼bergreifend vom Absender bis zum EmpfÃ¤nger gleich bleiben. Oder zumindest unterhalb der Carrier Schnittstellen zu implementieren, um dem Kunden das Tracking mit der ihm bekannten Nummer durchgÃ¤ngig zu ermÃ¶glichen. Denn DHL Deutschland gibt fÃ¼r die ursprÃ¼ngliche Trackingnummer nur &#8216;Sendung ist in Transport ins Zielland aufgenommen&#8217; aus und zwar bis sie beim EmpfÃ¤nger vor der TÃ¼r steht. Das bekommen sie dann aber wieder mit, dazwischen ist ein schwarzes Loch.<br />
DHL hat oder will keine Ahnung haben, was mit dem Paket ist, sobald es deutschen Boden verlÃ¤sst. So bekommt man auf Nachfrage schonmal eine irische Trackingnummer und einen Carrier genannt, der aber im Internet quasi unauffindbar ist und der nach eigener Aussage schon seit Jahren keine Pakete fÃ¼r DHL mehr transportiert. Das Ã¼ber Umwege bei DHL UK aufgetane Tracking ist denn auch nur Augenwischerei &#8211; meint zumindest DHL Deutschland. Warum das Paket aber im Paketzentrum vor sich hingammelt wissen sie auch nicht. Und auch nicht, warum es nicht zurÃ¼ckgeschickt wird. Aber da, wo das Tracking behauptet, dass es sei, wÃ¤re es angeblich nicht. Woher sie das wissen wissen sie aber nicht. </p>
<p>Alles in allem also alles sehr unbefriedigend. Was uns zur Ausgangsfrage, einem Werbespruch von <a href="http://www.ups.com/">UPS</a>, den sie in Deutschland aus naheliegenden GrÃ¼nden nicht benutzen, zurÃ¼ckbringt. Eine Menge kÃ¶nnten sie tun, wenn sie nur nicht so schrecklich ehrgeizig wÃ¤ren. ZunÃ¤chst mal ist deren Preisstaffel eher undurchsichtig, das Schicksal teilen sie aber mit den anderen Paketdienstleistern. Aber man kann ja den Preis direkt im Internet erfragen. FÃ¼r ein Paket mit einem Gewicht von 3kg in die USA sind aber 115 Euro alles andere als ein guter Preis &#8211; egal, ob wir einen <a href="http://www.erzgebirge-palace.com/Nussknacker/Weihnachtsmann/Christian-Ulbricht-Nikolaus-mit-Baum-rustikal-51-cm::4610.html">NuÃŸknacker</a> fÃ¼r 160 Euro oder ein <a href="http://www.erzgebirge-palace.com/Raeuchermaenner/Berufe/Kantenhocker-Holzfaeller-16-cm::981.html">RÃ¤uchermÃ¤nnchen</a> fÃ¼r 65. Und das ist schon der billigste Tarif. Wobei, nicht wirklich. Es ist &#8216;Expedited Shipping&#8217; und innerhalb einer Woche in den USA. Die Tariftabelle kennt aber durchaus gÃ¼nstigere Tarife im Bereich &#8216;Standard Shipping&#8217;. Die gibt es dann dummerweise aber nicht fÃ¼r die USA. Wobei man sich die Information aus einer anderen Tabelle raussuchen muss. Und da fragt man sich schon, warum das so ist. Ich kÃ¶nnte durchaus damit leben, wenn das Paket zwei Wochen Laufzeit hat &#8211; schneller ist DHL auch nicht und das Thema mit den Trackingnummern wÃ¤re vom Tisch, denn UPS schmeiÃŸt das dann auch in USA wieder auf einen UPS-Laster.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/12/20/what-can-brown-do-for-you/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>xt:C 3.1 &#8211; vielleicht oder auch doch nicht, aber schon mal gar nicht jetzt</title>
		<link>http://www.blogpotato.de/2007/12/18/xtc-31-vielleicht-oder-auch-doch-nicht-aber-schon-mal-gar-nicht-jetzt/</link>
		<comments>http://www.blogpotato.de/2007/12/18/xtc-31-vielleicht-oder-auch-doch-nicht-aber-schon-mal-gar-nicht-jetzt/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 07:24:58 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/12/18/xtc-31-vielleicht-oder-auch-doch-nicht-aber-schon-mal-gar-nicht-jetzt/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Die Kommunikationspolitik von xt:Commerce ist, gelinde gesagt, zum Kotzen. GroÃŸspurig wurde am 6. Dezember die Freigabe von 3.1, die sich als 3.04 SP2.2 seit gefÃ¼hlten 100 Jahren in der Entwicklung befindet, angekÃ¼ndigt. Der Post im Blog ist mittlerweile verschwunden, nur der Google-Cache kennt die Wahrheit noch: Von der AnkÃ¼ndigung ist nichts weiter geblieben als ein [...]]]></description>
			<content:encoded><![CDATA[<p>Die Kommunikationspolitik von <a href="http://www.xt-commerce.com/">xt:Commerce</a> ist, gelinde gesagt, zum Kotzen. GroÃŸspurig wurde am 6. Dezember die Freigabe von 3.1, die sich als 3.04 SP2.2 seit gefÃ¼hlten 100 Jahren in der Entwicklung befindet, angekÃ¼ndigt. Der Post im Blog ist mittlerweile verschwunden, nur der <a href="http://209.85.135.104/search?q=cache:EcD8CUiGyO4J:www.xt-commerce.com/blog/module/releasedatum-xtcommere-31-multistore-edition.html+http://www.xt-commerce.com/blog/module/releasedatum-xtcommere-31-multistore-edition.html&amp;hl=de&amp;ct=clnk&amp;cd=1&amp;client=safari">Google-Cache</a> kennt die Wahrheit noch:<br />
<a href="http://www.blogpotato.de/wp-content/uploads/2007/12/release-xtc-31-google.png" rel="lightbox"><img src="http://www.blogpotato.de/wp-content/uploads/2007/12/release-xtc-31.png" alt="Release xt:C 3.1"  /></a></p>
<p>Von der AnkÃ¼ndigung ist nichts weiter geblieben als ein paar Demo-Shops, die aktuell offline sind und eine AnkÃ¼ndigung, die auch irgendwelche LizenzÃ¤nderungen ankÃ¼ndigt, im Support-Bereich (<a href="http://blog.xtc-skript.de/2007/12/14/xtcommerce-31-die-unzureichende-stellungnahme-von-mario-zanier/">hier im Wortlaut</a>). Und wenn man so manchen <a href="http://www.xt-commerce.com/forum/showpost.php?p=275686&amp;postcount=5">Support-Kommentar</a> glauben darf, dann sind die Demos noch nicht mal final. Es darf also weiter gespannt auf <del>3.04 SP2.2</del><ins>3.1</ins> gewartet werden. </p>
<p>Vielsagend in dem Zusammenhang auch die BeitrÃ¤ge <a href="http://www.ecombase.de/forum/index.php?s=&amp;showtopic=6953&amp;view=findpost&amp;p=38846">[1]</a>, <a href="http://www.ecombase.de/forum/index.php?s=&amp;showtopic=6953&amp;view=findpost&amp;p=38854">[2]</a> von Leuten, die im Mutterschiff als Supportler auftreten, um sich dann aus der Diskussion bei ecombase wieder auszuklinken, ohne die angeblichen Fehler richtig zu stellen. Woran das mit der Fehlinformation wohl liegen mag? Sicherlich nicht an der guten, offenen Kommunikationspolitik von xt:Commerce.</p>
<p>Mal schnell eine AnkÃ¼ndigung rauszuhauen, die dann kommentarlos wieder gelÃ¶scht und vor allem auch nicht eingehalten wird legt den Verdacht nahe, dass bei xt:Commerce eine gewisse Panik ob der sich abzeichnenden <a href="http://www.magentocommerce.com/">starken Konkurrenz</a> ausbricht, anders kann ich mir nicht erklÃ¤ren, wieso man mit derart blindem Aktionismus sehenden Auges ungebremst gegen die Wand laufen wollte. Mal sehen, wie das weitergeht. Aber eigentlich kann es mir auch egal sein. Die 3.04 SP2.1 lÃ¤uft ja.</p>
<p>[tags]xt:commerce, xt:c, 3.1, 3.04 SP 2.2, release[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/12/18/xtc-31-vielleicht-oder-auch-doch-nicht-aber-schon-mal-gar-nicht-jetzt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>xt:Commerce 3.1 kommt nÃ¤chste Woche</title>
		<link>http://www.blogpotato.de/2007/12/06/xtcommerce-31-kommt-nachste-woche/</link>
		<comments>http://www.blogpotato.de/2007/12/06/xtcommerce-31-kommt-nachste-woche/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 11:15:49 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/12/06/xtcommerce-31-kommt-nachste-woche/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Im xt:Commerce-eigenen Blog wurde heute das VerÃ¶ffentlichungsdatum fÃ¼r xt:C 3.1 bekannt gegeben. NÃ¤chsten Donnerstag soll es soweit sein. Derweil ist 3.04 SP2.2 noch nicht dem Betastadium entwachsen, aber es ist mal anzunehmen, dass 3.1 einfach eine umgelabelte 3.04 SP2.2 sein wird. Damit steht zu befÃ¼rchten, dass sich Template-technisch nicht wirklich etwas verbessert, denn das mit [...]]]></description>
			<content:encoded><![CDATA[<p>Im xt:Commerce-eigenen Blog wurde heute das <a href="http://www.xt-commerce.com/blog/module/releasedatum-xtcommere-31-multistore-edition.html">VerÃ¶ffentlichungsdatum fÃ¼r xt:C 3.1</a> bekannt gegeben. NÃ¤chsten Donnerstag soll es soweit sein.</p>
<p>Derweil ist 3.04 SP2.2 noch nicht dem Betastadium entwachsen, aber es ist mal anzunehmen, dass 3.1 einfach eine umgelabelte 3.04 SP2.2 sein wird. Damit steht zu befÃ¼rchten, dass sich Template-technisch nicht wirklich etwas verbessert, denn das mit der ersten SP2.2-Beta gelieferte <em>tabellenlose</em> Template ist eher ein schlechter Witz in Bezug auf Semantik gewesen, Ã¤hnlich denen, <a href="http://www.blogpotato.de/2006/12/18/tabellenlos-um-jeden-preis/">die man vor einem Jahr im Shop verkauft hat</a>.</p>
<p>Es gibt einige sinnvolle Features in <del>3.04 SP2.2</del><ins>3.1</ins>, darunter ein Plugin-Manager und die MÃ¶glichkeit, Multistores anzulegen. Schaut man sich die Screenshots im <a href="http://www.xt-commerce.com/forum/forumdisplay.php?f=221">Beta-Forum</a> an, dann wohl darÃ¼ber hinaus noch jede Menge Eye-Candy im Admin-Bereich. Gerade aber mit Multistore und Plugin-Manager dÃ¼rfte eines klar sein: Ein Update von 3.04 SP2.1 auf <del>3.04 SP2.2</del><ins>3.1</ins> ist selbst bei einem nur minimal modifizierten Shop eher unmÃ¶glich. Selbst wenn man alle Ã„nderungen gut dokumentiert hat dÃ¼rften die Code-Ã„nderungen so weitreichend sein, dass das keinen SpaÃŸ machen wird. </p>
<p>Bleibt zu hoffen, dass man Altlasten beseitigt hat, <a href="http://www.blogpotato.de/2007/01/10/jager-der-versteckten-tabellen/">Markup im php-Code beispielsweise</a>, was das entfernen von Layouttabellen zur wahren Herausforderung gemacht hat, oder die <a href="http://www.blogpotato.de/2007/01/10/sprache-englisch-datumsformat-englisch/">inkonsequente Implementierung der Sprachen</a> &#8211; neben den im Beitrag angesprochenen Punkten sind in 3.04 SP2.1 unter anderem die Betreffzeilen der E-Mails, welche der Shop verschickt, nur in einer Sprache mÃ¶glich. </p>
<p>[tags]xt:c, xt:commerce, xtcommerce, beta, 3.04 SP2.2, 3.1, multishop, bugs[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/12/06/xtcommerce-31-kommt-nachste-woche/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS-basiertes xt:Commerce-Template auf YAML-Basis</title>
		<link>http://www.blogpotato.de/2007/06/19/css-basiertes-xtcommerce-template-auf-yaml-basis/</link>
		<comments>http://www.blogpotato.de/2007/06/19/css-basiertes-xtcommerce-template-auf-yaml-basis/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 10:56:17 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/06/19/css-basiertes-xtcommerce-template-auf-yaml-basis/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Auch wenn ich in letzter Zeit mich intensiv mit xt:Commerce auseinandergesetzt habe &#8211; die Entwicklung rund um das Shopsystem ist etwas an mir vorbeigegangen. Nicht nur die Beta von 3.04 SP 2.2, die ein tabellenloses Layout mitbringen soll, liegt hier noch unbenutzt und vor allem uninstalliert rum, auch das finale Release des YAML-Templates fÃ¼r xt:Commerce [...]]]></description>
			<content:encoded><![CDATA[<p>Auch wenn ich in letzter Zeit mich intensiv mit xt:Commerce auseinandergesetzt habe &#8211; die Entwicklung rund um das Shopsystem ist etwas an mir vorbeigegangen. Nicht nur die Beta von 3.04 SP 2.2, die ein tabellenloses Layout mitbringen soll, liegt hier noch unbenutzt und vor allem uninstalliert rum, auch das finale Release des <a href="http://yaml.t3net.de/YAML-fuer-xt-Commerce.101.0.html">YAML-Templates</a> fÃ¼r xt:Commerce ist nicht so recht in meinen Fokus gerÃ¼ckt. BjÃ¶rn TeÃŸmann, der sich in Bezug auf die Entwicklung des Templates hauptverantwortlich zeigt, hat hier aber fÃ¼r Abhilfe gesorgt und mir darÃ¼ber hinaus noch den aktuellen Release Candidate zum Anschauen zur VerfÃ¼gung gestellt, mittlerweile ist die Version 1.0.2 erhÃ¤ltlich.</p>
<p>Das Template selbst kommt im schlichten Grau. Auch wenn BjÃ¶rn dieses nur als Grundlage fÃ¼r die eigene Arbeit ansieht, ein Antialias hÃ¤tte dem Schriftzug &#8216;Your Logo here&#8217; trotzdem gut zu Gesicht gestanden. Die Buttons kommen im Web 2.0-Look, ein Photoshop-Vorlage wÃ¤re aber zum schnellen Ã„ndern von Buttontexten hilfreich. Es gibt aber zwei verschiedene Arten Buttons, nÃ¤mlich gelbe und schwarze. Zusammen mit den diversen nicht verÃ¤nderten Originaldateien, wie etwa den hÃ¤sslichen Kundengruppe-Icons oder den Bewertungssternen, trÃ¤gt das nicht unbedingt zur Ãœbersichtlichkeit bei. </p>
<p>Ãœbersichtlich gestaltet sich hingegen der Quelltext. Leider gilt aber fÃ¼r die BoxÃ¼berschriften das bereits zum <a href="http://www.blogpotato.de/2007/01/11/alle-meine-uberschriften/">RedRiver-Template</a> gesagte: Die Wahrscheinlichkeit, dass es sich dabei um die wichtigsten Ãœberschriften auf der Seite handelt und daher der Einsatz von <tt>h1</tt> gerechtfertigt ist, dÃ¼rfte gegen null gehen. Diese wÃ¤re fÃ¼r den eigentlichen Header, der das oben angesprochene Bild enthÃ¤lt, wesentlich besser geeignet und man hÃ¤tte sich einen div-Container gespart. AuÃŸerdem ist es unter SEO-Gesichtspunkten sicherlich sinnvoller, dass Bild als Hintergrundbild einzubinden und den Text beispielsweise mit der Phark-Methode &#8216;verschwinden&#8217; zu lassen &#8211; wenn es denn Ã¼berhaupt unbedingt ein Bild im Header sein muss. Auch sollte der anklickbar sein. Meine Hand neigt stark dazu, den Schriftzug zu klicken, um zurÃ¼ck auf die Startseite zu kommen, was derzeit nicht von Erfolg gekrÃ¶nt ist.</p>
<p>An den Header schlieÃŸt sich die als Liste realisierte Navigation an. Allerdings ist nicht schlÃ¼ssig, warum die Liste selbst noch einmal in einen div-Container verpackt und fÃ¼r was das leere <tt>&lt;a id="navigation" name="navigation"&gt;&lt;/a&gt;</tt>-Element. Wenn es da nur darum geht eine Sprungmarke zu setzen, das lÃ¤sst sich auch nur mit einer ID erreichen, was alle modernen Browser mittlerweile als Anker nutzen kÃ¶nnen. Auch sonst finden sich innerhalb der Anchor-Tags noch einmal span-Elemente, die nicht nur auf den ersten Blick Ã¼berflÃ¼ssig erscheinen. </p>
<p>Im Hauptbereich ist die Breacrumb-Navigation keine Liste, ein Umstand, der sicherlich der Tatsache, dass sich das Markup hierfÃ¼r in den php-Dateien findet, geschuldet ist. Die Kategorien werden als korrekt verschachtelte Liste ausgegeben, der dafÃ¼r erforderliche php-Code ist noch um ein gutes StÃ¼ck kompakter und aufgerÃ¤umter als <a href="http://www.blogpotato.de/2006/11/16/xtc-und-semantisch-korrekter-code/">meine Adaption von gunnART&#8217;s Anpassungen</a>. Das CSS hingegen kaskadiert nicht, wodurch EinrÃ¼ckungen und auch hover-Effekte nur bis zur vierten Ebene vorhanden sind, was sich bei den EinrÃ¼ckungen in Hinblick auf die Ãœbersichtlichkeit durchaus argumentieren lÃ¤sst, beim Ãœberfahren mit der Maus oder beim AuswÃ¤hlen einer Kategorie ab der fÃ¼nften Ebene sollte dieser Zustand aber ersichtlich werden. Allerdings muss man vielleicht auch noch mal ans ReiÃŸbrett und die Shopstruktur Ã¼berdenken, benÃ¶tigt man tatsÃ¤chlich derart tief verschachtelte Kategorien.</p>
<p>Zu den Boxen selbst habe ich ja schon angemerkt, dass die Ãœberschrift erster Ordnung eher fehl am Platz ist. AuffÃ¤llig ist auch, dass bei allen Boxen die Ãœberschrift auÃŸerhalb eines div-Containers steht, wÃ¤hrend dieser selbst mitunter nur ein weiteres Blocklevel-Element, etwa eine unsortierte Liste, enthÃ¤lt. Da es kein Element gibt, mit dem sich die gesamte Box ansprechen lÃ¤sst und die Einzelelemente auch nicht durch ID referenzierbar sind ist ein einfaches Ausblenden oder Umgruppieren nur Ã¼ber das Markup, nicht jedoch Ã¼ber CSS mÃ¶glich. Als Beispiels mag hier der <a href="http://www.erzgebirge-palace.com/">Erzgebirge-Palast</a> dienen:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;boxContent&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h4</span>&gt;</span>Mehr <span style="color: #ddbb00;">&amp;uuml;</span>ber...<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h4</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.erzgebirge-palace.com/shop_content.php/coID/3/content/AGB&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;normal&quot;</span>&gt;</span>AGB<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.erzgebirge-palace.com/shop_content.php/coID/1/content/Versandinformationen&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;normal&quot;</span>&gt;</span>Versandinformationen<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.erzgebirge-palace.com/shop_content.php/coID/10/content/Zahlungsmoeglichkeiten&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;normal&quot;</span>&gt;</span>ZahlungsmÃ¶glichkeiten<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.erzgebirge-palace.com/shop_content.php/coID/11/content/Widerrufsrecht&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;normal&quot;</span>&gt;</span>Widerrufsrecht<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.erzgebirge-palace.com/shop_content.php/coID/7/content/Kontakt&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;normal&quot;</span>&gt;</span>Kontakt<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.erzgebirge-palace.com/shop_content.php/coID/70/content/Newsletter-RSS-Feeds&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;normal&quot;</span>&gt;</span>Newsletter/RSS-Feeds<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>Etwas mehr Aufmerksamkeit verdient die Besteller-Box. Wenn das keine sortierte Liste ist, was dann? Ich tendiere hier zu einer <tt>ol-dl</tt>-Kombi (leider scheint <a href="http://bs-markup.de/">BjÃ¶rn Seibert</a> den experimentellen Bereich eingestellt zu haben, deshalb hier auch kein Link, da mittlerweile auch der Google-Cache die Seite nicht mehr enthÃ¤lt), was dann in etwa so aussehen kÃ¶nnte:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;boxBestseller&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h4</span>&gt;</span>Unsere Bestseller<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h4</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ol</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">dl</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">dt</span>&gt;</span>Testprodukt 1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">dt</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">dd</span>&gt;</span>83,00 EUR<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">dd</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">dd</span>&gt;</span>zzgl. Versandkosten<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">dd</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">dl</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">dl</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">dt</span>&gt;</span>Testprodukt 2<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">dt</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">dd</span>&gt;</span>55,00 EUR<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">dd</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">dd</span>&gt;</span>zzgl. Versandkosten<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">dd</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">dl</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ol</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>Und bei einem div, der den Klassennamen <tt>hrDiv</tt> hat und eine horizontale Linie erzeugt, fragt man sich durchaus, warum man nicht einfach das dafÃ¼r gedachte <tt>hr</tt>-Element benutzt, bei dem ich sowieso der Meinung bin, dass es zu Unrecht ein Schattendasein fÃ¼hrt, da wohl noch immer viele damit die aus den Anfangszeiten des Webs bekannten Trennlinien assoziieren, ohne sich der GestaltungsmÃ¶glichkeiten mittels CSS auch fÃ¼r dieses Element bewusst zu sein.<br />
Das gilt im Ã¼brigen auch fÃ¼r die Definitionsliste, die sich fÃ¼r weit mehr sinnvoll einsetzten lÃ¤sst, als ihr Name vermuten lÃ¤sst. Entsprechende Ideen mag das obige Beispiel vermitteln, dass sich auch problemlos etwa auf die Rezensionsseite Ã¼bertragen lÃ¤sst.</p>
<p>An der ein oder anderen Stelle laufen einem <tt>br</tt>-Elemente Ã¼ber den Weg, deren einzige Aufgabe offensichtlich darin besteht, einen float zu clearen, was sich eigentlich auch an ein sowieso notwendiges Element binden lassen sollte.</p>
<p>BjÃ¶rn setzt fÃ¼r das Template auf den Transitional-Doctype von XHTML 1.0. Wer das ganze gegen die Strict-Variante validieren will muss neben den <a href="http://yaml.t3net.de/Valides-XHTML-mit-xt-C.163.0.html">hier gegebenen Tipps</a> zur ValiditÃ¤tsverbesserung unter anderem auch noch ein <tt>font</tt>-Tag im Checkout eliminieren. Das steckt nÃ¤mlich in den Sprachdateien beim &#8216;Bearbeiten&#8217;-Link.</p>
<p>Alle Formularelemente haben derzeit keine ID, wobei hier als pirmÃ¤rer schuldiger aber der Shop selbst anzusehen ist. Mit etwas Aufwand an den PHP-Dateien lÃ¤sst sich aber auch das realisieren, evtl. geht es sogar mit Smarty-Funktionen, ohne die Sourcefiles Ã¤ndern zu mÃ¼ssen. Nach Auskunft von BjÃ¶rn ist da wohl auch was in Arbeit. Damit wÃ¼rden sich dann auch Formulare besser und zugÃ¤nglicher gestalten lassen.</p>
<p>Ab und zu laufen einem dann doch noch Tabellen Ã¼ber den Weg. Die dÃ¼rften aber, wie etwa die Auflistung der Seiten beim Produktlisting oder auch im <a href="http://www.blogpotato.de/2007/01/10/jager-der-versteckten-tabellen/">Checkout</a>-<a href="http://www.blogpotato.de/2006/12/22/xtc-adressbucheintrage-beim-checkout/">Prozess</a> grÃ¶ÃŸtenteils im Source befinden und von daher mit einem Template nicht eliminierbar sein. Apropos Checkout-Prozess: Habe ich eigentlich schon erwÃ¤hnt, dass ich so langsam aber sicher die Silk-Icons von famfamfam.com nicht mehr sehen kann?</p>
<p>Die einzige berechtigte Tabelle, nÃ¤mlich der Warenkorb, lieÃŸe sich von der ZugÃ¤nglichkeit her noch verbessern, Anregungen dazu mag das <a href="http://macx.de/essays/barrierefrei/casestudies/tabellen.html">Beispiel auf macx.de</a> liefern.</p>
<p>Alles in allem bietet das YAML-Template eine solide Grundlage fÃ¼r die eigene Entwicklung eines CSS-basierten und weitestgehend layouttabellenfreien Templates, das nicht nach &#8216;Stange&#8217; aussieht. Bei der Gestaltung des ganzen helfen, nachdem eine Buttonvorlage ja fehlt, mÃ¶glicherweise die von <a href="http://www.dezinerfolio.com/">Deziner Folio</a> zur VerfÃ¼gung gestellten <a href="http://www.dezinerfolio.com/2007/05/06/ultimate-web-20-layer-styles/">Ebenenstil-</a> und <a href="http://www.dezinerfolio.com/2007/03/14/ultimate-web-20-gradients-free-download/">Verlaufs</a>vorlagen fÃ¼r Photoshop.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/06/19/css-basiertes-xtcommerce-template-auf-yaml-basis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flip burgers!</title>
		<link>http://www.blogpotato.de/2007/04/11/flip-burgers/</link>
		<comments>http://www.blogpotato.de/2007/04/11/flip-burgers/#comments</comments>
		<pubDate>Wed, 11 Apr 2007 06:43:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/04/11/flip-burgers/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Wenn es mÃ¶glich wÃ¤re, im Forum von xt:Commerce Signaturen zu nutzen, das hier wÃ¤re meine neue: Why are you working in the Web business if you&#8217;re not interested in it? Go flip burgers instead. Roger Johansson [tags]signatur, burger[/tags]]]></description>
			<content:encoded><![CDATA[<p>Wenn es mÃ¶glich wÃ¤re, im Forum von <a href="http://www.xt-commerce.com/">xt:Commerce</a> Signaturen zu nutzen, das hier wÃ¤re meine neue:</p>
<p><q><i>Why are you working in the Web business if you&#8217;re not interested in it? Go flip burgers instead.</i></q><br />
<cite><a href="http://www.456bereastreet.com/archive/200704/lame_excuses_for_not_being_a_web_professional/">Roger Johansson</a></cite></p>
<p>[tags]signatur, burger[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/04/11/flip-burgers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Voll aus dem Leben: Warum Hacks suboptimal sind</title>
		<link>http://www.blogpotato.de/2007/02/18/voll-aus-dem-leben-warum-hacks-suboptimal-sind/</link>
		<comments>http://www.blogpotato.de/2007/02/18/voll-aus-dem-leben-warum-hacks-suboptimal-sind/#comments</comments>
		<pubDate>Sun, 18 Feb 2007 12:14:18 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/02/18/voll-aus-dem-leben-warum-hacks-suboptimal-sind/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Je nach KomplexitÃ¤t eines Layouts kommt man um Griffe in die Trickkiste nicht herum, wenn es gilt, dem ein oder anderen Browser begreiflich zu machen, was man haben will. Jeder Webdeveloper hat einige dieser Hacks in der Schublade oder in den Lesezeichen und sie haben alle eines gemeinsam: Sie nutzen Fehler in der Interpretation von [...]]]></description>
			<content:encoded><![CDATA[<p>Je nach KomplexitÃ¤t eines Layouts kommt man um Griffe in die Trickkiste nicht herum, wenn es gilt, dem ein oder anderen Browser begreiflich zu machen, was man haben will. Jeder Webdeveloper hat einige dieser Hacks in der Schublade oder in den Lesezeichen und sie haben alle eines gemeinsam: Sie nutzen Fehler in der Interpretation von CSS und XHTML der Browser aus. Und damit hÃ¤ngt der ganze Hack an einem seidenen Faden: Ist der Fehler in der nÃ¤chsten Version des Browsers nÃ¤mlich behoben, ist der ganze Hack fÃ¼r die Katz oder fÃ¼hrt sogar zu komischen Ergebnissen.</p>
<p>So richtig zu spÃ¼ren bekommt man das aber eigentlich erst, seit der Internet Explorer 7 drauÃŸen ist. Denn der hat einige Bugs nicht mehr, die seine VergÃ¤ngerversionen noch hatten und die teilweise weidlich ausgenutzt wurden. So etwa, dass alle Varianten des Internet Explorer bis Version 6 einen Underscore vor einer Eigenschaft ignoriert haben. Man konnte also mit</p>
<div class="wp_syntax">
<div class="code">
<pre class="css" style="font-family:monospace;">	body <span style="color: #00AA00;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#F00</span><span style="color: #00AA00;">;</span>
		_background<span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FF0</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span></pre>
</div>
</div>
<p>eine rote Hintergrundfarbe fÃ¼r den <tt>body</tt> definieren, fÃ¼r den IE hingegen eine gelbe, da der nachfolgende <tt>_background</tt> aufgrund der Eigenschaften von CSS den vorhergenden <tt>background</tt> Ã¼berschreibt. NatÃ¼rlich nur beim Internet Explorer bis Version 6, denn der betrachtet <tt>_background</tt> und <tt>background</tt> als identisch. Alle anderen Browser nicht. Und deshalb funktionierte das. Bislang. Der IE 7 macht es nÃ¤mlich jetzt auch richtig.<br />
Und genau aus dem Grund sollte man auf die Empfehlung aus Redmond zur Abwechslung mal hÃ¶ren, die da lautet, fÃ¼r IE-spezifische notwendige Anpassungen doch bitte die <a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp">Conditional Comments</a> zu nutzen, die der Internet Explorer seit Version 5 unterstÃ¼tzt. Dann spart man sich auch <a href="http://www.xt-commerce.com/forum/version-3-0-x/41445-template-greenvalvet-2.html#post216780">derart nachgereichte BastellÃ¶sungen</a>. Ich wÃ¼rde im Ã¼brigen Abstand davon nehmen, die Conditional Comments direkt in die CSS-Datei zu schreiben. Zum einen werden die dann auch wieder von allen Browsern geladen, die das gar nicht nÃ¶tig haben und zum anderen sollte man HTML-Kommentare in CSS-Dateien nur dann einsetzen, wenn man scharf drauf ist, vom <a href="http://jigsaw.w3.org/">Validator</a> ein paar Fehlermeldungen um die Ohren geknallt zu bekommen. Aber jetzt verstehe ich wenigstens, was der Autor des Green Velvet Templates damit gemeint hat, dass <a href="http://www.xt-commerce.com/forum/version-3-0-x/41445-template-greenvalvet.html#post204912">Conditional Comments mehr Quelltext in der CSS-Datei erzeugen</a>. Und wenn er sich wirklich damit auskennen wÃ¼rde, dann wÃ¼sste er, dass Conditional Comments eben <em>kein</em> Hack sind.</p>
<p>[tags]xtc, xt:commerce, hacks, css, underscore hack, conditional comments[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/02/18/voll-aus-dem-leben-warum-hacks-suboptimal-sind/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Der Erzgebirge-Palast geht online [upd]</title>
		<link>http://www.blogpotato.de/2007/02/15/der-erzgebirge-palast-geht-online/</link>
		<comments>http://www.blogpotato.de/2007/02/15/der-erzgebirge-palast-geht-online/#comments</comments>
		<pubDate>Thu, 15 Feb 2007 20:16:06 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/02/15/der-erzgebirge-palast-geht-online/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Zeit, den Vorhang unseres Shopprojekts zu lÃ¼ften: Nach ziemlich genau fÃ¼nf Monaten Entwicklungszeit ist es soweit: Der Erzgebirge-Palast erblickt das Licht der Welt. SchwibbÃ¶gen, Pyramiden, NuÃŸknacker, RÃ¤uchermÃ¤nnchen und vieles mehr gibt es ab sofort unter www.erzgebirge-palace.com. Und natÃ¼rlich auch Artikel zum bevorstehenden Osterfest. Soviel zur Werbung. Neben allen hier verÃ¶ffentlichten Ã„nderungen sind noch viele weitere [...]]]></description>
			<content:encoded><![CDATA[<p>Zeit, den Vorhang unseres Shopprojekts zu lÃ¼ften:</p>
<p>Nach ziemlich genau fÃ¼nf Monaten Entwicklungszeit ist es soweit: Der Erzgebirge-Palast erblickt das Licht der Welt. <a href="http://www.erzgebirge-palace.com/">SchwibbÃ¶gen, Pyramiden, NuÃŸknacker, RÃ¤uchermÃ¤nnchen und vieles mehr</a> gibt es ab sofort unter www.erzgebirge-palace.com. Und natÃ¼rlich auch Artikel zum <a href="http://www.erzgebirge-palace.com/advanced_search_result.php/keywords/oster" title="Oster-Artikel im Erzgebirge-Palast">bevorstehenden Osterfest</a>.</p>
<p>Soviel zur Werbung. Neben allen hier verÃ¶ffentlichten Ã„nderungen sind noch viele weitere Anpassungen in die xt:Commece-Software geflossen, Ã¼ber den Daumen gepeilt wurde an ca. 300 Stellen Hand angelegt.</p>
<p>Viel Zeit ist dabei in die Anpassung des Templates investiert worden. Das Ergebnis ist ein komplett tabellenloses Layout, auch an Stellen, die durch eine mangelhafte Implementierung der Template-Engine nur durch Ã„nderungen an den php-Dateien in den Griff zu bekommen sind. Das Markup nimmt natÃ¼rlich auch auf semantische Gesichtspunkte RÃ¼cksicht und Tabellen sind an den Stellen, an denen tabellarischer Inhalt dargestellt wird, natÃ¼rlich noch vorhanden, aber <a href="http://www.macx.de/essays/barrierefrei/casestudies/tabellen.html">deutlich aufgebohrt worden</a>.</p>
<p>Alles ist noch nicht Gold, was glÃ¤nzt, so ist das Stylesheet derzeit noch sehr chaotisch und es dÃ¼rften sich einige Selektoren finden, die im Hinblick auf ihre Semantik auf jeden Fall noch Ã¼berarbeitungswÃ¼rdig sind. Aber jetzt ist erstmal durchschnaufen angesagt und der Feinschliff wird dann in den nÃ¤chsten Tagen und Wochen angegangen. </p>
<p>Die ein oder andere Anpassung werde ich dann auch hier verÃ¶ffentlichen, etwa die modifizierte BlÃ¤tterfunktion oder die Integration von <a href="http://maps.google.de/">Google Maps</a> Ã¼ber den Content Manager, wie etwa auf der englischen <a href="http://www.erzgebirge-palace.com/shop_content.php/language/en/coID/200/content/About-us">About the Erzgebirge-Palace</a>-Seite zu sehen. Besonders ans Herz gelegt sei euch darÃ¼ber hinaus der Feature-Artikel Ã¼ber die <a href="http://www.erzgebirge-palace.com/shop_content.php/language/en/coID/3333/content/Steinbach-Nutcrackers">weltberÃ¼hmten Steinbach-NuÃŸknacker</a>, ein Service, den wir bei entsprechender Ressonanz auszubauen gedenken. Derweil kann man sich in unserem <a href="http://www.erzgebirge-palace.com/astore/">aStore rund um&#8217;s Erzgebirge</a> mit Informationen eindecken.</p>
<p>FÃ¼r das Interview bei <a href="http://www.lopsta.com/">lopsta.com</a> habe ich noch ein paar weiterfÃ¼hrende Informationen zusammengeschrieben, <strike>sobald es verÃ¶ffentlich ist werde ich natÃ¼rlich den Link dorthin auch hier kundtun</strike>, hier der Link zum Interview:<br />
<a href="http://www.lopsta.com/2007/02/16/interview-erzgebirge-palast/">Interview Erzgebirge-Palast bei lopsta.com</a>.</p>
<p>[tags]xtc, xt:commerce, erzgebirge, erzgebirge-palast, steinbach, nuÃŸknacker, rÃ¤uchermÃ¤nnchen, schwibbÃ¶gen[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/02/15/der-erzgebirge-palast-geht-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Template-Switcher fÃ¼r xt:Commerce</title>
		<link>http://www.blogpotato.de/2007/02/15/template-switcher-fur-xtcommerce/</link>
		<comments>http://www.blogpotato.de/2007/02/15/template-switcher-fur-xtcommerce/#comments</comments>
		<pubDate>Thu, 15 Feb 2007 07:28:21 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/02/15/template-switcher-fur-xtcommerce/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>UrsprÃ¼nglich mal fÃ¼r unser Shopprojekt entstanden (deshalb auch das recht alte Modifikationsdatum), um manuell Templates zu wechseln und zu vergleichen, habe ich nach diesem Aufruf bei lopsta.com den Mini-Template-Switcher etwas ausgebaut, so dass er die im Templates-Verzeichnis liegenden Ordner ausliest, sortiert (ein Feature, dass xt:Commerce bei allen hauseigenen Aktionen dieser Art schmerzlich vermissen lÃ¤sst) und [...]]]></description>
			<content:encoded><![CDATA[<p>UrsprÃ¼nglich mal fÃ¼r unser Shopprojekt entstanden (deshalb auch das recht alte Modifikationsdatum), um manuell Templates zu wechseln und zu vergleichen, habe ich nach diesem Aufruf bei <a href="http://www.lopsta.com/2007/02/13/lopsta-wants-you/">lopsta.com</a> den Mini-Template-Switcher etwas ausgebaut, so dass er die im Templates-Verzeichnis liegenden Ordner ausliest, sortiert (ein Feature, dass xt:Commerce bei allen hauseigenen Aktionen dieser Art schmerzlich vermissen lÃ¤sst) und als Dropdown nebst zugehÃ¶rigem Formular ausgibt. </p>
<p>Das ganze gibt es hier:<br />
<a href="http://www.blogpotato.de/wp-content/uploads/2007/02/template-switcher.txt">template-switcher.txt</a></p>
<p>Vielleicht kann es ja jemand brauchen.</p>
<p>[tags]xtc, xt:commerce, template, switch, switcher[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/02/15/template-switcher-fur-xtcommerce/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>xt:C-CSS-Templates als Spiegel des Webs?</title>
		<link>http://www.blogpotato.de/2007/02/13/xtc-css-templates-als-spiegel-des-webs/</link>
		<comments>http://www.blogpotato.de/2007/02/13/xtc-css-templates-als-spiegel-des-webs/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 08:13:33 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/02/13/xtc-css-templates-als-spiegel-des-webs/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Damit das in den Kommentaren nicht untergeht, mÃ¶chte ich hier die Anmerkung von Mike zu meinem gestrigen Beitrag aufgreifen. Sicherlich kann man xt:Commerce mit seinem hoffnungslos veralteten Tabellengeschachtel nicht dazu hernehmen, um allgemeine Aussagen Ã¼ber den Zustand des Webs zu machen. Was vielleicht nicht so klar geworden ist: Der Code im gestrigen Posting ist nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Damit das in den Kommentaren nicht untergeht, mÃ¶chte ich hier die Anmerkung von Mike zu meinem <a href="http://www.blogpotato.de/2007/02/12/von-webstandards-und-semantischem-markup/#comments">gestrigen Beitrag</a> aufgreifen.</p>
<p>Sicherlich kann man xt:Commerce mit seinem hoffnungslos veralteten Tabellengeschachtel nicht dazu hernehmen, um allgemeine Aussagen Ã¼ber den Zustand des Webs zu machen. </p>
<p>Was vielleicht nicht so klar geworden ist: Der <a href="/wp-content/uploads/2007/02/checkout_shipping_block.mod.txt">Code im gestrigen Posting</a> ist <strong>nicht</strong> der original xt:Commerce-Code! Der sieht vielmehr so aus:<br />
<a href="/wp-content/uploads/2007/02/checkout_shipping_block.orig.txt">Originalcode <tt>checkout_shipping_block.html</tt></a></p>
<p>Dass das nicht so prickelnd ist haben mittlerweile nicht nur die Macher von xt:Commerce erkannt, fÃ¼r die Version 4 (und nach neuesten Informationen schon fÃ¼r Servicepack 2.2 der Version 3.04) wird es neben dem standardmÃ¤ÃŸigen Tabellenlayout auch ein CSS-Template geben.</p>
<p>Man kann nur hoffen (es wird nicht geschehen, aber die Hoffnung stirbt bekanntermaÃŸen zuletzt), dass sie jemanden fragen, der sich mit so etwas auskennt. Denn das, was diverse Dienstleister, die sich schnell einen â€žMade for Web 2.0â€?-Button gemacht haben, da als modernes Webdesign verkaufen, ist grÃ¶ÃŸtenteils (die Ausnahmen bestÃ¤tigen die Regel) nur eines: Schrott in TÃ¼ten. Und das ist der eigentliche Kern meiner gestrigen Kritik. Und taugt durchaus, um zu bewerten, wo wir uns (in Deutschland) derzeit befinden, wenn es um Webstandards und semantisch korrektes Markup geht: Weit am Anfang, sehr weit am Anfang. Denn diese CSS-Layouts sollen ja eigentlich eine Alternative zum unÃ¼bersichtlichen, aufgeblÃ¤hten und schwer wartbaren Originalcode von xt:Commerce bieten und diesen Anspruch erfÃ¼llen die meisten eben gar nicht!</p>
<p>Der VollstÃ¤ndigkeit halber:<br />
<a href="/wp-content/uploads/2007/02/checkout_shipping_block.msslovi0.txt">Mein Code fÃ¼r <tt>checkout_shipping_block.html</tt></a></p>
<p>Und falls irgendein Suppenkoch noch schicke Buttons fÃ¼r seinen Pfusch braucht, kann er sich hier bedienen:<br />
<img src="/wp-content/uploads/2007/02/made-with-divitis.png" alt="Made with divitis" /><img src="/wp-content/uploads/2007/02/made-with-classitis.png" alt="Made with classitis" /><img src="/wp-content/uploads/2007/02/made-with-inline-css.png" alt="Made with inline css" /><img src="/wp-content/uploads/2007/02/made-without-cascades.png" alt="Made without cascades" /><img src="/wp-content/uploads/2007/02/inheritance-we-say-no.png" alt="Inheritance? We say no!" /><img src="/wp-content/uploads/2007/02/made-with-ignorance.png" alt="Made with Ignorance" /></p>
<p>[tags]webstandards, xtc, xt:commerce, markup, css[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/02/13/xtc-css-templates-als-spiegel-des-webs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datenschutz fÃ¼r xt:Commerce [upd]</title>
		<link>http://www.blogpotato.de/2007/02/08/datenschutz-fur-xtcommerce/</link>
		<comments>http://www.blogpotato.de/2007/02/08/datenschutz-fur-xtcommerce/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 15:41:52 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/02/08/datenschutz-fur-xtcommerce/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>[update]: Da WordPress dazu neigt, Hochkommas im Codebereich falsch darzustellen und xt:Commerce davon leider reichlich Gebrauch macht ist fÃ¼r den Einbau dringend zu empfehlen, die Codeteile aus der Textdatei zu kopieren! Neues Jahr, neue Gesetze, neue Vorschriften. Seit Jahresbeginn gelten unter anderem neue Formvorschriften fÃ¼r E-Mails und, mit der Novelle des Telemediengesetzes, kommen gerade auf [...]]]></description>
			<content:encoded><![CDATA[<p><strong>[update]</strong>: Da WordPress dazu neigt, Hochkommas im Codebereich falsch darzustellen und xt:Commerce davon leider reichlich Gebrauch macht ist fÃ¼r den Einbau dringend zu empfehlen, die Codeteile aus der <a href="/wp-content/uploads/2007/02/privacy-policy.txt">Textdatei</a> zu kopieren!</p>
<p>Neues Jahr, neue Gesetze, neue Vorschriften. Seit Jahresbeginn gelten unter anderem <a href="http://www.luebeckonline.com/news/news/id/206.html">neue Formvorschriften fÃ¼r E-Mails</a> und, mit der <a href="http://dip.bundestag.de/btd/16/030/1603078.pdf">Novelle des Telemediengesetzes</a>, kommen gerade auf Shopbetreiber neue Anforderungen in Bezug auf die DatenschutzerklÃ¤rung zu.</p>
<p>WÃ¤hrend sich das Ãœberarbeiten der dreizehn verschiedenen E-Mail-Texte, die sich fÃ¼r alle Sprachen, jeweils in einer reinen Text und einer HTML-AusprÃ¤gung sowohl in <tt>templates/[template]/mail/</tt> als auch in <tt>templates/[template]/admin/mail</tt> befinden, allenfalls als FleiÃŸaufgabe erweisen dÃ¼rfte, da xt:Commerce keine MÃ¶glichkeit bietet, an alle E-Mails eine gleichlautende Signatur anzuhÃ¤ngen (aber vielleicht poste ich hier in KÃ¼rze mal was entsprechendes), mÃ¼ssen fÃ¼r die <a href="http://www.luebeckonline.com/news/news/id/208.html">Erfordernisse des neuen Telemediengesetzes in Bezug auf Datenschutz stÃ¤rkere GeschÃ¼tze aufgefahren werden</a>:</p>
<blockquote cite="http://www.luebeckonline.com/news/news/id/208.html">
<p>WÃ¶rtlich genommen mÃ¼sste der Nutzer einer gewerblichen Webseite beim ersten Aufruf auf die DatenschutzerklÃ¤rung hingewiesen werden. Es wird wohl allerdings ausreichend sein, einen entsprechenden aussagekrÃ¤ftigen Link auf die Belehrung in der Fusszeile anzubringen. SpÃ¤testens jedoch, wenn ein Bestellvorgang gestartet wird, bei dem der Nutzer seine persÃ¶nlichen Daten eingibt, muss die Belehrung deutlich eingeblendet werden. Der Vorgang darf erst dann fortgesetzt werden kÃ¶nnen, wenn der Nutzer die Belehrung akzeptiert hat. Die Zustimmung muss nachprÃ¼fbar gespeicht werden.</p>
<p>Nach der EinverstÃ¤ndniserklÃ¤rung muss der Nutzer jederzeit den Inhalt seiner ErklÃ¤rung abrufen kÃ¶nnen. Eine per Email versendete BestellbestÃ¤tigung sollte neben einem Link auf etwa akzeptierte AGB auch einen Link oder den Volltext der Datenschutzbelehrung enthalten.</p>
<p>Weiterhin ist sicherzustellen, dass der Nutzer des Dienstes die Nutzung jederzeit beenden kann. Wenn etwa ein Benutzer-Account angeboten wird muss dem Nutzer die MÃ¶glichkeit geboten werden, diesen zu deaktivieren, die gespeicherten Daten zu lÃ¶schen bzw. zu sperren.</p>
</blockquote>
<p>Tja, ich wÃ¼rde sagen, das sind gleich drei WÃ¼nsche auf einmal. Und wer ungern russisches Abmahnroulette spielt und daher nicht darauf warten will, bis die Ã„nderungen in das nach wie vor nicht terminierte SP 2.2 einflieÃŸen, findet hier eine Einbauanleitung.</p>
<p><span id="more-155"></span></p>
<h3>Ein Satz vorab</h3>
<p>Wie immer gilt: Alle Ã„nderungen beziehen sich auf xt:Commerce 3.04 SP2.1, der Einbau erfolgt auf eigene Gefahr und nicht nur fÃ¼r diese Anpassungen empfiehlt sich ein Backup, Fragen werden in den Kommentaren beantwortet.</p>
<h3>DatenschutzerklÃ¤rung abnicken</h3>
<p>ZunÃ¤chst mal sollte man wie bei LÃ¼beck online vorgeschlagen und sofern noch nicht vorhanden eine Seite mit der DatenschutzerklÃ¤rung erstellen und diese in eine der beiden Boxen verlinken.<br />
Als nÃ¤chsten Schritt gilt es, Ã¤hnlich wie bei den AGBs wÃ¤hrend des Checkout-Prozesses, beim Registrieren eines Accounts oder beim Checkout Ã¼ber den Gastaccount eine Checkbox zu integrieren, mit der der Kunde bestÃ¤tigt, die Datenschutzrichtlinien akzeptiert zu haben.<br />
Alle Angaben fÃ¼r <tt>create_account.php</tt> gelten analog auch fÃ¼r <tt>create_guest_account.php</tt>:<br />
In <tt>create_account.php</tt> nach</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'INPUT_TEL'</span><span style="color: #339933;">,</span> xtc_draw_input_fieldNote<span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'telephone'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#40;</span>xtc_not_null<span style="color: #009900;">&#40;</span>ENTRY_TELEPHONE_NUMBER_TEXT<span style="color: #009900;">&#41;</span> ? <span style="color: #0000ff;">'&lt;span class=&quot;inputRequirement&quot;&gt;'</span><span style="color: #339933;">.</span>ENTRY_TELEPHONE_NUMBER_TEXT<span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/span&gt;'</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>suchen und davor einfÃ¼gen:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// BEGIN privacy policy</span>
	<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'PRIVACY_LINK'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$main</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getContentLink</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> ACCEPT_PRIVACY<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;class='popup'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'CHECKBOX_PRIVACY'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;input type=&quot;checkbox&quot; value=&quot;privacy&quot; name=&quot;privacy&quot; id=&quot;field_privacy&quot; /&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// END privacy policy</span></pre>
</div>
</div>
<p>Dadurch haben wir im Template sowohl einen Link auf die DatenschutzerklÃ¤rung als auch die Checkbox zur VerfÃ¼gung. Die <em>2</em> in <tt>$main->getContentLink</tt> steht dabei fÃ¼r die <tt>coID</tt> (Sprachgruppe) der DatenschutzerklÃ¤rung, die man im Contentmanager findet oder indem man auf den Link klickt.<br />
Wer nicht die <a href="http://blog.ginader.de/dev/popup.html">jsPopUp-Klasse</a> von <a href="http://blog.ginader.de/">Dirk Ginader</a> nutzt muss natÃ¼rlich selber wissen, ob und wie er die ErklÃ¤rung in einem neuen Fenster Ã¶ffnet.</p>
<p>Damit der Link auch einen sinnvollen Text hat, muss man die Konstante fÃ¼r alle im Einsatz befindlichen Sprachen definieren, beispielsweise in <tt>lang/german/german.php</tt>:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">	<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ACCEPT_PRIVACY'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Ich akzeptiere Ihre Datenschutzrichtlinien'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Das platziert man dann an geeigneter Stelle im Template, sowohl in <tt>templates/[template]/modules/create_account.html</tt> als auch in <tt>templates/[template]/modules/create_account_guest.html</tt>, was bei mir am Ende so aussieht:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;">	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">fieldset</span>&gt;</span>
	        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">legend</span>&gt;</span>{#title_privacy#}<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">legend</span>&gt;</span>
	        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;conditions&quot;</span>&gt;</span>
	                {$CHECKBOX_PRIVACY}
	                <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">label</span> <span style="color: #000066;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;field_privacy&quot;</span>&gt;</span>{$PRIVACY_LINK}<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">label</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;inputRequirement&quot;</span>&gt;</span>*<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
	        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">fieldset</span>&gt;</span></pre>
</div>
</div>
<p>Jetzt nur noch prÃ¼fen, ob die Box auch angehakt war und das ganze zusammen mit allen Informationen in die Datenbank schreiben. Dazu widmen wir uns noch einmal <tt>create_account.php</tt>:<br />
Nach</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$telephone</span> <span style="color: #339933;">=</span> xtc_db_prepare_input<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'telephone'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p> fÃ¼gend wir folgendes ein:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// BEGIN privacy policy</span>
	<span style="color: #000088;">$privacy</span> <span style="color: #339933;">=</span> xtc_db_prepare_input<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'privacy'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// END privacy policy</span></pre>
</div>
</div>
<p>Vor</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$customers_status</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">||</span> <span style="color: #339933;">!</span><span style="color: #000088;">$customers_status</span><span style="color: #009900;">&#41;</span></pre>
</div>
</div>
<p> fÃ¼gen wir folgendes ein:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// BEGIN privacy policy</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$privacy</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$privacy</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$error</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$messageStack</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'create_account'</span><span style="color: #339933;">,</span> ENTRY_PRIVACY_POLICY_ERROR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">// END privacy policy</span></pre>
</div>
</div>
<p>Hier trennen sich die Wege von <tt>create_account.php</tt> und <tt>create_guest_account.php</tt>. In <tt>create_account.php</tt> Ã¤ndern wir</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql_data_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'customers_vat_id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$vat</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_vat_id_status'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$customers_vat_id_status</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_status'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$customers_status</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_firstname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$firstname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_lastname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$lastname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_email_address'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$email_address</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_telephone'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$telephone</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_fax'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$fax</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_newsletter'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$newsletter</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_password'</span> <span style="color: #339933;">=&gt;</span> xtc_encrypt_password<span style="color: #009900;">&#40;</span><span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'customers_date_added'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'now()'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'customers_last_modified'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'now()'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p> zu</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql_data_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'customers_vat_id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$vat</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_vat_id_status'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$customers_vat_id_status</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_status'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$customers_status</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_firstname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$firstname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_lastname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$lastname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_email_address'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$email_address</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_telephone'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$telephone</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_fax'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$fax</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_newsletter'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$newsletter</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_password'</span> <span style="color: #339933;">=&gt;</span> xtc_encrypt_password<span style="color: #009900;">&#40;</span><span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'customers_date_added'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'now()'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'customers_last_modified'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'now()'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'privacy'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'now()'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>und in <tt>create_guest_account.php</tt> ersetzen wir</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql_data_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'customers_vat_id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$vat</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_vat_id_status'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$customers_vat_id_status</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_status'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$customers_status</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_firstname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$firstname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_lastname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$lastname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_email_address'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$email_address</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_telephone'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$telephone</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_fax'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$fax</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_newsletter'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$newsletter</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'account_type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'1'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_password'</span> <span style="color: #339933;">=&gt;</span> xtc_encrypt_password<span style="color: #009900;">&#40;</span><span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>mit</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql_data_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'customers_vat_id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$vat</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_vat_id_status'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$customers_vat_id_status</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_status'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$customers_status</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_firstname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$firstname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_lastname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$lastname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_email_address'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$email_address</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_telephone'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$telephone</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_fax'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$fax</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_newsletter'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$newsletter</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'account_type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'1'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'customers_password'</span> <span style="color: #339933;">=&gt;</span> xtc_encrypt_password<span style="color: #009900;">&#40;</span><span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'privacy'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'now()'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Zwei Sachen sind noch zu erledigen, dann sind wir mit dem ersten Punkt auch schon durch. Die Fehlermeldung ist in allen Sprachdateien zu hinterlegen</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ENTRY_PRIVACY_POLICY_ERROR'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Sofern Sie unsere Datenschutzrichtlinien nicht akzeptieren k&amp;ouml;nnen wir Ihre Bestellung bedauerlicherweise nicht entgegennehmen und auch kein Konto f&amp;uuml;r Sie anlegen!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p> und die Tabelle <tt>customers</tt> ist um das neue Feld <tt>privacy</tt> zu erweitern:</p>
<div class="wp_syntax">
<div class="code">
<pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span>  <span style="color: #ff0000;">`customers`</span> <span style="color: #993333; font-weight: bold;">ADD</span>  <span style="color: #ff0000;">`privacy`</span> DATETIME <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> AFTER  <span style="color: #ff0000;">`refferers_id`</span> ;</pre>
</div>
</div>
<p>Da die Codedarstellung in WordPress eher dÃ¼rftig ist gibt es das ganze in dateiweiser Abfolge auch noch einmal in <a href="/wp-content/uploads/2007/02/privacy-policy.txt">Textform</a>.</p>
<h3>Link in der E-Mail</h3>
<p>Man kann den Link zur DatenschutzerklÃ¤rung natÃ¼rlich einfach kopieren und in die fraglichen Mailtexte <tt>templates/[template]/mail/[language]/order_mail.[txt|html]</tt> sowie <tt>templates/[template]/mail/[language]/create_account_mail.[txt|html]</tt> einfÃ¼gen. Ein hartkodierter Link ist aber nicht wirklich die IdeallÃ¶sung und sorgt bei einem eventuellen Domainwechsel fÃ¼r unbÃ¤ndige Freude und in der Form <tt>http://www.shop.de/shop_content.php/coID/2/content/Privatsphaere-und-Datenschutz/</tt> sieht das auch nicht wirklich prickelnd aus.</p>
<p>Da hilft ein kurzer Eingriff in <tt>create_account.php</tt>, dort ersetzen wir</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$module_content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MAIL_NAME'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$name</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_REPLY_ADDRESS'</span> <span style="color: #339933;">=&gt;</span> EMAIL_SUPPORT_REPLY_ADDRESS<span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_GENDER'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$gender</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_ADDRESS'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$gender</span> <span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;m&quot;</span> ? EMAIL_ADDRESS_M <span style="color: #339933;">:</span> EMAIL_ADDRESS_F<span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_LASTNAME'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$lastname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_FIRSTNAME'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$firstname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_USERNAME'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$email_address</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_PASSWORD'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p> mit</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$module_content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MAIL_NAME'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$name</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_REPLY_ADDRESS'</span> <span style="color: #339933;">=&gt;</span> EMAIL_SUPPORT_REPLY_ADDRESS<span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_GENDER'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$gender</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_ADDRESS'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$gender</span> <span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;m&quot;</span> ? EMAIL_ADDRESS_M <span style="color: #339933;">:</span> EMAIL_ADDRESS_F<span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_LASTNAME'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$lastname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_FIRSTNAME'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$firstname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_USERNAME'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$email_address</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MAIL_PASSWORD'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$password</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'HTTP_SERVER'</span> <span style="color: #339933;">=&gt;</span> HTTP_SERVER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>. In <tt>send_order.php</tt> fÃ¼gen wir nach</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'PAYMENT_METHOD'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$payment_method</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p> folgendes ein:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;HTTP_SERVER&quot;</span><span style="color: #339933;">,</span> HTTP_SERVER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;.</span>
&nbsp;
In den Bestellmails steht dann <span style="color: #009900;">&#123;</span><span style="color: #000088;">$HTTP_SERVER</span><span style="color: #009900;">&#125;</span> als Smarty<span style="color: #339933;">-</span>Variable zur VerfÃ¼gung<span style="color: #339933;">,</span> in <span style="color: #339933;">&lt;</span>tt<span style="color: #339933;">&gt;</span>create_account_mail<span style="color: #339933;">.</span><span style="color: #009900;">&#91;</span>txt<span style="color: #339933;">|</span>html<span style="color: #009900;">&#93;</span><span style="color: #339933;">&lt;/</span>tt<span style="color: #339933;">&gt;</span> ist es <span style="color: #009900;">&#123;</span><span style="color: #000088;">$content</span><span style="color: #339933;">.</span>HTTP_SERVER<span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span>
&nbsp;
Dem eher unschÃ¶nen <span style="color: #990000;">Link</span> rÃ¼cken wir anschlieÃŸ<span style="color: #990000;">end</span> noch mit mod_rewrite zu Leibe und erstellen uns eine <span style="color: #339933;">.</span>htaccess<span style="color: #339933;">-</span>Datei oder ergÃ¤nzen eine bereits vorhandene<span style="color: #339933;">:</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="apache" style="font-family:monospace;">	<span style="color: #adadad; font-style: italic;">### BEGIN privacy policy ###</span>
	<span style="color: #00007f;">RewriteRule</span> ^datenschutz/$ shop_content.php?coID=<span style="color: #ff0000;">2</span>&amp;language=de
	<span style="color: #00007f;">RewriteRule</span> ^privacy/$ shop_content.php?coID=<span style="color: #ff0000;">2</span>&amp;language=en
	<span style="color: #adadad; font-style: italic;">### END privacy policy ###</span></pre>
</div>
</div>
<h3>Konto lÃ¶schen</h3>
<p>Aller guten Dinge sind drei. Fangen wir bei den Sprachdateien an. In <tt>lang/[language]/[language].php</tt> brauchen wir fÃ¼r die Breadbrumb-Navigation entsprechende Angaben:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">	<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'NAVBAR_TITLE_1_ACCOUNT_DELETE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Ihr Konto'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'NAVBAR_TITLE_2_ACCOUNT_DELETE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Konto l&amp;ouml;schen'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Der Rest wird aus <tt>lang/[language]/lang_[language].conf</tt> beigesteuert. Den Abschnitt <tt>[account]</tt> ergÃ¤nzen wir:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">text_delete <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Konto l&amp;ouml;schen'</span></pre>
</div>
</div>
<p>Und den Abschnitt fÃ¼gen wir komplett neu hinzu:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">	<span style="color: #009900;">&#91;</span>account_delete<span style="color: #009900;">&#93;</span>
	heading_delete_account <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Konto l&amp;ouml;schen'</span>
	heading_account_deleted <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Konto gel&amp;ouml;scht'</span>
	delete_account <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Mit einem Klick auf den Weiter-Button l&amp;ouml;schen Sie Ihr Konto bei uns. Dadurch werden alle mit diesem Konto verkn&amp;uuml;pften personenbezogenen Daten gem&amp;auml;&amp;szlig; den gesetzlichen Vorgaben unwiederbringlich gel&amp;ouml;scht bzw. gesperrt.&lt;p&gt;Bitte beachten Sie, dass sie nach dem L&amp;ouml;schen des Kontos daher auch keinerlei Zugriff mehr auf ihre get&amp;auml;tigten Bestellungen haben!&lt;/p&gt;&lt;p&gt;Sie k&amp;ouml;nnen nat&amp;uuml;rlich jederzeit wieder ein neues Konto erstellen.'</span>
	account_deleted <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Ihr Konto wurde erfolgreich gel&amp;ouml;scht.'</span>
<span style="color: #339933;">&lt;/</span>p<span style="color: #339933;">&gt;</span></pre>
</div>
</div>
<p>In <tt>includes/filenames.php</tt> definieren wir noch einen Dateinamen fÃ¼r unsere Datei:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'FILENAME_ACCOUNT_DELETE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'account_delete.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>In <tt>account.php</tt> bauen wir uns einen Link zur LÃ¶schfunktion, nach</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'LINK_PASSWORD'</span><span style="color: #339933;">,</span> xtc_href_link<span style="color: #009900;">&#40;</span>FILENAME_ACCOUNT_PASSWORD<span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'SSL'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p> fÃ¼gen wir</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'LINK_DELETE'</span><span style="color: #339933;">,</span> xtc_href_link<span style="color: #009900;">&#40;</span>FILENAME_ACCOUNT_DELETE<span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'SSL'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p> ein.</p>
<p>Die Variable <tt>{$LINK_DELETE}</tt> steht somit im Template <tt>templates/[template]/module/account.html</tt> zur VerfÃ¼gung und kann dort an passender Stelle, beispielsweise unter dem Link zur PasswortÃ¤nderung, platziert werden.</p>
<p>Auch diese Ã„nderungen finden sich der Ãœbersicht halber nochmal in der <a href="/wp-content/uploads/2007/02/privacy-policy.txt">Textdatei</a>, <tt><a href="/wp-content/uploads/2007/02/account_delete.phps">account_delete.php</a></tt> und das zugehÃ¶rige Template stehen ebenfalls <a href="/wp-content/uploads/2007/02/privacy-policy.zip">zum Download</a> bereit.</p>
<p><strong>Wichtiger Hinweis:</strong> Derzeit sieht die &#8220;Account lÃ¶schen&#8221;-FunktionalitÃ¤t keine weiteren Sicherheitsabfragen vor! Wer das braucht muss es selbst implementieren! Da xt:Commerce sÃ¤mtliche Informationen bei einer Bestellung in die order-Tabelle kopiert sind durch das LÃ¶schen eines Benutzeraccounts weiterhin alle Rechnungen im vollen Umfang abrufbar. </p>
<p>[tags]xtc, xt:commerce, datenschutz, privacy[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/02/08/datenschutz-fur-xtcommerce/feed/</wfw:commentRss>
		<slash:comments>86</slash:comments>
		</item>
		<item>
		<title>Markup als Handwerk</title>
		<link>http://www.blogpotato.de/2007/01/29/markup-als-handwerk/</link>
		<comments>http://www.blogpotato.de/2007/01/29/markup-als-handwerk/#comments</comments>
		<pubDate>Mon, 29 Jan 2007 07:10:52 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/29/markup-als-handwerk/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Markup as Craft von Garrett Dimon bringt wichtiges Wissen rund um sauberes Markup auf den Punkt. Der ein oder andere Template-Schrauber fÃ¼r xt:Commerce sollte sich das mal dringend durchlesen &#8211; und beherzigen: The easiest way to achieve simplicity in your markup is to remove everything thatâ€™s inappropriate or not necessary. This includes, among other things, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.digital-web.com/articles/markup_as_craft/">Markup as Craft</a> von Garrett Dimon bringt wichtiges Wissen rund um sauberes Markup auf den Punkt.</p>
<p>Der ein oder andere <a href="http://www.blogpotato.de/2006/12/18/tabellenlos-um-jeden-preis/">Template</a>-<a href="http://www.blogpotato.de/2007/01/11/alle-meine-uberschriften/">Schrauber</a> fÃ¼r xt:Commerce sollte sich das mal dringend durchlesen &#8211; und beherzigen:</p>
<blockquote><p>The easiest way to achieve simplicity in your markup is to remove everything thatâ€™s inappropriate or not necessary. This includes, among other things, tables for layout, font elements, inline style attributes, and inline JavaScript. Thereâ€™s no place in present-day markup for any of these. </p></blockquote>
<p>via <a href="http://www.webdevbits.de/2007-01/tipps-fars-saubere-handwerk.php">WebdevBits</a>.</p>
<p>[tags]xhtml, css, markup, xtc, xtcommerce[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/29/markup-als-handwerk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ValidierungshÃ¼rden in xt:Commerce minimieren [upd]</title>
		<link>http://www.blogpotato.de/2007/01/28/validierungshurden-in-xtcommerce-minimieren/</link>
		<comments>http://www.blogpotato.de/2007/01/28/validierungshurden-in-xtcommerce-minimieren/#comments</comments>
		<pubDate>Sun, 28 Jan 2007 12:01:53 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/28/validierungshurden-in-xtcommerce-minimieren/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>danillo hat bei ecombase im Beitrag â€žValidation: NÃ¤her ran an den Standardâ€? eine Auflistung gepostet, an welchen Stellen Ã„nderungen vorzunehmen sind, um so beliebte Validator-Fehler wie nicht als Entity-Referenz ausgegebene Et-Zeichen zu eliminieren. Das spart jede Menge Sucharbeit. Kleiner Tipp noch von mir: Die nicht zugÃ¤nglichen Javascript-Popups auch gleich noch rausschmeiÃŸen und beispielsweise durch JsPopUp [...]]]></description>
			<content:encoded><![CDATA[<p>danillo hat bei <a href="http://www.ecombase.de/forum/">ecombase</a> im Beitrag â€ž<a href="http://www.ecombase.de/forum/index.php?showtopic=2900">Validation: NÃ¤her ran an den Standard</a>â€? eine Auflistung gepostet, an welchen Stellen Ã„nderungen vorzunehmen sind, um so beliebte Validator-Fehler wie nicht als Entity-Referenz ausgegebene Et-Zeichen zu eliminieren.</p>
<p>Das spart jede Menge Sucharbeit. Kleiner Tipp noch von mir: Die nicht zugÃ¤nglichen Javascript-Popups auch gleich noch rausschmeiÃŸen und beispielsweise durch <a href="http://blog.ginader.de/dev/popup.html">JsPopUp von Dirk Ginader</a> ersetzen.</p>
<p><strong>update:</strong> Ich musste feststellen, dass das Ã¤ndern des &#038;-Zeichens zumindest dann zu Problemen fÃ¼hrt, wenn man die suchmaschinenfreundlichen URLs aktiviert hat. Man kann sich anschlieÃŸend weder einloggen noch Artikel in den Warenkorb legen. Vorher also gegebenenfalls mal testen. Da die SEF URLs ja ohne ? und &#038; auskommen, besteht das Validierungsproblem an dieser Stelle ohnehin nicht.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/28/validierungshurden-in-xtcommerce-minimieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.1, Oberhof, iPhone und Apple TV</title>
		<link>http://www.blogpotato.de/2007/01/28/wordpress-21-oberhof-und-naturlich-apples-iphone-und-apple-tv/</link>
		<comments>http://www.blogpotato.de/2007/01/28/wordpress-21-oberhof-und-naturlich-apples-iphone-und-apple-tv/#comments</comments>
		<pubDate>Sun, 28 Jan 2007 11:46:39 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Blog around the Clock]]></category>
		<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/28/wordpress-21-oberhof-und-naturlich-apples-iphone-und-apple-tv/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/apple/" title="Apple">Apple</a><a href="http://www.blogpotato.de/category/blog-around-the-clock/" title="Blog around the Clock">Blog around the Clock</a><a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Wieder mal neigt sich ein Urlaub dem Ende und es ist viel passiert in den letzten drei Wochen. Angefangen hat alles mit einem Besuch des Biathlon-Weltcups in Oberhof, bei dem die Kurzfassung â€žScheiÃŸ Wetter, gutes Eventâ€? lautet, danach kam Jobs nÃ¤chster Coup, wie die c&#8217;t titelte, nÃ¤mlich das lang erwartete iPhone und das schnell noch [...]]]></description>
			<content:encoded><![CDATA[<p>Wieder mal neigt sich ein Urlaub dem Ende und es ist viel passiert in den letzten drei Wochen.</p>
<p>Angefangen hat alles mit einem Besuch des Biathlon-Weltcups in Oberhof, bei dem die Kurzfassung â€žScheiÃŸ Wetter, gutes Eventâ€? lautet, danach kam Jobs nÃ¤chster Coup, wie die <a href="http://www.ct-magazin.de/">c&#8217;t</a> titelte, nÃ¤mlich das lang erwartete iPhone und das schnell noch umbenannte Apple TV. Kurztripp in die Schweiz, ein etwas lÃ¤ngerer <a href="http://www.mitwitz.de/">nach Hause</a> und schlieÃŸlich und endlich die Freigabe von Worpress 2.1.</p>
<p>Hier wird das Feld von hinten aufgerÃ¤umt, WordPress 2.1 ist bereits installiert. Zu den anderen Punkten gibt es mÃ¶glicherweise in KÃ¼rze hier noch mehr zu lesen, nur zu den neuen Apple-Produkten nicht. Da haben so viele andere schon genug dazu geschrieben, da brauch ich nicht auch noch mitgackern.</p>
<p>Apropos gackern: Der Shop nimmt langsam endgÃ¼ltige Formen an und die Kritik an <a href="http://www.xt-commerce.com/">xt:Commerce</a> wÃ¼rde mittlerweile wohl ein ganzes Buch fÃ¼llen. Aber auch dazu ein anderes mal mehr.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/28/wordpress-21-oberhof-und-naturlich-apples-iphone-und-apple-tv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kreditkarte belasten &#8211; aber seriÃ¶s, bitte!</title>
		<link>http://www.blogpotato.de/2007/01/15/kreditkarte-belasten-aber-serios-bitte/</link>
		<comments>http://www.blogpotato.de/2007/01/15/kreditkarte-belasten-aber-serios-bitte/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 15:11:24 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/15/kreditkarte-belasten-aber-serios-bitte/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Wie das Zahlungsmodul fÃ¼r iPayment in seinen xt:Commerce-Shop integriert und darÃ¼ber erste Zahlungen abwickelt wird feststellen, dass der Betrag nicht nur authorisiert, sondern auch sofort abgebucht wird. Das mag ein fÃ¼r im Download erhÃ¤ltliche Dateien legitimes Prozedere sein, fÃ¼r alle anderen Waren ist es aber vor allem fÃ¼r den Kunden hÃ¶chst befremdlich, wenn die Kreditkarte [...]]]></description>
			<content:encoded><![CDATA[<p>Wie das Zahlungsmodul fÃ¼r <a href="http://www.ipayment.de/">iPayment</a> in seinen xt:Commerce-Shop integriert und darÃ¼ber erste Zahlungen abwickelt wird feststellen, dass der Betrag nicht nur authorisiert, sondern auch sofort abgebucht wird.<br />
Das mag ein fÃ¼r im Download erhÃ¤ltliche Dateien legitimes Prozedere sein, fÃ¼r alle anderen Waren ist es aber vor allem fÃ¼r den Kunden hÃ¶chst befremdlich, wenn die Kreditkarte sofort belastet, die Lieferung aber mÃ¶glicherweise erst einige Wochen spÃ¤ter erfolgt.<br />
FÃ¼r die manuelle Abbuchung bietet iPayment die MÃ¶glichkeit, eine Kartennummer zunÃ¤chst zu authentifizieren und erst spÃ¤ter den Betrag abzubuchen, eine MÃ¶glichkeit, welche die Konfiuration des xt:Commerce-Moduls vermissen lÃ¤ÃŸt. Aber zumindest manuell kann man das Modul so konfigurieren, dass die Kreditkarte nicht sofort belastet wird:<br />
In <tt>includes/modules/payment/ipayment.php</tt> ist direkt hinter</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">xtc_draw_hidden_field<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'trx_paymenttyp'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'cc'</span><span style="color: #009900;">&#41;</span></pre>
</div>
</div>
<p>der folgende Code einzufÃ¼gen:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #339933;">.</span>xtc_draw_hidden_field<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'trx_typ'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'preauth'</span><span style="color: #009900;">&#41;</span></pre>
</div>
</div>
<p>Ab sofort wird die Karte nur noch authentifiziert, die Abbuchung kann man dann Ã¼ber die iPayment-Administration auf Knopfdruck veranlassen, sobald die Waren wirklich auf die Reise gehen.</p>
<p>[tags]xtc, xtcommerce, ipayment, creditcard, kreditkarte, preauth, zahlungspufferung, zahlung puffern[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/15/kreditkarte-belasten-aber-serios-bitte/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ohne Worte</title>
		<link>http://www.blogpotato.de/2007/01/12/ohne-worte/</link>
		<comments>http://www.blogpotato.de/2007/01/12/ohne-worte/#comments</comments>
		<pubDate>Thu, 11 Jan 2007 23:32:53 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/12/ohne-worte/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>//don&#8217;t know why, but this happens sometimes and new user becomes admin create_account.php [tags]xtc, xtcommerce, pfusch, kommentar, comment[/tags]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
//don&#8217;t know why, but this happens sometimes and new user becomes admin</p></blockquote>
<p><cite><tt>create_account.php</tt></cite></p>
<p>[tags]xtc, xtcommerce, pfusch, kommentar, comment[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/12/ohne-worte/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Alle meine Ãœberschriften&#8230;</title>
		<link>http://www.blogpotato.de/2007/01/11/alle-meine-uberschriften/</link>
		<comments>http://www.blogpotato.de/2007/01/11/alle-meine-uberschriften/#comments</comments>
		<pubDate>Thu, 11 Jan 2007 01:05:55 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/11/alle-meine-uberschriften/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>In the real world, a degree of common sense is required Andy Budd, CSS Mastery, Seite 9 Was dabei herauskommt, wenn man Dinge umsetzt, ohne zu hinterfragen, ob das, was man tut, auch vernÃ¼nftig ist, zeigt das neuste Template, das sich im Shop von xt:Commerce findet. Neben vielen anderen bei GreenVelvet, welches ebenfalls von bluegate [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>In the real world, a degree of common sense is required</p></blockquote>
<p><cite>Andy Budd, CSS Mastery, Seite 9</cite></p>
<p>Was dabei herauskommt, wenn man Dinge umsetzt, ohne zu hinterfragen, ob das, was man tut, auch vernÃ¼nftig ist, zeigt das neuste Template, das sich im <a href="http://www.xtcommerce-shop.com/product_info.php/products_id/62/cPath/11/templates/template-redriver.html">Shop von xt:Commerce</a> findet. </p>
<p>Neben vielen anderen bei <a href="http://www.blogpotato.de/2006/12/18/tabellenlos-um-jeden-preis/">GreenVelvet</a>, welches ebenfalls von <a href="http://www.bluegate.at/">bluegate</a> erstellt wurde, bemÃ¤ngelten Punkten hatte ich vor allem auf die fehlende semantische Relevanz der verwendeten Tags hingewiesen, um mir daraufhin im <a href="http://www.xt-commerce.com/forum/version-3-0-x/41445-template-greenvalvet.html#post204937">Forum sagen lassen zu mÃ¼ssen</a>, dass man beispielsweise die BoxÃ¼berschriften nicht unbedingt als Ãœberschriften auszeichnen mÃ¼sse, weil sie ja keinerlei contentspezifische Information enthalten. Ich habe auf eine Antwort verzichtet, primÃ¤r weil mir die Art und Weise, <a href="http://www.xt-commerce.com/forum/version-3-0-x/41445-template-greenvalvet.html#post204923">wie man bei xt:Commerce (nicht) mit Kritik umgehen kann</a>, zuwider lÃ¤uft. Aber auch, weil man so etwas nicht mehr auf rationeller Ebene diskutieren kann, zum einen ist es ja gar keine Ãœberschrift, zum anderen bekommt sie aber eine CSS-Klasse zugewiesen, die &#8216;Heading&#8217; im Namen trÃ¤gt.</p>
<p>Schaut man sich jetzt aber RedRiver an, dann findet man bereits auf der Startseite zahlreiche Ãœberschriften. Bei genauerem Hinsehen fÃ¤llt auf, dass die BoxÃ¼berschriften jetzt in den Genuss einer semantisch korrekten Auszeichnung kommen, was denen von GreenVelvet ja noch vehement verwehrt wurde.<br />
Und was noch auffÃ¤llt: Alle BoxÃ¼berschriften sind Ãœberschriften erster Ordnung. Wenn das mal kein Sturz die Karrierleiter hinauf ist. Aus der absoluten Bedeutungslosigkeit der Tagsuppe direkt zur wichtigsten aller Ãœberschriften. Aber sind sie das wirklich? Gibt es keine wichtigeren Ãœberschriften auf der Seite? NatÃ¼rlich gibt es die und hier schlieÃŸt sich der Kreis zum eingangs erwÃ¤hnten Zitat von Andy Budd: Man sollte, bevor man etwas tut, nachdenken, ob es so, wie man es zu tun gedenkt, auch Sinn macht. Denn nicht umsonst gibt es sechs verschiedene Gewichtungsstufen fÃ¼r Ãœberschriften. Und die sollte man dann auch passend einsetzen.</p>
<p>[tags]xtc, xtcommerce, markup[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/11/alle-meine-uberschriften/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JÃ¤ger der versteckten Tabellen</title>
		<link>http://www.blogpotato.de/2007/01/10/jager-der-versteckten-tabellen/</link>
		<comments>http://www.blogpotato.de/2007/01/10/jager-der-versteckten-tabellen/#comments</comments>
		<pubDate>Wed, 10 Jan 2007 15:57:27 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/10/jager-der-versteckten-tabellen/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Der Checkout-Prozess bei xt:Commerce ist immer wieder ein Quell der Freude. Aber nicht nur das Markup fÃ¼r die AddressbucheintrÃ¤ge findet sich sinnigerweise in den php-Dateien. Und das ist noch relativ leicht zu finden und folglich auch zu eliminieren. Es gibt aber auch ein paar Tabellen, die sind fast besser versteckt als der umstrittene Copyright-Footer von [...]]]></description>
			<content:encoded><![CDATA[<p>Der Checkout-Prozess bei xt:Commerce ist immer wieder ein Quell der Freude. Aber nicht nur das <a href="http://www.blogpotato.de/2006/12/22/xtc-adressbucheintrage-beim-checkoot/">Markup fÃ¼r die AddressbucheintrÃ¤ge</a> findet sich sinnigerweise in den php-Dateien. Und das ist noch relativ leicht zu finden und folglich auch zu eliminieren. Es gibt aber auch ein paar Tabellen, die sind fast besser versteckt als der <a href="http://www.ecombase.de/forum/index.php?showtopic=2106">umstrittene Copyright-Footer</a> von xt:Commerce.<br />
<span id="more-142"></span><br />
In <tt>checkout_confirmation.php</tt> wird sowohl der Warenkorbinhalt als auch die Gesamtsummation als Block vorbereitet und dann einfach ins Template eingefÃ¼gt.<br />
FÃ¼r die Produkte sieht das dann so aus:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$data_products</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$n</span> <span style="color: #339933;">=</span> <span style="color: #990000;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;tr&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'            &lt;td class=&quot;main&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'qty'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">' x '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/td&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'                &lt;td class=&quot;main&quot; align=&quot;right&quot; valign=&quot;top&quot;&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$xtPrice</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">xtcFormat</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'final_price'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/td&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>ACTIVATE_SHIPPING_STATUS <span style="color: #339933;">==</span> <span style="color: #0000ff;">'true'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
                <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;tr&gt;
                                                        &lt;td class=&quot;main&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;
                                                        &lt;nobr&gt;&lt;small&gt;'</span> <span style="color: #339933;">.</span> SHIPPING_TIME <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'shipping_time'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'
                                                        &lt;/small&gt;&lt;/nobr&gt;&lt;nobr&gt;&lt;/nobr&gt;&lt;/td&gt;
                                                        &lt;td class=&quot;main&quot; align=&quot;right&quot; valign=&quot;top&quot;&gt;Â &lt;/td&gt;&lt;/tr&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$j</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$n2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$n2</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;tr&gt;
                                                                &lt;td class=&quot;main&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;
                                                                &lt;nobr&gt;&lt;small&gt;Â &lt;i&gt; - '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$j</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'option'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">': '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$j</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'value'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'
                                                                &lt;/i&gt;&lt;/small&gt;&lt;/nobr&gt;&lt;nobr&gt;&lt;/nobr&gt;&lt;/td&gt;
                                                                &lt;td class=&quot;main&quot; align=&quot;right&quot; valign=&quot;top&quot;&gt;Â &lt;/td&gt;'</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">''</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customers_status'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customers_status_show_price_tax'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customers_status'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customers_status_add_tax_ot'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tax_groups'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
                        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'            &lt;td class=&quot;main&quot; valign=&quot;top&quot; align=&quot;right&quot;&gt;'</span> <span style="color: #339933;">.</span> xtc_display_tax_value<span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tax'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'%&lt;/td&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">''</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/table&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'PRODUCTS_BLOCK'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data_products</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Ich habe mich fÃ¼r eine Kombination aus einer unsortierten Liste (ein Punkt pro Produkt) und einer Definitionsliste fÃ¼r die einzelnen Produktoptionen entschieden. Das ganze sieht dann so aus:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$data_produtcs</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$n</span> <span style="color: #339933;">=</span> <span style="color: #990000;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;li&gt;&lt;dl&gt;&lt;dt&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'qty'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">' x '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/dt&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'                &lt;dd&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$xtPrice</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">xtcFormat</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'final_price'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/dd&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>ACTIVATE_SHIPPING_STATUS <span style="color: #339933;">==</span> <span style="color: #0000ff;">'true'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
                <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'
                                                        &lt;dd class=&quot;shipping_time&quot;&gt;'</span> <span style="color: #339933;">.</span> SHIPPING_TIME <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'shipping_time'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/dd&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$j</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$n2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$n2</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;dd class=&quot;product_attribute&quot;&gt;
                                                                &lt;em&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$j</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'option'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">': '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'attributes'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$j</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'value'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/em&gt;'</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">''</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customers_status'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customers_status_show_price_tax'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customers_status'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customers_status_add_tax_ot'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tax_groups'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
                        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'            &lt;dd class=&quot;tax_group&quot;&gt;'</span> <span style="color: #339933;">.</span> xtc_display_tax_value<span style="color: #009900;">&#40;</span><span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">products</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tax'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'%&lt;/dd&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$data_products</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/dl&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'PRODUCTS_BLOCK'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data_products</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Durch das Zuweisen einzelner Klassen lassen sich die einzelnen <tt>dd</tt>&#8216;s explizit ansprechen. Die Ã¶ffnende unsortierte Liste befindet sich bei mir im Template &#8211; weil ich ursprÃ¼nglich dachte, da wÃ¼rden vernÃ¼nftige Codeteile ankommen und nicht gleich ein ganzer Block grausamsten HTMLs.</p>
<p>Besser versteckt ist die Tabelle fÃ¼r die Gesamtsummation. In <tt>checkout_confirmation.php</tt> findet sich da nur die TabellenhÃ¼lle:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$total_block</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;table&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>MODULE_ORDER_TOTAL_INSTALLED<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$order_total_modules</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">process</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$total_block</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$order_total_modules</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">output</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$total_block</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/table&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TOTAL_BLOCK'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$total_block</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Das eigentlich Chaos fabriziert eine Klasse, <tt>order_total()</tt>, um genau zu sein. Die findet sich in <tt>includes/classes/order_total.php</tt>.<br />
Dort ist der Bandwurm</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$output_string</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'              &lt;tr&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'                &lt;td align=&quot;right&quot; class=&quot;main&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$GLOBALS</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$class</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">output</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'title'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'                &lt;td align=&quot;right&quot; class=&quot;main&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$GLOBALS</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$class</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">output</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'text'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'              &lt;/tr&gt;'</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>durch</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$output_string</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;dt&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$GLOBALS</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$class</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">output</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'title'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/dt&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;dd&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$GLOBALS</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$class</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">output</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'text'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/dd&gt;'</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>zu ersetzen.<br />
In <tt>checkout_confirmation.php</tt> muss anschlieÃŸend noch die Tabelle raus, weil die kein Mensch braucht:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>MODULE_ORDER_TOTAL_INSTALLED<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$total_block</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;dl id=&quot;total_block&quot;&gt;'</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$order_total_modules</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">process</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$total_block</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$order_total_modules</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">output</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$total_block</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/dl&gt;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TOTAL_BLOCK'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$total_block</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>Bei der Gelegenheit kann man dann auch gleich alles in die if-Anweisung packen. Beim Originalcode hÃ¤tte man nÃ¤mlich, sollte das Modul nicht installiert sein, einen leeren Tabellencontainer im Markup stehen:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span></pre>
</div>
</div>
<p>[tags]xtcommerce, xtc, template, markup[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/10/jager-der-versteckten-tabellen/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Sprache englisch, Datumsformat &#8212; englisch?</title>
		<link>http://www.blogpotato.de/2007/01/10/sprache-englisch-datumsformat-englisch/</link>
		<comments>http://www.blogpotato.de/2007/01/10/sprache-englisch-datumsformat-englisch/#comments</comments>
		<pubDate>Wed, 10 Jan 2007 14:45:53 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/10/sprache-englisch-datumsformat-englisch/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>HÃ¶rt sich logisch an, oder? Deshalb will mir auch nicht in den Kopf, warum das bei xt:Commerce nicht der Fall ist. Dort wird auch dann das Datum deutsch formatiert, wenn als Sprache englisch ausgewÃ¤hlt ist. Also Tag, Monat, Jahr, getrennt mit Punkten. Getreu dem Motto â€žDon&#8217;t make me think!â€? sollte man das Ã¤ndern. LÃ¤ÃŸt sich [...]]]></description>
			<content:encoded><![CDATA[<p>HÃ¶rt sich logisch an, oder? Deshalb will mir auch nicht in den Kopf, warum das bei xt:Commerce nicht der Fall ist. Dort wird auch dann das Datum deutsch formatiert, wenn als Sprache englisch ausgewÃ¤hlt ist. Also Tag, Monat, Jahr, getrennt mit Punkten.<br />
Getreu dem Motto â€žDon&#8217;t make me think!â€? sollte man das Ã¤ndern. LÃ¤ÃŸt sich alles in <tt>lang/english/english.php</tt> erledigen, wo sich unter anderem auch die Funktion <tt>xtc_date_raw()</tt> befindet.</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DATE_FORMAT_SHORT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'%d.%m.%Y'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// this is used for strftime()</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DATE_FORMAT_LONG'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'%A, %d. %B %Y'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// this is used for strftime()</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DATE_FORMAT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'d.m.Y'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// this is used for strftime()</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DATE_TIME_FORMAT'</span><span style="color: #339933;">,</span> DATE_FORMAT_SHORT <span style="color: #339933;">.</span> <span style="color: #0000ff;">' %H:%M:%S'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DOB_FORMAT_STRING'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'dd.mm.jjjj'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> xtc_date_raw<span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #000088;">$reverse</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$reverse</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>wird geÃ¤ndert in</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DATE_FORMAT_SHORT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'%m/%d/%Y'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// this is used for strftime()</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DATE_FORMAT_LONG'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'%A %d %B, %Y'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// this is used for strftime()</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DATE_FORMAT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'m/d/Y'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// this is used for strftime()</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DATE_TIME_FORMAT'</span><span style="color: #339933;">,</span> DATE_FORMAT_SHORT <span style="color: #339933;">.</span> <span style="color: #0000ff;">' %H:%M:%S'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DOB_FORMAT_STRING'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mm/dd/jjjj'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> xtc_date_raw<span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #000088;">$reverse</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$reverse</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>Um bei der Anlage eines Kundenkontos (sofern das Geburtsdatum abgefragt wird) dann auch die richtigen Hinweise und Fehlermeldungen zu geben, mÃ¼ssen noch die Konstanten <tt>ENTRY_DATE_OF_BIRTH_ERROR</tt> und <tt>ENTRY_DATE_OF_BIRTH_TEXT</tt> angepasst werden:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ENTRY_DATE_OF_BIRTH_ERROR'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Your date of birth has to be entered in the following form MM/DD/YYYY (e.g. 05/21/1970) '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ENTRY_DATE_OF_BIRTH_TEXT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'* (e.g. 05/21/1970)'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>[tags]xtcommerce, xtc, language[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/10/sprache-englisch-datumsformat-englisch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mehr Infos rund um xt:Commerce</title>
		<link>http://www.blogpotato.de/2007/01/04/mehr-infos-rund-um-xtcommerce/</link>
		<comments>http://www.blogpotato.de/2007/01/04/mehr-infos-rund-um-xtcommerce/#comments</comments>
		<pubDate>Thu, 04 Jan 2007 10:31:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/04/mehr-infos-rund-um-xtcommerce/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Wer sich intensiver mit xt:Commerce beschÃ¤ftigen will (oder muss), findet im XT-Commerce Blog auf lopsta.com eine Liste zu (ursprÃ¼nglich) 30 Dienstleistern, Blogs und Informationsquellen rund um das Shop-System. Die Liste wird stÃ¤ndig erweitert, also ab damit in die Bookmarks. [tags]xtcommerce, xtc, lopsta[/tags]]]></description>
			<content:encoded><![CDATA[<p>Wer sich intensiver mit xt:Commerce beschÃ¤ftigen will (oder muss), findet im XT-Commerce Blog auf <a href="http://www.lopsta.com/">lopsta.com</a> eine <a href="http://www.lopsta.com/2006/12/31/xt-commerce-resourcen-liste/">Liste zu (ursprÃ¼nglich) 30 Dienstleistern, Blogs und Informationsquellen</a> rund um das Shop-System. </p>
<p>Die Liste wird stÃ¤ndig erweitert, also ab damit in die Bookmarks.</p>
<p>[tags]xtcommerce, xtc, lopsta[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/04/mehr-infos-rund-um-xtcommerce/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Willkommen in der EU, RumÃ¤nien und Bulgarien!</title>
		<link>http://www.blogpotato.de/2007/01/04/willkommen-in-der-eu-rumanien-und-bulgarien/</link>
		<comments>http://www.blogpotato.de/2007/01/04/willkommen-in-der-eu-rumanien-und-bulgarien/#comments</comments>
		<pubDate>Thu, 04 Jan 2007 08:00:11 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2007/01/04/rumanen-und-bulgaren-herzlich-willkommen-in-der-eu/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Und da waren es wieder zwei mehr. Mit wesentlich weniger TamTam als bei der letzten EU-Erweiterung, aber mit den selben Folgen: Ab sofort zahlen auch Bulgaren und RumÃ¤nen Mehrwertsteuer, wenn sie in Deutschland bestellen. Und damit der xt:Commerce-Shop das auch brav richtig macht, muss man die Tabellen anpassen: UPDATE zones_to_geo_zones SET geo_zone_id= 5 WHERE zone_country_id [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image139" src="/wp-content/uploads/2007/01/ro_bg.png" alt="ro_bg.png" class="article" /> Und da waren es wieder zwei mehr. Mit wesentlich weniger TamTam als bei der letzten EU-Erweiterung, aber mit den selben Folgen:</p>
<p>Ab sofort zahlen auch Bulgaren und RumÃ¤nen Mehrwertsteuer, wenn sie in Deutschland bestellen. Und damit der xt:Commerce-Shop das auch brav richtig macht, muss man die Tabellen anpassen:</p>
<div class="wp_syntax">
<div class="code">
<pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> zones_to_geo_zones <span style="color: #993333; font-weight: bold;">SET</span> geo_zone_id<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">5</span> <span style="color: #993333; font-weight: bold;">WHERE</span> zone_country_id <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">33</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">175</span><span style="color: #66cc66;">&#41;</span>;</pre>
</div>
</div>
<p>Das Land mit der ID 33 ist Bulgarien, das mit 175 RumÃ¤nien. Zumindest bei 3.04 SP2.1. Vorher also gegebenenfalls Ã¼berprÃ¼fen und wie immer gilt: AusfÃ¼hren auf eigene Gefahr und nur mit Backup in der Hinterhand!</p>
<p>[tags]xtc, xtcommerce, eu, erweiterung[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2007/01/04/willkommen-in-der-eu-rumanien-und-bulgarien/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>xt:C: AdressbucheintrÃ¤ge beim Checkout [upd]</title>
		<link>http://www.blogpotato.de/2006/12/22/xtc-adressbucheintrage-beim-checkout/</link>
		<comments>http://www.blogpotato.de/2006/12/22/xtc-adressbucheintrage-beim-checkout/#comments</comments>
		<pubDate>Fri, 22 Dec 2006 19:44:19 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2006/12/22/xtc-adressbucheintrage-beim-checkbot/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>[update]: Des gesagte gilt analog fÃ¼r die Rechnungsadressen in checkout_payment_address.php. Die Session zum VorauswÃ¤hlen des richten Radiobuttons ist dann aber $_SESSION["billto"]. Aus dem Werbeversprechen von xt:Commerce: Maximale FlexibilitÃ¤t durch ein Templatesystem (Smarty) Nur falls das jemand sucht: Das Markup fÃ¼r die Darstellung der Adressen aus dem Adressbuch (beim Checkout) befindet sich in checkout_shipping_address.php. $address_content = [...]]]></description>
			<content:encoded><![CDATA[<p><strong>[update]</strong>: Des gesagte gilt analog fÃ¼r die Rechnungsadressen in <tt>checkout_payment_address.php</tt>. Die Session zum VorauswÃ¤hlen des richten Radiobuttons ist dann aber <tt>$_SESSION["billto"]</tt>.</p>
<p>Aus dem <a href="http://www.xt-commerce.com/index.php?option=com_content&#038;task=view&#038;id=13&#038;Itemid=28">Werbeversprechen</a> von xt:Commerce:</p>
<blockquote><p>Maximale FlexibilitÃ¤t durch ein Templatesystem (Smarty)</p></blockquote>
<p>Nur falls das jemand sucht: Das Markup fÃ¼r die Darstellung der Adressen aus dem Adressbuch (beim Checkout) befindet sich in <tt>checkout_shipping_address.php</tt>.<br />
<span id="more-129"></span></p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$address_content</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;table border=&quot;0&quot; width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$radio_buttons</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$addresses_query</span> <span style="color: #339933;">=</span> xtc_db_query<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;select address_book_id, entry_firstname as firstname, entry_lastname as lastname, entry_company as company, entry_street_address as street_address, entry_suburb as suburb, entry_city as city, entry_postcode as postcode, entry_state as state, entry_zone_id as zone_id, entry_country_id as country_id from &quot;</span><span style="color: #339933;">.</span>TABLE_ADDRESS_BOOK<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; where customers_id = '&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customer_id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$addresses</span> <span style="color: #339933;">=</span> xtc_db_fetch_array<span style="color: #009900;">&#40;</span><span style="color: #000088;">$addresses_query</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$format_id</span> <span style="color: #339933;">=</span> xtc_get_address_format_id<span style="color: #009900;">&#40;</span><span style="color: #000088;">$address</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'country_id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$address_content</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' &lt;tr&gt;
	                &lt;td&gt;'</span><span style="color: #339933;">.</span>xtc_draw_separator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pixel_trans.gif'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'10'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                &lt;td colspan=&quot;2&quot;&gt;&lt;table border=&quot;0&quot; width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;
	                '</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'address_book_id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sendto'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$address_content</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'                  &lt;tr id=&quot;defaultSelected&quot; class=&quot;moduleRowSelected&quot; onmouseover=&quot;rowOverEffect(this)&quot; onmouseout=&quot;rowOutEffect(this)&quot; onclick=&quot;selectRowEffect(this, '</span><span style="color: #339933;">.</span><span style="color: #000088;">$radio_buttons</span><span style="color: #339933;">.</span><span style="color: #0000ff;">')&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$address_content</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'                  &lt;/tr&gt;&lt;tr class=&quot;moduleRow&quot; onmouseover=&quot;rowOverEffect(this)&quot; onmouseout=&quot;rowOutEffect(this)&quot; onclick=&quot;selectRowEffect(this, '</span><span style="color: #339933;">.</span><span style="color: #000088;">$radio_buttons</span><span style="color: #339933;">.</span><span style="color: #0000ff;">')&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$address_content</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'
	                    &lt;td&gt;'</span><span style="color: #339933;">.</span>xtc_draw_separator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pixel_trans.gif'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'10'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                    &lt;td class=&quot;main&quot; colspan=&quot;2&quot;&gt;&lt;strong&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'firstname'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">.</span><span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lastname'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/strong&gt;&lt;/td&gt;
	                    &lt;td class=&quot;main&quot; align=&quot;right&quot;&gt;'</span><span style="color: #339933;">.</span>xtc_draw_radio_field<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'address'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'address_book_id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'address_book_id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sendto'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                    &lt;td&gt;'</span><span style="color: #339933;">.</span>xtc_draw_separator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pixel_trans.gif'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'10'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                  &lt;/tr&gt;
	                  &lt;tr&gt;
	                    &lt;td&gt;'</span><span style="color: #339933;">.</span>xtc_draw_separator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pixel_trans.gif'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'10'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                    &lt;td colspan=&quot;3&quot;&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;
	                      &lt;tr&gt;
	                        &lt;td&gt;'</span><span style="color: #339933;">.</span>xtc_draw_separator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pixel_trans.gif'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'10'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                        &lt;td class=&quot;main&quot;&gt;'</span><span style="color: #339933;">.</span>xtc_address_format<span style="color: #009900;">&#40;</span><span style="color: #000088;">$format_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$addresses</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">', '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                        &lt;td&gt;'</span><span style="color: #339933;">.</span>xtc_draw_separator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pixel_trans.gif'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'10'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                      &lt;/tr&gt;
	                    &lt;/table&gt;&lt;/td&gt;
	                    &lt;td&gt;'</span><span style="color: #339933;">.</span>xtc_draw_separator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pixel_trans.gif'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'10'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	                  &lt;/tr&gt;
	                &lt;/table&gt;&lt;/td&gt;
	                &lt;td&gt;'</span><span style="color: #339933;">.</span>xtc_draw_separator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pixel_trans.gif'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'10'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;
	              &lt;/tr&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$radio_buttons</span> <span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$address_content</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/table&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'BLOCK_ADDRESS'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$address_content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Hier eine sinvollere und dreimal so kurze Alternative:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">		<span style="color: #000088;">$address_content</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;ul id=&quot;address_block&quot;&gt;'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$radio_buttons</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$addresses_query</span> <span style="color: #339933;">=</span> xtc_db_query<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;select address_book_id, entry_firstname as firstname, entry_lastname as lastname, entry_company as company, entry_street_address as street_address, entry_suburb as suburb, entry_city as city, entry_postcode as postcode, entry_state as state, entry_zone_id as zone_id, entry_country_id as country_id from &quot;</span><span style="color: #339933;">.</span>TABLE_ADDRESS_BOOK<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; where customers_id = '&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'customer_id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$addresses</span> <span style="color: #339933;">=</span> xtc_db_fetch_array<span style="color: #009900;">&#40;</span><span style="color: #000088;">$addresses_query</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$format_id</span> <span style="color: #339933;">=</span> xtc_get_address_format_id<span style="color: #009900;">&#40;</span><span style="color: #000088;">$address</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'country_id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000088;">$address_content</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;li&gt;%s&lt;label for=&quot;field_addresses_%s&quot;&gt;%s %s&lt;/label&gt;&lt;br /&gt;&lt;span class=&quot;address&quot;&gt;%s&lt;/span&gt;&lt;/li&gt;'</span><span style="color: #339933;">,</span> xtc_draw_radio_field<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'address'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'address_book_id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'address_book_id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sendto'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'address_book_id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'firstname'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$addresses</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lastname'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>xtc_address_format<span style="color: #009900;">&#40;</span><span style="color: #000088;">$format_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$addresses</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">', '</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$radio_buttons</span> <span style="color: #339933;">++;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$address_content</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/ul&gt;'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'BLOCK_ADDRESS'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$address_content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Auch wenn mich dieses vermischen von php-Code und Markup nicht wirklich begeistert.</p>
<p>Wenn wir gerade dabei sind kÃ¶nnen wir auch noch die AbkÃ¼rzungen fÃ¼r die BundeslÃ¤nder aktualisieren, oder wer assoziiert Hamburg mit HAM und Rheinland-Pfalz mit RHE? Um einer Standardinstallation die AbkÃ¼rzungen gemÃ¤ÃŸ ISO-3166-2 zu spendieren, ist der Datenbank folgendes mitzuteilen:</p>
<div class="wp_syntax">
<div class="code">
<pre class="sql92" style="font-family:monospace;">update zones set zone_code = 'NI' where zone_id = 79;
update zones set zone_code = 'BW' where zone_id = 80;
update zones set zone_code = 'BY' where zone_id = 81;
update zones set zone_code = 'BE' where zone_id = 82;
update zones set zone_code = 'BR' where zone_id = 83;
update zones set zone_code = 'HB' where zone_id = 84;
update zones set zone_code = 'HH' where zone_id = 85;
update zones set zone_code = 'HE' where zone_id = 86;
update zones set zone_code = 'MV' where zone_id = 87;
update zones set zone_code = 'NW' where zone_id = 88;
update zones set zone_code = 'RP' where zone_id = 89;
update zones set zone_code = 'SL' where zone_id = 90;
update zones set zone_code = 'SN' where zone_id = 91;
update zones set zone_code = 'ST' where zone_id = 92;
update zones set zone_code = 'SH' where zone_id = 93;
update zones set zone_code = 'TH' where zone_id = 94;</pre>
</div>
</div>
<p>[tags]xt:commerce, xtc, templates, statecode[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2006/12/22/xtc-adressbucheintrage-beim-checkout/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Sinnvolle Tabellen</title>
		<link>http://www.blogpotato.de/2006/12/22/sinnvolle-tabellen/</link>
		<comments>http://www.blogpotato.de/2006/12/22/sinnvolle-tabellen/#comments</comments>
		<pubDate>Fri, 22 Dec 2006 10:07:14 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2006/12/22/sinnvolle-tabellen/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Es tut sich was: Eines der beiden im Post Tabellenlos um jeden Preis angesprochenen Templates, i24-cssblau von install24.com ist derzeit im Shop nicht erhÃ¤ltlich. Es befindet sich derzeit in der Ãœberarbeitung und das einzige derzeit im Shop erhÃ¤ltliche Template verzichtet bereits auf die bemÃ¤ngelten tabellenlosen Tabellen und hat auch sonst einiges an codetechnischen Verbesserungen an [...]]]></description>
			<content:encoded><![CDATA[<p>Es tut sich was: Eines der beiden im Post <a href="http://www.blogpotato.de/2006/12/18/tabellenlos-um-jeden-preis/">Tabellenlos um jeden Preis</a> angesprochenen Templates, i24-cssblau von <a href="http://www.install24.com/">install24.com</a> ist derzeit im Shop nicht erhÃ¤ltlich.</p>
<p>Es befindet sich derzeit in der <a href="http://www.xtc-shops.de/2006/12/13/tabellenfreies-xt-commerse-template/#comment-1546">Ãœberarbeitung</a> und das einzige derzeit im Shop erhÃ¤ltliche Template verzichtet bereits auf die bemÃ¤ngelten tabellenlosen Tabellen und hat auch sonst einiges an codetechnischen Verbesserungen an Bord.<br />
Das ist mal eine wirklich schnelle Reaktion und bestÃ¤tigt den eingeschlagenen Weg der VerÃ¶ffentlichung, auch wenn der im xt:Commerce-Forum teilweise heftige Kritik ausgelÃ¶st hat.</p>
<p>[tags]xhtml, css, xt:commerce, template[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2006/12/22/sinnvolle-tabellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tabellenlos um jeden Preis&#8230;</title>
		<link>http://www.blogpotato.de/2006/12/18/tabellenlos-um-jeden-preis/</link>
		<comments>http://www.blogpotato.de/2006/12/18/tabellenlos-um-jeden-preis/#comments</comments>
		<pubDate>Mon, 18 Dec 2006 18:48:12 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2006/12/18/tabellenlos-um-jeden-preis/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Wir haben noch einen weiten Weg vor uns. Einen sehr weiten&#8230; Im Shop von xt:Commerce gibt es neuerdings ein CSS-basiertes Template, darauf aufmerksam geworden bin ich aber durch ein Posting im Sponsorenbereich (deshalb auch keinen Link dorthin), wo auch noch zwei Alternativen prÃ¤sentiert werden. Leider haben alle drei Templates respektive deren Designer eines gemein: Sie [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Wir haben noch einen weiten Weg vor uns. Einen sehr weiten&#8230;</strong></p>
<p>Im <a href="http://www.xtcommerce-shop.com/index.php/cPath/11/category/templates.html">Shop von xt:Commerce</a> gibt es neuerdings ein CSS-basiertes Template, darauf aufmerksam geworden bin ich aber durch ein Posting im Sponsorenbereich (deshalb auch keinen Link dorthin), wo auch noch zwei Alternativen prÃ¤sentiert werden. </p>
<p>Leider haben alle drei Templates respektive deren Designer eines gemein: Sie haben es nicht verstanden. Man hat irgendwo mal was aufgeschnappt, dass man Layouts mit Tabellen nicht mehr machen wÃ¼rde und stattdessen CSS das Mittel der Wahl wÃ¤re und macht es halt jetzt so, weil es hip ist. Ansonsten hat sich an der Arbeitsweise nichts geÃ¤ndert, der Quellcode ist weiterhin vÃ¶llig unnÃ¶tig aufgeblasen, nur die Tags haben sich geÃ¤ndert.</p>
<p>Die beiden kommerziell erhÃ¤ltlichen Templates habe ich mir mal nÃ¤her angesehen:</p>
<ul>
<li><a href="/2006/12/18/tabellenlos-um-jeden-preis/#greenvelvet">GreenVelvet: Anpassungen mit Samthandschuhen</a></li>
<li><a href="/2006/12/18/tabellenlos-um-jeden-preis/#i24">i24-cssblau: TABLElos sinnlos</a></li>
</ul>
<p><span id="more-125"></span></p>
<h3 id="greenvelvet">Anpassungen mit Samthandschuhen</h3>
<p>Beispiel <a href="http://www.xtcommerce-shop.com/product_info.php/products_id/60/cPath/11/templates/template-greenvelvet.html">GreenVelvet</a>, das angesprochene, im xt:Commerce-Shop angebotene Template. Die Zitate sind aus dem xt:Commerce-Shop. Die Rechtschreibfehler auch.</p>
<blockquote><p>Nahezu tabellebloses (CSS basiertes) Template fÃ¼r den xt:Commerce Shop v3.0.4 SP2! Dieses Template basiert (im Gegensatz zu den Standard-Templates des xt:Commerce Shops) auf der Stylesheet Technologie (CSS)</p></blockquote>
<p>Die Aussage ist per se schon mal falsch. Auch das Standardtemplate von xt:Commerce nutzt CSS. Davon ab: xt:Commerce wirklich von seinen vielen Layout-Tabellen zu entkernen ist eine Lebensaufgabe. Definitiv. Deshalb nehme ich es auch keinem Designer Ã¼bel, wenn er die ein oder andere Tabelle, die sich in den Untiefen des php-Codes versteckt und einem eben nicht die FlexibilitÃ¤t gibt, die man sich durch den Einsatz einer Template-Engine verspricht und die einem auch durch entsprechende <a href="http://www.xt-commerce.com/index.php?option=com_content&#038;task=view&#038;id=13&#038;Itemid=28">Werbeversprechen</a> suggeriert wird, nicht rausbekommt.<br />
Aber, nehmen wir als Beispiel die Login-Box, auf deren komplettes Markup in <tt>boxes/box_login.html</tt> problemlos Einfluss genommen werden kann. Nur Tabellenverschachtelungen aufzulÃ¶sen, um dann doch Tabellen fÃ¼r Layoutzwecke zu miÃŸbrauchen, ist definitiv am Ziel vorbeigeschossen. </p>
<blockquote><p>Bis zu 70% weniger HTML Quelltext</p></blockquote>
<p>Ohne das anhand irgendwelcher Berechnungen belegen zu kÃ¶nnen: Bei konsequenter Vorgehensweise hÃ¤tten wir wahrscheinlich 90% weniger Quelltext. Vielleicht sogar noch mehr. Ich hab auch keine Ahnung, auf was sich die Zahl bezieht. Auf das Gesamtprodukt wahrscheinlich nicht, denn dann kÃ¶nnte man da was verbindliches hinschreiben. Kein &#8216;bis zu&#8217;. Die Info-Boxen sind damit jedenfalls nicht gemeint.</p>
<p>GroÃŸe TÃ¶ne spucken kann jeder, deshalb hier Handfestes:</p>
<p>Das ist der Originalcode aus dem Demoshop.</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;infoBoxHeading_right&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span>  <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;infoBoxHeading_right&quot;</span>&gt;</span>Willkommen zurÃ¼ck! <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>Â <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;infoBox_right&quot;</span> <span style="color: #000066;">align</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;left&quot;</span>&gt;</span> <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;95%&quot;</span>  <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;boxText&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loginbox&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/login.php/action/process/&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;XTCsid&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span>  <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
					<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;main&quot;</span>&gt;</span>eMail-Adresse:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
					<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;email_address&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;25&quot;</span> <span style="color: #000066;">maxlength</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
					<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;main&quot;</span>&gt;</span>Passwort:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
					<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span>  <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;</span>
						<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
							<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">maxlength</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span> <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
							<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;image&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;templates/xtc4/buttons/german/button_login_small.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Anmelden&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; Anmelden &quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
						<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
					<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;infoBox_right&quot;</span> <span style="color: #000066;">align</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;right&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/password_double_opt.php/&quot;</span>&gt;</span>Passwort vergessen?<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span></pre>
</div>
</div>
<p>Ãœbel. Aber soll ja eh nur als abschreckendes Beispiel dienen.</p>
<p>In GreenVelvet sieht das jetzt so aus:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;boxVarianteZweiHeader&quot;</span>&gt;</span>Willkommen zurÃ¼ck!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;boxVarianteZweiBody&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;margin-bottom:15px;&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loginbox&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/login.php/action/process/&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;XTCsid&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span>  <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>eMail-Adresse:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;email_address&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;25&quot;</span> <span style="color: #000066;">maxlength</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;padding-top:6px;&quot;</span>&gt;</span>Passwort:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span>  <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;padding-right:4px;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">maxlength</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span> <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
				<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;image&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;templates/GreenValvet/buttons/german/button_login_small.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Anmelden&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; Anmelden &quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;padding-top:8px;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">hr</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/password_double_opt.php/&quot;</span>&gt;</span>Passwort vergessen?<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>Ich bin BrillentrÃ¤ger seit Geburt. Es kÃ¶nnte durchaus sein, dass ich den Vorteil des ganzen rein optisch nicht sofort erfasse. Aber was zum Geier will ich mit dem Inline-CSS, das mir bei spÃ¤teren Designanpassungen nur unnÃ¶tig Arbeit und Probleme verursacht? Und mit dem unnÃ¶tigen Blocklevel-Element, mit dem ein anderes Blocklevel-Element eingeschlossen wird? Und was will ich mit dieser Tabelle? Von der nicht vorhandenen semantischen Relevanz der eingesetzten Tags mal ganz zu schweigen.</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loginbox&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/login.php/action/process/&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;XTCsid&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">fieldset</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">legend</span>&gt;</span>Willkommen zurÃ¼ck!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">legend</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">label</span> <span style="color: #000066;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;field_email&quot;</span>&gt;</span>eMail-Adresse:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">label</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;email_address&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;25&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;field_email&quot;</span> <span style="color: #000066;">maxlength</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">label</span> <span style="color: #000066;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;field_password&quot;</span>&gt;</span>Passwort:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">label</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;field_password&quot;</span> <span style="color: #000066;">maxlength</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;image&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;templates/GreenValvet/buttons/german/button_login_small.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Anmelden&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; Anmelden &quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
			<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/password_double_opt.php/&quot;</span>&gt;</span>Passwort vergessen?<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">fieldset</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span></pre>
</div>
</div>
<p>Man kann jetzt darÃ¼ber streiten, ob man unter semantischen Gesichtspunkten eine <a href="http://www.alistapart.com/articles/prettyaccessibleforms">sortiere Liste</a> anstatt der <tt>&lt;p&gt;</tt>-Tags einsetzt. Aber man kann es auch Ã¼bertreiben mit Listen.<br />
Den Submit-Button lassen wir mal so. Um mit <tt>&lt;button&gt;</tt> weitreichendere GestaltungsmÃ¶glichkeiten zu haben und nicht zwanghaft das Bild im Markup platzieren mÃ¼ÃŸten, wÃ¼rde weitreichende Ã„nderungen in der Shopsoftware erfordern.<br />
Die Formatierung wird komplett per CSS geregelt, um aber z.B. den Submit-Button rechts vom Passwort-Feld zu haben, mÃ¼sste man noch ein paar Klassen zuweisen.</p>
<p>Kommen wir jetzt aber zum Schwanzvergleich: </p>
<p>Der Originalcode liegt bei 1434 Byte, die GreenVelvet-Variante schafft es immer noch auf 1055 Bytes, was Ï€ mal Daumen 73,5% der OriginalgrÃ¶ÃŸe sind (damit liegt das Einsparpotential bei weniger als 30%!). Mein Code kommt auf 756 Bytes. Damit habe ich den kleinsten. Code, wohlgemerkt. Und gleichzeitig mit fast 50% das grÃ¶ÃŸte Einsparpotential (47,3% fÃ¼r die NietenzÃ¤hler). Und das ist nur ein Beispiel von vielen.</p>
<blockquote><p>Alle MenÃ¼punkte sind in Listenform abgebildet und kÃ¶nnen mit wenigen Schritten im Stylesheet angepasst werden</p></blockquote>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submenu&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;margin-bottom:15px;&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;header&quot;</span>&gt;</span>Kategorien<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;level1&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/index.php/cat/c4_Onlineshops.html/&quot;</span>&gt;</span>Onlineshops<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;level1&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/index.php/cat/c1_Shopsoftware.html/&quot;</span>&gt;</span>Shopsoftware<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;level1&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/index.php/cat/c2_Shopsysteme.html/&quot;</span>&gt;</span>Shopsysteme<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;level1&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/index.php/cat/c3_E-commerce.html/&quot;</span>&gt;</span>E-commerce<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>Hat jemand die Liste gesehen? Die muss irgendwo auf dem Weg abhanden gekommen sein. Das gilt analog fÃ¼r so ziemlich alle Ã¼brigen Navigationen auch. <tt>/boxes/box_content.html</tt>, <tt>/boxes/box_information.html</tt>, <tt>/boxes/box_best_sellers.html</tt>, alles keine Listen, aber optisch auf Liste getrimmt. Die einzige wirkliche Liste ist die Top-Navigation. Aber entweder muss ich das unter Lernresistenz verbuchen oder einfach unter Unwissen. </p>
<p>Das ganze soll, wenn es fertig ist, mal so aussehen:<br />
<img src="/wp-content/uploads/misc/img/horizontalmenu.png" alt="Horizontales MenÃ¼ von GreenVelvet" /></p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;horizontalmenu&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;link&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/shopping_cart.php&quot;</span>&gt;</span>Warenkorb<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;img/menuspacer.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Menabstand&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;36&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;border:none; padding:0px; margin:0px; line-height:0px; display:block;&quot;</span><span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;link&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/account.php&quot;</span>&gt;</span>Ihr Konto<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;img/menuspacer.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Menabstand&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;36&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;border:none; padding:0px; margin:0px; line-height:0px; display:block;&quot;</span><span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;link&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xtc-demo.de/checkout_shipping.php&quot;</span>&gt;</span>Kasse<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;img/menuspacer.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Menabstand&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;36&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;border:none; padding:0px; margin:0px; line-height:0px; display:block;&quot;</span><span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span></pre>
</div>
</div>
<p>UnnÃ¶tige Klassenzuweisungen, Inline-CSS und sinnlose Alternativtexte fÃ¼r Platzhalter, bei denen ich mir gar nicht vorstellen will, wie sie ein Screenreader artikuliert. Ich hatte nicht erwartet, heutzutage noch so viel BlÃ¶dsinn auf so wenig Raum zu sehen&#8230;<br />
Dazu kommen dann noch 41 Zeilen CSS, die den Rest der Formatierung Ã¼bernehmen.</p>
<p><a href="/wp-content/uploads/misc/horizontalmenu.htm">Horizontales MenÃ¼ mit Originalcode</a></p>
<p>Man kann das ganze aber auch mit fÃ¼nf Zeilen Markup und ohne Inline-CSS oder irgendwelche Spacer-EintrÃ¤gen realisieren:</p>
<p><a href="/wp-content/uploads/misc/horizontalmenu.reloaded.htm">Modifiziertes Horizontales MenÃ¼ (aka Horizontales MenÃ¼ reloaded)</a></p>
<p>Ich habe die in Pixeln definierte SchriftgrÃ¶ÃŸe mal dringelassen, der Vergleichbarkeit wegen. Und ja, ich benutze line-height, um eine vertikal zentrierte Ausrichtung von Text zu erreichen. Denn die vertikale Ausrichtung ist nach wie vor eine der (Kinder-)Krankheiten von CSS.</p>
<blockquote><p>Inklusive sÃ¤mtlicher Darstellungs- Bugfixes fÃ¼r den Internet Explorer!</p></blockquote>
<p>Alle im einen globalen Stylesheet. Realisiert durch den <a href="http://wellstyled.com/css-underscore-hack.html">Underscore-Hack</a>. Damit auch die Browser, die diese Hacks nicht brauchen, genÃ¶tigt werden, sie mit zu laden. Mit <a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp">Conditional Comments</a> wÃ¤r&#8217; das nicht passiert.<br />
Und die Hacks hÃ¤tte man sich wahrscheinlich sogar sparen kÃ¶nnen, wenn man gleich zu Beginn die Standardwerte der Browser fÃ¼r paddings, margins und borders zurÃ¼ckgesetzt hÃ¤tte:</p>
<div class="wp_syntax">
<div class="code">
<pre class="css" style="font-family:monospace;"><span style="color: #00AA00;">*</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre>
</div>
</div>
<p>Da hat sich einer wirklich MÃ¼he gegeben. Die hÃ¤tte er sich aber auch sparen kÃ¶nnen. So ist das Template um keinen Deut besser als das standardmÃ¤ÃŸig beiliegende&#8230;</p>
<h3 id="i24">TABLElos sinnlos</h3>
<p><em>(Ja, die Ãœberschrift ist <a href="http://www.bs-markup.de/blog/archiv/2006/01/23/divlos-sinnlos/">geklaut</a>)</em> </p>
<p>Die Idee, die Layout-Tabellen aus xt:Commerce zu verbannen ist ja nicht neu. Auf die <a href="http://yaml.t3net.de/YAML-fuer-xt-Commerce.101.0.html">YAML-Implementierung</a> fÃ¼r xt:C hatte ich ja <a href="http://www.blogpotato.de/2006/12/14/yaml-wird-zum-buch/">schon hingewiesen</a>. Und natÃ¼rlich haben auch andere Anbieter fertiger xt:C-Templates entsprechende Pferde im Stall. <a href="http://www.install24.com/Rund-um-XTC/XTC-Templates/CSS-Template-i24-cssblau::95.html">i24-cssblau</a> ist so eines. </p>
<p>Vom Ansatz her wirkt das ganze vielversprechend. Die Ãœberschriften der Boxen sind dank <tt>&lt;h3&gt;</tt>-Auszeichnung auch als solche zu erkennen, Navigationselemente in den Boxen sind beispielsweise als Liste ausgezeichnet und die notwendigen Styles fÃ¼r den Internet Explorer werden Ã¼ber Conditional Comments eingebunden. Die Benamung und der Aufbau der Stylesheets legt den Schluss nahe, dass das ganze auf <a href="http://www.yaml.de/">YAML</a> basiert, steht nur nirgends. <a href="http://creativecommons.org/licenses/by/2.0/de/deed.de">Sollte es aber</a>, wenn es denn so ist.</p>
<p>Schaut man gezielt unter die Haube, fallen dann aber doch einige Ungereimtheiten ins Auge. </p>
<p>Das fÃ¤ngt mit der zentrierten Ausrichtung des Layouts an, die mit einem</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">align</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;center&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>direkt nach dem Body erreicht wird, im CSS findet sich fÃ¼r <tt>#hauptrahmen</tt> aber auch die Ã¼bliche Vorgehensweise mittels</p>
<div class="wp_syntax">
<div class="code">
<pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#hauptrahmen</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre>
</div>
</div>
<p>Doppelt gemoppelt hÃ¤lt besser&#8230;</p>
<p>Auch die Ãœberschriften sind nicht wirklich logisch aufgebaut. So sind zwar die Boxen-Ãœberschriften als <tt>&lt;/h3&gt;</tt> ausgezeichnet, Ãœberschriften erster Ordnung werden mehrfach verwendet (was zumindest vom Validator nicht bemÃ¤ngelt wird, der prÃ¼ft ja aber auch auf Syntax, nicht auf Logik), dafÃ¼r fehlen Ãœberschriften zweiter Ordnung gÃ¤nzlich.</p>
<p>Die Navigation in den Boxen ist, wie schon erwÃ¤hnt, mit Listen gelÃ¶st. Allerdings werden die Unterkategorien nur optisch eingerÃ¼ckt, die Listen sind nicht korrekt ineinander verschachtelt. Wie das geht, steht <a href="http://www.blogpotato.de/2006/11/16/xtc-und-semantisch-korrekter-code/">hier</a>. Die Top-Navigation wurde dabei glatt vergessen:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;topmenu&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.shop.xtc-services.de/account.php&quot;</span>&gt;</span>Ihr Konto<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span> | <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.shop.xtc-services.de/shopping_cart.php&quot;</span>&gt;</span>Warenkorb<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span> | <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.shop.xtc-services.de/checkout_shipping.php&quot;</span>&gt;</span>Kasse<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<blockquote><p>Bis zu 70% weniger HTML Quelltext, dadurch sind Wesentlich geringere Ladezeiten der Shopseiten mÃ¶glich.</p></blockquote>
<p>Wieder die Loginbox als Vorlage nehmend kommen wir hier nur noch auf 718 Bytes, was in etwa 50% der originalen GrÃ¶ÃŸe sind (das hidden-Feld wurde fÃ¼r die Vergleichbarkeit hinzugefÃ¼gt). Ich bin geschlagen, kann damit aber leben.</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box_header_right&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>Willkommen zurÃ¼ck!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h3</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box_center_right&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loginbox&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.shop.xtc-services.de/login.php?action=process&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;XTCsid&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
		eMail-Adresse:<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;email_address&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;25&quot;</span> <span style="color: #000066;">maxlength</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
		Passwort:<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">maxlength</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;image&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;templates/i24-cssblau/buttons/german/button_login_small.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Anmelden&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; Anmelden &quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text-align: right;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.shop.xtc-services.de/password_double_opt.php&quot;</span>&gt;</span>Passwort vergessen?<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>Es wird keinerlei Zuordnung der Label-Texte zu den zugehÃ¶rigen Feldern vorgenommen, Inline-CSS sorgt fÃ¼r eine rechtsbÃ¼ndige Ausrichtung des Textes und das Blocklevel-Element <tt>&lt;form&gt;</tt> steht nach wie vor in einem <tt>&lt;div&gt;</tt>-Container und auch die Ãœberschrift ist unsinnigerweise in einem solchen eingeschlossen. Dieses zwanghafte Verschachteln erinnert an Tabellenlayouts, ist unnÃ¶tig und zieht sich konsequent durch das gesamte Design. </p>
<p>Apropos Tabellen, die sucht man in der Tat vergebens. </p>
<blockquote><p>
Das Template ist ein reines CSS Template ohne eine Tabelle.<br />
<strong>Es wurden aus allen Template Dateien alle Tabellen entfernt.</strong>
</p></blockquote>
<p>Das kann man wÃ¶rtlich nehmen. Es wurden rigoros und ohne RÃ¼cksicht auf Verluste alle Tabellen entfernt. Auch dort, wo sie durchaus Sinn machen. Wir erinnern uns: Tabellen nutzt man zum Darstellen tabellarischer Inhalte. Und die gibt es beispielsweise im Warenkorb. Ohne Tabellen sieht das dann so aus:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:10%; display: block; float:left;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>Anzahl<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">strong</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:44%; display: block; float:left;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>Artikel<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">strong</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:20%;  display: block;float:left;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>Einzelpreis<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">strong</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:20%;display:block;float:left; &quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>Summe<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">strong</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:5%;display:block; float:left;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>X<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">strong</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;clear: both;&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;cartbg1&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:10%; display: block; float:left;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;cart_quantity[]&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;products_id[]&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;old_qty[]&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:44%; display: block; float:left; &quot;</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">strong</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.shop.xtc-services.de/Individual-Designs/Individual-XTC-Template-Light::1.html&quot;</span>&gt;</span>Individual XTC Template Light<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
&nbsp;
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
&nbsp;
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:20%;  display: block;float:left;&quot;</span>&gt;</span> 95,00 EUR<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:20%;display:block;float:left; &quot;</span>&gt;</span> 95,00 EUR<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:5%;display:block;float:left; &quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;checkbox&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;cart_delete[]&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;clear: both;&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>Das ist, gelinde gesagt, der grÃ¶ÃŸte Schwachsinn, der mir in <a href="http://www.webkrauts.de/2006/12/18/10-jahre-css1-9-jahre-html4/">10 Jahren CSS</a> je untergekommen ist.</p>
<p>Und als ob das noch nicht genug wÃ¤re kommen unverzeihliche Usability-Fehler hinzu. So lassen sich die Produktbeschreibungen und zusÃ¤tzliche Bilder erst durch einen Klick einsehen, Ã¼ber Javascript wird dabei das jeweilige Element auf sichtbar geschalten. Bei deaktiviertem Javascript schaut man in die RÃ¶hre. DarÃ¼ber hinaus ist die angedeutete Tabnavigation mit Bildern gelÃ¶st. Warum sich der Mauszeiger beim Ãœberfahren eben dieser in einen Hilfe-Cursor wandelt, erschlieÃŸt sich auch nicht.</p>
<p>Dabei ist eine <a href="http://alistapart.com/articles/slidingdoors/">Tabnavigation mit CSS</a> wirklich kein Hexenwerk, zumal wenn es um <a href="/wp-content/uploads/misc/tabnav.html">stinknormale, eckige Tabs</a> geht. </p>
<p>Wenn das die Antwort auf tabellenbasierte Layouts sein soll, dann wollen wir hoffen, das sie mÃ¶glichst schnell ungehÃ¶rt verhallt. Auf der anderen Seite zeigt es auch, das Seiten wie <a href="http://www.webkrauts.de/">Webkrauts</a>, <a href="http://www.vorsprungdurchwebstandards.de/">Vorsprung durch Webstandards</a> und alle anderen weiter machen mÃ¼ssen mit ihrer AufklÃ¤rungsarbeit, um allen Beteiligten nahezubringen, das eine Website nicht zwangslÃ¤ufig deshalb eine bessere Website ist, weil sie keine Tabellen mehr verwendet. Selbst die Tatsache, das eine Website validiert, ist schlieÃŸlich kein QualitÃ¤tsmerkmal, wie das Beispiel <a href="http://www.blogpotato.de/2006/01/19/professionelles-webdesign/">iWeb</a> deutlich zeigt. Zu modernem Webdesign gehÃ¶rt definitiv mehr als Tags in einen Editor zu tippen, die nicht mit <tt>&lt;t</tt> beginnen.</p>
<p>Ich bin zwar etwas frÃ¼h dran, aber wenn es etwas gibt, das ich mir 2007 wÃ¼nsche, dann sind es Webdeveloper, welche die ihnen an die Hand gegebenen Werkzeuge vernÃ¼nftig einzusetzen wissen und nicht, weil sie irgendwo was aufgeschnappt haben, das alte Chaos mit neuen Tags und Attributen versehen.</p>
<p>[tags]xhtml, css, webdevelopment, webstandards, accessibility[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2006/12/18/tabellenlos-um-jeden-preis/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>YAML in Buchform</title>
		<link>http://www.blogpotato.de/2006/12/14/yaml-wird-zum-buch/</link>
		<comments>http://www.blogpotato.de/2006/12/14/yaml-wird-zum-buch/#comments</comments>
		<pubDate>Thu, 14 Dec 2006 09:18:53 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2006/12/14/yaml-wird-zum-buch/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>YAML (Yet Another Multicolumn Layout) kannte ich schon. Hatte aber nie den Nerv und die Zeit, mich damit intensiv auseinanderzusetzen. Da ich aber aktuell wieder am &#8220;CSS-fÃ¼r-den-IE&#8221;-Debuggen bin, ist ein Framework, das die ganzen mÃ¶glicherweise damit auftretenden Probleme schon mal von vornherein ausrÃ¤umt, natÃ¼rlich goldrichtig. Da ich ungern grÃ¶ÃŸere Abhandlungen am Monitor lese kommt das [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yaml.de/">YAML</a> (Yet Another Multicolumn Layout) kannte ich schon. Hatte aber nie den Nerv und die Zeit, mich damit intensiv auseinanderzusetzen. Da ich aber aktuell wieder am &#8220;CSS-fÃ¼r-den-IE&#8221;-Debuggen bin, ist ein Framework, das die ganzen mÃ¶glicherweise damit auftretenden Probleme schon mal von vornherein ausrÃ¤umt, natÃ¼rlich goldrichtig. </p>
<p>Da ich ungern grÃ¶ÃŸere Abhandlungen am Monitor lese kommt das <a href="http://www.amazon.de/exec/obidos/ASIN/3898428370/baseballinbay-21">Buch</a> gerade recht.  Gerrit hat seines als <a href="http://praegnanz.de/weblog/yaml-buch-ist-angekommen"> Rezensionsexemplar</a> bekommen, ich muss sehen, wo ich bleibe, aber <a href="http://www.amazon.de/exec/obidos/ASIN/3898428370/baseballinbay-21">Amazon</a> will ja auch von was leben. </p>
<p>Ebenfalls interessant in dem Zusammenhang: Es gibt bereits ein (fast) fertiges, auf YAML basierendes Template fÃ¼r <a href="http://yaml.t3net.de/YAML-fuer-xt-Commerce.101.0.html">xt:Commerce</a>. Allerdings habe ich in das meinige schon sehr viel Energie und Zeit investiert, ein Umstieg erscheint da nicht wirklich sinnvoll. Vielleicht mal fÃ¼r einen zukÃ¼nftigen Shop. Aber dann wohl auch nur als Grundlage. Denn das fertige Template gleicht eher einer div-Suppe&#8230;</p>
<p>[tags]yaml, framework, css, xhtml[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2006/12/14/yaml-wird-zum-buch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CubeCart: Alternative zu xt:Commerce?</title>
		<link>http://www.blogpotato.de/2006/11/23/cubecart-alternative-zu-xtcommerce/</link>
		<comments>http://www.blogpotato.de/2006/11/23/cubecart-alternative-zu-xtcommerce/#comments</comments>
		<pubDate>Thu, 23 Nov 2006 08:33:26 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2006/11/23/cubecart-alternative-zu-xtcommerce/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Gunnar hat einen interessanten Shop ausgemacht: CubeCart. Ich habe mir den gerade mal installiert, vor allem wegen dem tabellenlosen Layoutansatz. Ich bin jetzt nicht so aus dem HÃ¤uschen vor Begeisterung. Aber erstmal zu den Fakten: 100% Template driven Ein wichtiger Punkt. Und keine leere WorthÃ¼lse wie â€žKomplettes Layout Ã¼ber HTML Templates zb mit Dreamwaever etc [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gunnart.de/">Gunnar</a> hat einen interessanten Shop ausgemacht: <a href="http://www.cubecart.com/">CubeCart</a>. </p>
<p>Ich habe mir den gerade mal installiert, vor allem wegen dem tabellenlosen Layoutansatz. Ich bin jetzt nicht so aus dem HÃ¤uschen vor Begeisterung. Aber erstmal zu den Fakten:</p>
<ul>
<li><strong>100% Template driven</strong><br />
Ein wichtiger Punkt. Und keine leere WorthÃ¼lse wie â€žKomplettes Layout Ã¼ber HTML Templates zb mit Dreamwaever etc editierbarâ€? (xt:Commerce). </li>
<li><strong>Valides HTML und CSS</strong><br />
Auch richtig. Auch wichtig. Leider divitis. Listen werden zwar dort eingesetzt, wo sie sinnvoll sind, aber alles andere wird Ã¼ber div-Tags realisiert, was dann doch wieder Nacharbeit erfordert.</li>
<li><strong>Sprachvielfalt</strong><br />
CubeCart bringt von Haus aus schonmal zwÃ¶lf Sprachen mit. Das kann sich sehen lassen.</li>
<li><strong>AufgerÃ¤umtes Backend</strong><br />
Wirkt wesentlich Ã¼bersichtlicher als das von xt:Commerce, wo ich meistens Ã¼ber die Suchen-Funktion des Browsers â€žnavigiereâ€?, weil durch die endlos lange Liste keiner durchblickt.</li>
<li><strong>Intelligentere Verwaltung der Sprachen</strong><br />
FÃ¼nf Sprachen in xt:Commerce? Das heiÃŸt fÃ¼nf Textfelder fÃ¼r die Produktbeschreibung, klickt man auf ein Produkt zum bearbeiten. LÃ¤dt ewig und fÃ¼hrt in Safari zu Fehlermeldungen, weil man keinen vernÃ¼nftigen Fallback fÃ¼r den WYSIWYG-Editor eingebaut hat. CubeCart listet Sprachvarianten auf einer eigenen Seite, man ruft also nur die auf, die man aktuell auch bearbeiten will.</li>
</ul>
<p>HÃ¶rt sich alles sehr gut an. Aber keine Medaille ohne RÃ¼ckseite. </p>
<ul>
<li><strong>Navigation nur auf einer Ebene</strong><br />
Die Kategorien-Navigation zeigt immer nur die Hauptkategorien. Alle Unterkategorien erscheinen nur im Content-Bereich. Aber so spart man sich natÃ¼rlich das Problem, korrekt geschachtelte Listen fÃ¼r die Navigation zu generieren.</li>
<li><strong>Inkonsistente Navigation</strong><br />
Im Warenkorb ist die Kategoriennavigation plÃ¶tzlich weg. ZurÃ¼ck geht es nur Ã¼ber den Homepage-Link.</li>
<li><strong>Hakelige Zuweisung von Produkten zu mehreren Kategorien</strong><br />
Dass das nur Ã¼ber ein Popup geht, mag noch angehen. Das man aber auch nur im Popup sieht, welchen zusÃ¤tzliche Kategorien das Produkt zugewiesen ist, ist nicht wirklich benutzerfreundlich.</li>
<li><strong>Kein Im-/Export</strong><br />
Mag jetzt fÃ¼r jemanden mit 20 Produkten nicht das K.O.-Kriterium sein, wenn ich dem Kollegen aber erzÃ¤hle, das er doch bitte nochmal alle 2500 Produkte in CubeCart einpflegen mÃ¶ge, weil ich mir nicht sicher bin, ob das nicht mÃ¶glicherweise die bessere ShoplÃ¶sung ist, dann reiÃŸt der mir mit Sicherheit den Kopf ab&#8230;</li>
<li><strong>Keine SEO-optimierten URLs</strong><br />
Suchmaschinenfreundlichkeit gibt es nur mit Hilfe eines externen Mods. Wobei offensichtlich eine recht starke <a href="http://www.cubecart.org/">Community</a> hinten dran steht.</li>
<li><strong>Die Sache mit der Steuer</strong><br />
Da besteht offensichtlich starker Handlungsbedarf. Ich habe es nicht geschafft, den Shop zur Anzeige der Steuer zu Ã¼berreden. Weder in der ProduktÃ¼bersicht, noch im Warenkorb. Obwohl sowohl Steuerwerte hinterlegt, den Produkten zugewiesen und auch in der globalen Konfiguration die Anzeige der Steuer aktiviert ist, wird keine angezeigt. Die Ausrichtung auf den US-amerikanischen Binnenmarkt ist hier Ã¼berdeutlich zu erkennen. Auch die Angabe des Gewichts in Pfund spricht nicht unbedingt fÃ¼r einen internationalen Ansatz.</li>
<li><strong>To PEAR or not to PEAR?</strong><br />
CubeCart nutzt einige Pakete aus dem <a href="http://pear.php.net/">PEAR</a>, unter anderem <a href="http://pear.php.net/package/Log">PEAR::Log</a> und <a href="http://pear.php.net/package/Net_Socket">PEAR::Net_Socket</a>. Leider ist man da nicht konsequent, ich hÃ¤tte es begrÃ¼ÃŸt, wenn fÃ¼r die Datenbank <a href="http://pear.php.net/package/DB">PEAR::DB</a> respektive der Nachfolger <a href="http://pear.php.net/package/MDB2">PEAR::MDB2</a> und fÃ¼r die Template <a href="http://pear.php.net/package/HTML_Template_IT">PEAR::HTML_Template_IT</a> zum Einsatz kommen wÃ¼rde. Stattdessen setzt man fÃ¼r die Datenbankanbindung offensichtlich auf was selbstgestricktes und fÃ¼r die Templates auf <a href="http://sourceforge.net/projects/xtpl/">XTemplate</a>.</li>
<li><strong>Sprachfiles</strong><br />
Sprachfiles sind leider sowas von Web 1.0. IMHO. Sie bieten nÃ¤mlich keinen Fallback. Fehlt in der aktiven Sprache ein Eintrag im Sprachfile, dann steht da gar nichts. Deshalb setze ich fÃ¼r Mehrsprachigkeit auf <a href="http://de.php.net/gettext">gettext()</a>. Ein Shop mit dieser LÃ¶sung ist mir aber bislang noch nicht untergekommen.</li>
</ul>
<h3>Fazit</h3>
<p>Die Tabellenfreiheit erkauft man sich mit zahlreichen Haken und Ã–sen, vor allem in Bezug auf Navigation und Steuer, die sich aber mit etwas Nacharbeit durchaus lÃ¶sen lassen (sollten). Wer aber bereits eine xt:Commerce-LÃ¶sung am Start hat, dÃ¼rfte sich mit einer mÃ¶glichen Umstellung allein aufgrund des fehlenden Imports schwer tun. Auch sonst sind im Admin-Tool manche Sachen sehr schÃ¶n gelÃ¶st, wÃ¤hrend anderes nur ein KopfschÃ¼tteln hervorruft. Derzeit stelle, so traurig das ist, CubeCart keine wirkliche Konkurrenz fÃ¼r xt:Commerce dar, zumindest nicht fÃ¼r den europÃ¤ischen Markt. Im Auge behalten sollte man die LÃ¶sung aber auf jeden Fall.</p>
<p>[tags]xtc, xt:commerce, cubecart, alternative, shop, online-shop[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2006/11/23/cubecart-alternative-zu-xtcommerce/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Protected: xt:C: Ein Licht am Ende des Tunnels</title>
		<link>http://www.blogpotato.de/2006/11/16/xtc-ein-licht-am-ende-des-tunnels/</link>
		<comments>http://www.blogpotato.de/2006/11/16/xtc-ein-licht-am-ende-des-tunnels/#comments</comments>
		<pubDate>Thu, 16 Nov 2006 18:06:27 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2006/11/16/xtc-ein-licht-am-ende-des-tunnels/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://www.blogpotato.de/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-105">Password:<br />
<input name="post_password" id="pwbox-105" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2006/11/16/xtc-ein-licht-am-ende-des-tunnels/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>xt:C und semantisch korrekter Code</title>
		<link>http://www.blogpotato.de/2006/11/16/xtc-und-semantisch-korrekter-code/</link>
		<comments>http://www.blogpotato.de/2006/11/16/xtc-und-semantisch-korrekter-code/#comments</comments>
		<pubDate>Thu, 16 Nov 2006 14:22:40 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2006/11/16/xtc-und-semantisch-korrekter-code/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Zwei Welten prallen aufeinander. Definitiv. Aber bevor man sich an irgendwelche Erweiterungen fÃ¼r xt:Commerce macht sollte man erstmal den absolut grausigen Quellcode ausmisten. Ein besonderes Ãœbel stellt die Kategorien-Navigation dar. Verschachtelte Tabellen, Ã¼ber Non-Breaking-Spaces erreichte EinrÃ¼ckungen, Hover-Effekte mittels Javascript, Web-Design aus der Steinzeit quasi. &#60;table width=&#34;100%&#34; border=&#34;0&#34; cellspacing=&#34;0&#34; cellpadding=&#34;2&#34;&#62; &#60;tr&#62; &#60;td class=&#34;infoBoxHeading&#34;&#62; &#60;table width=&#34;100%&#34; border=&#34;0&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Zwei Welten prallen aufeinander. Definitiv. Aber bevor man sich an irgendwelche Erweiterungen fÃ¼r xt:Commerce macht sollte man erstmal den absolut grausigen Quellcode ausmisten. </p>
<p>Ein besonderes Ãœbel stellt die Kategorien-Navigation dar. Verschachtelte Tabellen, Ã¼ber Non-Breaking-Spaces erreichte EinrÃ¼ckungen, Hover-Effekte mittels Javascript, Web-Design aus der Steinzeit quasi.</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;infoBoxHeading&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> &gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;infoBoxHeading&quot;</span>&gt;</span>Kategorien<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;10&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;infoBox&quot;</span> <span style="color: #000066;">align</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;right&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;95%&quot;</span> <span style="color: #000066;">border</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellspacing</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">cellpadding</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> &gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;boxText&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;moduleRow&quot;</span> <span style="color: #000066;">onmouseover</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;rowOverEffect(this)&quot;</span> <span style="color: #000066;">onmouseout</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;rowOutEffect(this)&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;templates/xtc4/img/icon_arrow.jpg&quot;</span><span style="color: #66cc66;">/</span>&gt;</span>Â <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">b</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">b</span>&gt;</span>Kategorie I<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">b</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">b</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
 -   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Unterkat I<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
 -   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Unterkat II<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;moduleRow&quot;</span> <span style="color: #000066;">onmouseover</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;rowOverEffect(this)&quot;</span> <span style="color: #000066;">onmouseout</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;rowOutEffect(this)&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;templates/xtc4/img/icon_arrow.jpg&quot;</span><span style="color: #66cc66;">/</span>&gt;</span>Â <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">b</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Kategorie II<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">b</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span></pre>
</div>
</div>
<p>Zum GlÃ¼ck haben das auch schon andere erkannt und so musste ich nicht alles neu schreiben, bei <a href="http://www.gunnart.de/tipps-und-tricks/xtcommerce-kategorien-navigation-als-liste-ausgeben/">gunnART</a> findet sich dankenswerterweise bereits eine geÃ¤nderte <tt>xtc_show_category.inc.php</tt>. Die hat nur einen SchÃ¶nheitsfehler: Die Listen sind nicht ineinander verschachtelt, wenn es gilt, tiefere Ebenen darzustellen, wird das ganze lediglich durch CSS und damit nur optisch erreicht:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;maincat submenue&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;gewaehlt&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Kategorie I<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;subcat level1&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Unterkat I<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;subcat level1&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Unterkat II<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;maincat&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Kategorie II<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span></pre>
</div>
</div>
<p>Sicherlich schon ein riesiger Fortschritt, wenn man sich es mit dem ursprÃ¼nglichen Tabellenchaos vergleicht, aber noch nicht der Weisheit letzter SchluÃŸ. Das ist mein php-Code mÃ¶glicherweise auch nicht, der auf der Version von gunnART basiert, aber er erzeugt das, was man haben will: Listen, die korrekt ineinander verschachtelt sind, um so auch denen, die ohne oder mit deaktivierten Stylesheets durch das Web surfen, die MÃ¶glichkeit zu geben, Unterkategorien problemlos zu erkennen.</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Kategorie I<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
         <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Unterkat I<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
         <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Unterkat II<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
      <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Kategorie II<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span></pre>
</div>
</div>
<p>Die angepasste Version von <tt>xtc_show_category.inc.php</tt> gibt es zum Download:</p>
<p><a href="/wp-content/uploads/2006/11/xtc_show_category.inc.phps">xtc_show_category.inc.phps</a>.</p>
<p>Speichern, in das Verzeichnis <tt>/source/inc/</tt> des verwendeten Templates legen, nach <tt>xtc_show_category.inc.php</tt> umbenennen, fertig.</p>
<p>[tags]xtc, xt:commerce, xtcommerce, semantic code, css, html, unordered lists, nested[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2006/11/16/xtc-und-semantisch-korrekter-code/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>xt:Commerce &#8211; A Webdevelopers Nightmare</title>
		<link>http://www.blogpotato.de/2006/11/14/xtcommerce-a-web-developers-nightmare-2/</link>
		<comments>http://www.blogpotato.de/2006/11/14/xtcommerce-a-web-developers-nightmare-2/#comments</comments>
		<pubDate>Tue, 14 Nov 2006 16:00:46 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Web, (X)HTML und CSS]]></category>
		<category><![CDATA[xt:Commerce]]></category>

		<guid isPermaLink="false">http://www.blogpotato.de/2006/11/14/xtcommerce-a-web-developers-nightmare-2/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.blogpotato.de/category/web-xhtml-und-css/" title="Web, (X)HTML und CSS">Web, (X)HTML und CSS</a><a href="http://www.blogpotato.de/category/xtcommerce/" title="xt:Commerce">xt:Commerce</a></p>Der xt:Commerce Shop legt ein besonderes Augenmerk auf Sicherheitsrelevante Aspekte,Usability und ist durch einen neuen professionellen Aufbau gekennzeichnet. Ist nicht von mir, sondern, inklusive aller Fehler, aus der Info-Datei zu xt:Commerce. WÃ¤hrend ich bei meinen Projekten, wie etwa dem neuesten Werk zur Online-Abmahnung von Falschparkern und Parkplatzblockierern, peinlichst darauf achte, sauberen Code zu schreiben, Programm- [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Der xt:Commerce Shop legt ein besonderes Augenmerk auf Sicherheitsrelevante Aspekte,Usability und ist durch einen neuen professionellen Aufbau gekennzeichnet.</p></blockquote>
<p>Ist nicht von mir, sondern, inklusive aller Fehler, aus der Info-Datei zu <a href="http://www.xt-commerce.com/">xt:Commerce</a>. </p>
<p>WÃ¤hrend ich bei meinen Projekten, wie etwa dem neuesten Werk zur <a href="http://www.parkplatzdieb.de/">Online-Abmahnung von Falschparkern und Parkplatzblockierern</a>, peinlichst darauf achte, sauberen Code zu schreiben, Programm- und Darstellungsschicht Ã¼ber <a href="http://pear.php.net/package/HTML_Template_IT">Templates</a> zu trennen und natÃ¼rlich valides und semantisch sinnvolles (X)HTML und CSS zu produzieren, sind das fÃ¼r xt:Commerce alles FremdwÃ¶rter. </p>
<p>Code-Teile finden sich Ã¼ber die komplette Struktur verteilt. Ein biÃŸchen was im <tt>inc/</tt>-Ordner, ein biÃŸchen was anderes im <tt>includes/</tt>-Ordner und die Template-Ordner sollte man bei der Suche nach den Codebestandteilen auch nicht vernachlÃ¤ssigen. Nicht nur, das sich hier die ein oder andere Funktion in den verschachtelten Ordnerstrukturen versteckt, auch in den Templates selbst wird noch eifrig PHP-Code ausgefÃ¼hrt. <a href="http://smarty.php.net/">Smarty</a> macht&#8217;s mÃ¶glich und lÃ¤uft damit meiner Meinung nach dem Template-Konzept vollkommen zuwider, auch wenn Smarty an und fÃ¼r sich vielleicht die bessere Template-Engine ist. Wer dann wenigstens hofft, alle fÃ¼r die Darstellung relevanten HTML-Inhalte in den Templates vorzufinden, wird auch schnell eines besseren belehrt. Viele Funktionen liefern nur den kompletten Codeblock zurÃ¼ck, inklusive aller Tags. Ã„nderungen mÃ¼ssen also am PHP-Code vorgenommen werden und, mangels Plugin-Konzept, bei jedem Update wieder mÃ¼hsam integriert werden. </p>
<p>Was bleibt ist die Erkenntnis fÃ¼r den ambitionierten Webdeveloper, dass jede Menge Arbeit in xt:Commerce zu investieren ist, wenn er den eigenen Vorstellungen von Code-Usability und einem professionellen Aufbau genÃ¼gen soll. Zumindest was den am Ende ausgelieferten Quelltext angeht. An der Grundstruktur Ã„nderungen vorzunehmen wÃ¼rde bedeuten, den Shop komplett neu zu schreiben. Und das will ich mir (noch) verkneifen.</p>
<p>Das wird der Beginn einer Serie, denn wir haben fÃ¼r <a href="http://www.wibros.de/">Wibros</a> nicht nur <a href="http://www.parkplatzdieb.de/">Parkplatzabmahnung</a> im Programm, sondern auch den ein oder anderen Online-Shop. Und die Entscheidung ist am Ende auf xt:Commerce gefallen, weil wie gesagt eine komplette Eigenentwicklung nicht sinnvoll erschien. Mal sehen, ob sich das am Ende rechnet.</p>
<p>Wer derweil schon mal ein paar DenkanstÃ¶ÃŸe braucht, der kann sich im <a href="http://www.nutzhosting.de/xt-commerce-blog/?p=3">xt:C-Blog von nutzhosting.de</a> umschauen, viele Tipps&#038;Tricks hin zu semantischem und validem Code finden sich auch bei <a href="http://www.gunnart.de/category/tipps-und-tricks/xtcommerce/">gunnART</a>. Die Arbeit schon hinter sich haben die Macher vom <a href="http://www.overkillshop.com/">Overkill Shop</a>, auch wenn da unter semantischen Gesichtspunkten noch einiges verbesserungswÃ¼rdig erscheint. </p>
<p>[tags]xtc, xt:commerce, xtcommerce, nightmare, standards, xhtml, css, choas[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogpotato.de/2006/11/14/xtcommerce-a-web-developers-nightmare-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

