<?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>eCommerce, Magento, Drupal und Co.</title>
	<atom:link href="http://www.roxs.de/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.roxs.de/blog</link>
	<description>Eine Gedächtnisstütze für Webentwickler</description>
	<lastBuildDate>Mon, 11 Jul 2011 08:12:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>www.-Domain und https erzwingen per redirect mit PHP im header</title>
		<link>http://www.roxs.de/blog/www-domain-und-https-erzwingen-per-redirect-mit-php-im-header/20110711/</link>
		<comments>http://www.roxs.de/blog/www-domain-und-https-erzwingen-per-redirect-mit-php-im-header/20110711/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 08:12:05 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[http-header]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[moved permanently]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=123</guid>
		<description><![CDATA[SEO-Gurus empfehlen, eine Website auf eine bestimmte Domain festzulegen. Und manchmal ist es sinnvoll bei dieser Gelegenheit auch gleich eine sichere Verbindung über https zu erzwingen. Das ganze erledigen wir Suchmaschinenfreundlich mit PHP per Redirect im HTTP-Header. Dazu ganz oben &#8230; <a href="http://www.roxs.de/blog/www-domain-und-https-erzwingen-per-redirect-mit-php-im-header/20110711/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>SEO-Gurus empfehlen, eine Website auf eine bestimmte Domain festzulegen. Und manchmal ist es sinnvoll bei dieser Gelegenheit auch gleich eine sichere Verbindung über https zu erzwingen. Das ganze erledigen wir Suchmaschinenfreundlich mit PHP per Redirect im HTTP-Header.<span id="more-123"></span></p>
<p>Dazu ganz oben im Skript &#8211; unbeding vor der ersten Ausgabe(!) &#8211; folgendes notieren:</p>
<pre class="prettyprint linenums">
////////////////////////////////////////////////////////////////////////
// Umleitung, wenn das Skript nicht über www.roxs.de aufgerufen wurde
if($_SERVER["HTTP_HOST"] != "www.roxs.de") {
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: http://www.roxs.de".$_SERVER['REQUEST_URI']);
  exit;
}
</pre>
<p>Wie man sieht wird jeder Aufruf des Skripts, egal über welche Domain er kam, an www.roxs.de/&#8230; weitergeleitet. Der Request-String, also alles, was nach der Domain in der URL steht, bleibt dabei erhalten. Die Status-Angabe &#8220;301 Moved Permanently&#8221; signalisiert dem Browser bzw. der Suchmaschine, dass es sich um eine dauerhafte Weiterleitung handelt. Vergisst man das, gibt es schnell Abwertungen bei Google.</p>
<p>Möchte man bei dieser Gelegenheit gleich noch die Umleitung auf eine Sichere Verbindung erzwingen, fügt man das &#8220;s&#8221; von &#8220;https&#8221; noch an der richtigen Stelle ein:</p>
<pre class="prettyprint linenums">
////////////////////////////////////////////////////////////////////////
// Umleitung, wenn das Skript nicht über www.roxs.de aufgerufen wurde und
// Erwingen einer sicheren Verbinung über https
if($_SERVER["HTTP_HOST"] != "www.roxs.de") {
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: https://www.roxs.de".$_SERVER['REQUEST_URI']);
  exit;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/www-domain-und-https-erzwingen-per-redirect-mit-php-im-header/20110711/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webzugriff nur für bestimmte IP-Adressen oder über Passworteingabe erlauben</title>
		<link>http://www.roxs.de/blog/webzugriff-nur-fur-bestimmte-ip-adressen-oder-ueber-passworteingabe-erlauben/20110707/</link>
		<comments>http://www.roxs.de/blog/webzugriff-nur-fur-bestimmte-ip-adressen-oder-ueber-passworteingabe-erlauben/20110707/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 08:07:46 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[.htpasswd]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ip-adresse]]></category>
		<category><![CDATA[passwort]]></category>
		<category><![CDATA[sicherheit]]></category>
		<category><![CDATA[zugriff]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=112</guid>
		<description><![CDATA[Der einfache Passwortschutz für ein Web-Verzeichnis mittels htaccess ist ein alter Hut. Verfügt man an seinem Arbeitsplatz über eine feste IP-Adresse, kann man sich die Eingabe des Passworts jedoch sparen und die htaccess nutzen, um bestimmte Inhalte für bestimmte IP-Adressen &#8230; <a href="http://www.roxs.de/blog/webzugriff-nur-fur-bestimmte-ip-adressen-oder-ueber-passworteingabe-erlauben/20110707/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Der einfache Passwortschutz für ein Web-Verzeichnis mittels htaccess ist ein alter Hut. Verfügt man an seinem Arbeitsplatz über eine feste IP-Adresse, kann man sich die Eingabe des Passworts jedoch sparen und die htaccess nutzen, um bestimmte Inhalte für bestimmte IP-Adressen freizugeben.<span id="more-112"></span><br />
Der folgende htaccess-Eintrag kombiniert die beiden Methoden. D.h. es wird zunächst geprüft, ob der Zugriff über eine freigegebene IP-Adresse erfolgt. Wenn das nicht der Fall ist, wird nach Zugangsdaten gefragt.</p>
<pre class="prettyprint linenums">
###################################################
## Beispiel einer .htaccess-Datei

AuthType Basic
AuthName "Private Directory"
AuthUserFile /path/to/.htpasswd
Order deny,allow
Deny from all
Satisfy any
Allow from 123.123.123.123 # Home-IP
Allow from 234.234.234.234 # Office IP
require valid-user
</pre>
<p>Die Zugangsdaten (Benutzername-Passwort-Paare) werden in einer separaten Datei vorgehalten, die üblicherweise .htpasswd genannt wird. Für das Erstellen der htpasswd kann unser <a href="http://www.roxs.de/tools/htpasswd-passwort-generator.php">htpasswd-Passwort-Generator</a> genutzt werden. Hier ein Beispiel:</p>
<pre class="prettyprint linenums">
###################################################
## Beispiel einer .htpasswd-Datei

richard:rktQEy/9GdVqI
paula:rkY754LEGuDAg
</pre>
<p>Es können beliebig viele Zugangsdaten in der Form &#8220;Benutzername&#8221; Doppelpunkt &#8220;verschlüsseltes Passwort&#8221; angegeben werden. Im obigen Beispiel können sich nun die Nutzer &#8220;richard&#8221; mit dem Passwort &#8220;hallo&#8221; und &#8220;paula&#8221; mit dem Passwort &#8220;test&#8221; anmelden. Die htpasswd-Datei kann in einem beliebigen Verzeichnis abgelegt werden, dass innerhalb der htaccess Datei angegeben werden muss. Die Angabe erfolgt in der Zeile &#8220;AuthUserFile /path/to/.htpasswd&#8221; wie im Beispiel oben gezeigt, wobei &#8220;/path/to/.htpasswd&#8221; die Pfadangabe zur Datei ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/webzugriff-nur-fur-bestimmte-ip-adressen-oder-ueber-passworteingabe-erlauben/20110707/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cache deaktivieren in Drupal 7</title>
		<link>http://www.roxs.de/blog/cache-deaktivieren-in-drupal-7/20110523/</link>
		<comments>http://www.roxs.de/blog/cache-deaktivieren-in-drupal-7/20110523/#comments</comments>
		<pubDate>Mon, 23 May 2011 09:37:54 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Drupal 7]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=106</guid>
		<description><![CDATA[Während der Arbeit am Theme ist es durchaus lästig nach jeder Änderung den &#8220;Gesamten Cache löschen&#8221;-Knopf unter Verwaltung > Konfiguration > Entwicklung > Leistung drücken zu müssen. Ein kleiner Eintrag in der settings.php hilft. Um alle für das Theme relevanten &#8230; <a href="http://www.roxs.de/blog/cache-deaktivieren-in-drupal-7/20110523/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Während der Arbeit am Theme ist es durchaus lästig nach jeder Änderung den &#8220;Gesamten Cache löschen&#8221;-Knopf unter Verwaltung > Konfiguration > Entwicklung > Leistung drücken zu müssen. Ein kleiner Eintrag in der settings.php hilft.<span id="more-106"></span></p>
<p>Um alle für das Theme relevanten Caches zu deaktivieren, greift man auf einen Trick zurück, der während der Ausführung des Installations-Scripts eingesetzt wird. Da dort noch keine Datenbank vorhanden ist, in die die Cache-Daten geschrieben werden könnten, besitzt Drupal von Hause aus über eine Möglichkeit, die Caches zu deaktivieren. Um das auch nach der Installation nutzen zu können, fügt man in der settings.php seine Drupal-Site (also meist unter <webroot>/sites/default/settings.php) folgende Zeile ein:</p>
<pre class="prettyprint">$conf['cache_inc'] = 'includes/cache-install.inc';</pre>
<p>Fertig.</p>
<p>Aus Performance-Gründen sollte man natürlich unbedingt daran denken diese Zeile bei der Freischaltung seiner Website wieder zu entfernen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/cache-deaktivieren-in-drupal-7/20110523/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verzeichnis aus RewriteRule ausschließen</title>
		<link>http://www.roxs.de/blog/verzeichnis-aus-rewriterule-ausschliesen/20110301/</link>
		<comments>http://www.roxs.de/blog/verzeichnis-aus-rewriterule-ausschliesen/20110301/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 09:30:37 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[Rewrite]]></category>
		<category><![CDATA[RewriteRule]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=98</guid>
		<description><![CDATA[Werden RewriteRules mit mod_rewrite eingesetzt, ist es oft notwendig, bestimmte Unterverzeichnisse von diesen Regeln auszuschließen. Gerade da, wo im Web-Verzeichnis innerhalb eines Unterverzeichnisses eine weiter &#8211; völlig eigenständige &#8211; Website abgelegt werden soll, die dann natürlich nicht von den Rewrites &#8230; <a href="http://www.roxs.de/blog/verzeichnis-aus-rewriterule-ausschliesen/20110301/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Werden RewriteRules mit mod_rewrite eingesetzt, ist es oft notwendig, bestimmte Unterverzeichnisse von diesen Regeln auszuschließen. Gerade da, wo im Web-Verzeichnis innerhalb eines Unterverzeichnisses eine weiter &#8211; völlig eigenständige &#8211; Website abgelegt werden soll, die dann natürlich nicht von den Rewrites der Site im Hauptverzeichnis beinflusst werden darf.<span id="more-98"></span><br />
Dieses Problem kann mit einer zusätzlichen Zeile innerhalb der .htaccess gelöst werden. <em>Oberhalb</em> der sonstigen RewriteRules wird das gewünschte Verzeichnis einfach von allen <em>folgenden</em> Rules ausgeschlossen:</p>
<pre class="prettyprint">RewriteRule ^(unterverzeichnis1|unterverzeichnis2)($|/) - [L]</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/verzeichnis-aus-rewriterule-ausschliesen/20110301/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento-Howto: PHP-Code in Content-Seiten (CMS) verwenden</title>
		<link>http://www.roxs.de/blog/magento-howto-php-code-in-content-seiten-cms-verwenden/20100902/</link>
		<comments>http://www.roxs.de/blog/magento-howto-php-code-in-content-seiten-cms-verwenden/20100902/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 21:14:17 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=90</guid>
		<description><![CDATA[Magento unterbindet aus Sicherheitsgründen das Einbinden von ausführbarem Code über das Admin-Frontend. Nur wer Zugriff auf das Filesystem hat, kann PHP-Code z.B. auch auf CMS-Seiten verwenden. Dazu ist nur ein kleiner Umweg nötig. Im CMS kann ein Content-Block referenziert werden, &#8230; <a href="http://www.roxs.de/blog/magento-howto-php-code-in-content-seiten-cms-verwenden/20100902/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Magento unterbindet aus Sicherheitsgründen das Einbinden von ausführbarem Code über das Admin-Frontend. Nur wer Zugriff auf das Filesystem hat, kann PHP-Code z.B. auch auf CMS-Seiten verwenden.<span id="more-90"></span></p>
<p>Dazu ist nur ein kleiner Umweg nötig. Im CMS kann ein Content-Block referenziert werden, der zuvor in einer Datei im Filesystem definiert wurde.</p>
<p>Dazu legt man &#8211; vorzugsweise innerhalb seines template-Ordners &#8211; eine Datei mit beliebigem Namen an. Hier im Beispiel soll sie <em>inhalt.phtml</em> heißen und im Verzeichnis <em>/app/design/frontend/default/default/cms/blocks/inhalt.phtml</em> liegen.</p>
<p>In diese Datei kann man nun den gewünschten Inhalt ablegen. Im Beispiel sieht das dann so aus:</p>
<pre class="prettyprint">&lt;div&gt;&lt;strong&gt;&lt;?php echo "Hallo Welt!"; ?&gt;&lt;/strong&gt;&lt;/div&gt;</pre>
<p>Im CMS legt man nun eine neue Seite an und fügt folgendes ein, um den Inhalt der eben erstellten Datei auszugeben:</p>
<pre class="prettyprint">{{block type="core/template" template="cms/blocks/inhalt.phtml"}}</pre>
<p>Natürlich kann die CMS-Seite vor und nach dem Einbinden des Content-Blocks auch noch weiteren Content beinhalten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/magento-howto-php-code-in-content-seiten-cms-verwenden/20100902/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Error-Reporting in Magento Enterprise 1.7</title>
		<link>http://www.roxs.de/blog/error-reporting-in-magento-enterprise-1-7/20100901/</link>
		<comments>http://www.roxs.de/blog/error-reporting-in-magento-enterprise-1-7/20100901/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 21:48:13 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Magento Enterprise]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[reporting]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=82</guid>
		<description><![CDATA[Magento EE 1.7 kann nach entsprechender Konfiguration Error Reports per eMail versenden, statt sie offen auf der Website anzuzeigen. Der Besucher sieht dann statt einer Fehlermeldung ein Kontaktformular, mittels dessen er dem Shopbetreiber seine Daten zur Kontaktaufnahme zukommen lassen kann. &#8230; <a href="http://www.roxs.de/blog/error-reporting-in-magento-enterprise-1-7/20100901/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Magento EE 1.7 kann nach entsprechender Konfiguration Error Reports per eMail versenden, statt sie offen auf der Website anzuzeigen. Der Besucher sieht dann statt einer Fehlermeldung ein Kontaktformular, mittels dessen er dem Shopbetreiber seine Daten zur Kontaktaufnahme zukommen lassen kann.<span id="more-82"></span></p>
<p>Die Fehlerbehandlung in Magento kann unter <strong>{basedir}/error/config.xml</strong> konfiguriert werden. Um die Fehlermeldungen per eMail zu erhalten, müssen die folgenden Einträge vorgenommen werden.</p>
<pre class="prettyprint linenums">&lt;config&gt;
  &lt;report&gt;
    &lt;!--
      "action" can be set to "print" to show exception on screen
      and "email" to send exception on specified email
    --&gt;
    &lt;action&gt;email&lt;/action&gt;
    &lt;!--
      in "subject" you can set subject of email
    --&gt;
    &lt;subject&gt;Store Debug Information&lt;/subject&gt;
    &lt;!--
      "email_address" admin email address
    --&gt;
    &lt;email_address&gt;admin@ihre-domain.de&lt;/email_address&gt;
    &lt;!--
      "trash" is handle about trace info
      value "leave" is for store on disk
      value "delete" is for cleaning
    --&gt;
    &lt;trash&gt;leave&lt;/trash&gt;
  &lt;/report&gt;
&lt;/config&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/error-reporting-in-magento-enterprise-1-7/20100901/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento-Howto: Ändern der Menge eines Produkts im Warenkorb</title>
		<link>http://www.roxs.de/blog/magento-howto-andern-der-menge-eines-produkts-im-warenkorb/20100831/</link>
		<comments>http://www.roxs.de/blog/magento-howto-andern-der-menge-eines-produkts-im-warenkorb/20100831/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 22:25:16 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[cart]]></category>
		<category><![CDATA[items]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[menge]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[qty]]></category>
		<category><![CDATA[quantity]]></category>
		<category><![CDATA[warenkorb]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=71</guid>
		<description><![CDATA[Die Menge eines Produkts im Warenkorb von Magento kann wie folgt per Script geändert werden: Folgende Informationen müssen bekannt sein: (int) $cart_id //ID des Warenkorbs (int) $cart_item_id //ID des Warenkorb-Artikels (nicht die SKU) (int) $qty //Gewünschte Menge des Warenkorb-Artikels Dieses &#8230; <a href="http://www.roxs.de/blog/magento-howto-andern-der-menge-eines-produkts-im-warenkorb/20100831/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Die Menge eines Produkts im Warenkorb von Magento kann wie folgt per Script geändert werden:<span id="more-71"></span></p>
<p>Folgende Informationen müssen bekannt sein:</p>
<pre class="prettyprint linenums">(int) $cart_id //ID des Warenkorbs
(int) $cart_item_id //ID des Warenkorb-Artikels (nicht die SKU)
(int) $qty //Gewünschte Menge des Warenkorb-Artikels</pre>
<p>Dieses Script nimmt die Änderung vor:</p>
<pre class="prettyprint linenums">$cart = Mage::getModel('checkout/cart');
$cart-&gt;setQuote($cart_id);
$data = array ( $cart_item_id =&gt; array("qty" =&gt; $qty) );
$cart-&gt;updateItems($data);
$cart-&gt;getTotals();
$cart-&gt;save();</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/magento-howto-andern-der-menge-eines-produkts-im-warenkorb/20100831/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Artikel-Preis im Magento-Template auslesen und anzeigen lassen</title>
		<link>http://www.roxs.de/blog/artikel-preis-im-magento-template-auslesen-und-anzeigen-lassen/20100829/</link>
		<comments>http://www.roxs.de/blog/artikel-preis-im-magento-template-auslesen-und-anzeigen-lassen/20100829/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 11:48:58 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[mehrwertsteuer]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[preis]]></category>
		<category><![CDATA[steuern]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[weee]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=54</guid>
		<description><![CDATA[In einem komplexen Shop-System wie Magento ist es nicht so einfach, mal eben den Preis eines Produkts auszugeben. Immerhin kann der Endpreis verschiedene Steuern enthalten und in unterschiedlichen Währungen angegeben werden. Magento macht es jedoch recht einfach, einen fertig formatierten &#8230; <a href="http://www.roxs.de/blog/artikel-preis-im-magento-template-auslesen-und-anzeigen-lassen/20100829/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In einem komplexen Shop-System wie Magento ist es nicht so einfach, mal eben den Preis eines Produkts auszugeben. Immerhin kann der Endpreis verschiedene Steuern enthalten und in unterschiedlichen Währungen angegeben werden. Magento macht es jedoch recht einfach, einen fertig formatierten Preis anzuzeigen.<span id="more-54"></span></p>
<p>In den üblichen Magento-Templates werden in einer Datei namens /app/design/frontend/default/default/catalog/product/price.phtml gleich zu Beginn einige wichtige Variablen definiert. Das sind dann u.a. diese:</p>
<pre class="prettyprint linenums">$_product = $this-&gt;getProduct();
$_finalPriceInclTax = $this-&gt;helper('tax')
    -&gt;getPrice($_product, $_product-&gt;getFinalPrice(), true);
$_weeeTaxAmount = Mage::helper('weee')-&gt;getAmountForDisplay($_product);</pre>
<p>Dabei enthält &#8220;$_finalPriceInclTax&#8221; bereits die Mehrwertsteuer und &#8220;$_weeeTaxAmount&#8221; eine (in seltenen Fällen) verwendete feste Steuer pro Produkt.</p>
<p><strong>Die formatierte Ausgabe des Preises in der korrekten Währung erreicht man nun wie folgt:</strong></p>
<pre class="prettyprint linenums">Mage::helper('core')
    -&gt;currency($_finalPriceInclTax+$_weeeTaxAmount,true,false);</pre>
<p>Dabei wird der Methode currency als erster Parameter ein Preis übergeben. Der zweite Parameter gibt an, ob die Ausgabe HTML-formatiert erfolgen soll oder nicht.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/artikel-preis-im-magento-template-auslesen-und-anzeigen-lassen/20100829/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Include einer CSS-Datei innerhalb einer CSS-Datei</title>
		<link>http://www.roxs.de/blog/include-einer-css-datei-innerhalb-einer-css-datei/20100829/</link>
		<comments>http://www.roxs.de/blog/include-einer-css-datei-innerhalb-einer-css-datei/20100829/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 10:51:56 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[CSS Stylesheets]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[include]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=44</guid>
		<description><![CDATA[Benutzt man verschiedene CSS-Dateien, so gibt es mehrere Möglichkeiten diese in eine Webseite einzubinden. Neben dem Eintrag aller Dateien als &#60;link&#62; innerhalb des HTML-&#60;head&#62; der Seite, kann dort auch nur eine zentrale CSS-Datei eingebunden werden, die dann die weiteren Dateien &#8230; <a href="http://www.roxs.de/blog/include-einer-css-datei-innerhalb-einer-css-datei/20100829/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Benutzt man verschiedene CSS-Dateien, so gibt es mehrere Möglichkeiten diese in eine Webseite einzubinden. Neben dem Eintrag aller Dateien als &lt;link&gt; innerhalb des HTML-&lt;head&gt; der Seite, kann dort auch nur eine zentrale CSS-Datei eingebunden werden, die dann die weiteren Dateien importiert.<span id="more-44"></span>Um innerhalb einer CSS-Datei eine weitere CSS-Datei einzubinden, wird folgende Zeile benötigt:</p>
<pre class="prettyprint linenums">@import "dateiname.css";</pre>
<p>Der Dateipfad ist relativ zur aufrufenden CSS-Datei anzugeben.</p>
<p>2 Wichtige Hinweise:</p>
<ul>
<li>Die @import-Anweisung muss stets am Anfang einer CSS-Datei stehen.</li>
<li>Logischerweise wird die Ladezeit der Website verlängert, da zunächst die erste CSS-Datei geladen und ausgewertet wird, bevor mit dem Laden der zu importierenden Datei begonnen werden kann.</li>
</ul>
<p>Alternative Notation:</p>
<pre class="prettyprint linenums">@import url("extra.css") all;</pre>
<p>Diese Schreibweise (&#8220;all&#8221; gibt hier den Medientyp an &#8211; kann also z.B. auch &#8220;screen&#8221; oder &#8220;print&#8221; lauten) wird allerdings bis inklusive IE7 ignoriert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/include-einer-css-datei-innerhalb-einer-css-datei/20100829/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syntax highlighting mit Google Code Prettify</title>
		<link>http://www.roxs.de/blog/syntax-highlighting-mit-google-code-prettify/20100828/</link>
		<comments>http://www.roxs.de/blog/syntax-highlighting-mit-google-code-prettify/20100828/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 18:55:15 +0000</pubDate>
		<dc:creator>Roberto Schulz</dc:creator>
				<category><![CDATA[CSS Stylesheets]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.roxs.de/blog/?p=20</guid>
		<description><![CDATA[Wer oft und viel Quellcode auf seiner Website veröffentlichen will, wird selten Lust verspüren den Code händisch mittels CSS und viel Farbe aufzuhübschen. Dank Google Code Prettify geht das voll automatisch. Quellcode innerhalb von &#60;code&#62;- oder &#60;pre&#62;-Tags mit Angabe der &#8230; <a href="http://www.roxs.de/blog/syntax-highlighting-mit-google-code-prettify/20100828/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wer oft und viel Quellcode auf seiner Website veröffentlichen will, wird selten Lust verspüren den Code händisch mittels CSS und viel Farbe aufzuhübschen. Dank Google Code Prettify geht das voll automatisch. Quellcode innerhalb von &lt;code&gt;- oder &lt;pre&gt;-Tags mit Angabe der korrekten CSS-Klasse wird mittels Javascript menschenlesbar eingefärbt. Das setzt freilich Javascript im Browser des Betrachters voraus.<span id="more-20"></span><br />
Die Installation funktioniert in 4 einfachen Schritten:</p>
<ol>
<li>Download der Sourcecodes unter:<br />
<a href="http://google-code-prettify.googlecode.com">http://google-code-prettify.googlecode.com</a></li>
<li> Upload zur eigenen Website und</li>
<li>Einbinden in den HTML-&lt;head&gt; (und anpassen der Pfade zu den Datein):
<pre class="prettyprint linenums">&lt;link href="prettify.css" type="text/css" rel="stylesheet" /&gt;
&lt;script type="text/javascript" src="prettify.js"&gt;&lt;/script&gt;</pre>
</li>
<li>Ergänzen von
<pre class="prettyprint linenums">onload="prettyPrint()"</pre>
<p>in den &lt;body&gt;-Tag.</li>
</ol>
<p>Innerhalb des HTMLs der Website muss Quellcode dann entweder in &lt;code&gt;- oder in &lt;pre&gt;-Tags eingeschlossen und die Klasse &#8220;prettyprint&#8221; angegeben werden:</p>
<pre class="prettyprint linenums">&lt;pre class="prettyprint"&gt; der Quellcode &lt;/pre&gt;</pre>
<p>Möchte man Zeilennummern anzeigen lassen, ergänzt man die CSS-Klasse &#8220;linenums&#8221;:</p>
<pre class="prettyprint linenums">&lt;pre class="prettyprint linenums"&gt; der Quellcode &lt;/pre&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.roxs.de/blog/syntax-highlighting-mit-google-code-prettify/20100828/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

