<?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>Agentur münster-webdesign.net</title>
	<atom:link href="http://www.muenster-webdesign.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muenster-webdesign.net/blog</link>
	<description>Blog zum Thema Webdesign, Webentwicklung, Web 2.0 und Content Management Systeme</description>
	<lastBuildDate>Tue, 08 May 2012 13:34:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Magento: CMS-/E-Mail-Template-Syntax in Magento 1.6.2.0 (Teil 2)</title>
		<link>http://www.muenster-webdesign.net/blog/magento-cms-e-mail-template-syntax-in-magento-1-6-2-0-teil-2/</link>
		<comments>http://www.muenster-webdesign.net/blog/magento-cms-e-mail-template-syntax-in-magento-1-6-2-0-teil-2/#comments</comments>
		<pubDate>Thu, 03 May 2012 05:20:16 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[Magento | E-Commerce]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=2011</guid>
		<description><![CDATA[htmlescapeDirective Beschreibung: Konvertiert Sonderzeichen in einem String in die entsprechenden HTML-Entities Beispiel: {{htmlescape var=&#8221;ich&#38;du&#8221;}} oder {{htmlescape var=$customer.name}} Synonym: Mage::helper('core')-&#62;escapeHtml('ich&#38;du'); Parameter: var: die Ausgangszeichenfolge allowed_tags: (optional) kommaseparierte Aufzählung mit erlaubten Tags &#160; protocolDirective Beschreibung: Steuert den Aufruf übergebener URLs via HTTP/HTTPS Beispiel: {{protocol url=&#8221;www.muenster-webdesign.net&#8221;}} Parameter: store: optionale Angabe einer Store-Id oder eines Store-Codes url: URL ohne [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;"><strong>htmlescapeDirective</strong></span><br />
Beschreibung: Konvertiert Sonderzeichen in einem String in die entsprechenden HTML-Entities<br />
Beispiel: {{htmlescape var=&#8221;ich&amp;du&#8221;}} oder {{htmlescape var=$customer.name}}</p>
<p>Synonym:</p>
<pre class="brush:php">Mage::helper('core')-&gt;escapeHtml('ich&amp;du');</pre>
<p>Parameter:<br />
var: die Ausgangszeichenfolge<br />
allowed_tags: (optional) kommaseparierte Aufzählung mit erlaubten Tags</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>protocolDirective</strong></span><br />
Beschreibung: Steuert den Aufruf übergebener URLs via HTTP/HTTPS<br />
Beispiel: {{protocol url=&#8221;www.muenster-webdesign.net&#8221;}}</p>
<p>Parameter:<br />
store: optionale Angabe einer Store-Id oder eines Store-Codes<br />
url: URL ohne Protokollangabe; Magento entscheidet dann anhand des gewählten Protokolls der aktuellen Seite, ob die eingebundene URL ein HTTP oder HTTPS-Prefix bekommt</p>
<p><strong>ODER</strong></p>
<p>http<strong> und</strong> https: Vollständige URL mit Protokollangabe; abhängig vom Protokoll der aktuellen Seite wird entweder die via &#8220;http&#8221;-Parameter oder die via &#8220;https&#8221;-Parameter spezifizierte URL ausgegeben</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>varDirective</strong></span><br />
Beschreibung: kann ausschließlich innerhalb von E-Mail-Templates eingesetzt werden, um Werte von Template-Variablen respektive Objekten und deren Methoden auszugeben.<br />
Beispiel: {{var store.getFrontendName()}} oder {{var customer.name}}</p>
<p>Besonderheit: Neben Template-Variablen besteht die Möglichkeit, zusätzlich &#8220;Modifier&#8221; aufzurufen, um die Rückgabewerte der Template-Variablen zu modifizieren. Dazu stehen analog zu den Template-Variablen zuvor übergebene Modifier zur Verfügung wie beispielsweise &#8220;nl2br&#8221; oder &#8220;escape&#8221;. Ein entsprechener Aufruf sieht dann wie folgt aus:</p>
<p>{{var <em>Variablenname</em>|<em>Modifier_1:Parameter_1:Parameter_2|Modifier_2&#8230;.</em>}}</p>
<p>Dabei gilt, dass das erste an den Modifier übergebene Argument automatisch der Wert der angegebenen Variablen respektive Rückgabewert der angesprochenen Methode ist. Der erste mit einem Modifier spezifizierten Parameter wird also tatsächlich an zweiter Position aufgerufen.</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>configDirective</strong></span><br />
Beschreibung: kann genutzt werden, um Werte aus der Store-Konfiguration auszulesen.<br />
Beispiel: {{config path=&#8221;trans_email/ident_custom2/email&#8221;}}</p>
<p>Synonym:</p>
<pre class="brush:php">Mage::app()-&gt;getStore()-&gt;getConfig('trans_email/ident_custom2/email');</pre>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>customvarDirective</strong></span><br />
Beschreibung: Zugriff auf die im Admin-Bereich angelegten &#8220;Eigene Variablen&#8221;<br />
Beispiel: {{customvar code=&#8221;test&#8221;}}; gibt den Wert der Variablen &#8220;test&#8221; aus der Datenbank zurück. Abhängig vom gewählten E-Mail-Template erfolgt die Rückgabe als &#8220;Plain Text&#8221; respektive &#8220;HTML&#8221;-formatiert.</p>
<p>Synonym:</p>
<pre class="brush:php">Mage::getModel('core/variable')-&gt;setStoreId()-&gt;loadByCode('test');</pre>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>includeDirective</strong></span><br />
Ermöglicht es, innerhalb von E-Mail-Templates weitere Templates einzubinden.<br />
Beispiel: {{include template=mein_template}} (der Template-Code ist ohne Anführungszeichen anzugeben)</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">ifDirective</span><br />
</strong>Ermöglicht es, innerhalb von E-Mail-Templates einfache If-Else-Konstrukte zu erstellen<strong>.<br />
</strong>Beispiel: {{if meineVariable}}Der Wert der Variable ist ungleich &#8221;{{else}}Die Variable repräsentiert einen leeren String oder ist nicht definiert{{/if}}</p>
<p>Der &#8220;else&#8221;-Teil ist optional. Geprüft wird lediglich, ob die in der If-Bedingung spezifizierte Varibale einen leeren String zurückgibt oder nicht. Zudem wird nur auf Wertgleichheit (==) geprüft, nicht auf Typgleichheit (===), sodass auch eine nicht gesetzte Variable den &#8220;else&#8221;-Teil der Bedingung auslösen würde.</p>
<p>Statt einer Variablen kann auch ein Methodenaufruf in der If-Bedingung angegeben werden.</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">dependDirective</span><br />
</strong>Ermöglicht es, innerhalb von E-Mail-Templates die Ausgabe von Text an den Wert einer Template-Variablen respektive an den Rückgabewert einer Methode zu knüpfen.<br />
Beispiel: {{depend meineVariable}}Der Wert der Variable ist ungleich<strong> &#8221;</strong>{{/depend}}<strong></strong></p>
<p>Darüber hinaus gelten die weiteren Anmerkungen der ifDirective<strong>.</strong></p>
<p>&nbsp;</p>
<p><a title="Magento: CMS-/E-Mail-Template-Syntax in Magento 1.6.2.0 (Teil 1)" href="http://www.muenster-webdesign.net/blog/magento-cms-syntax-in-magento-1-6-2-0-teil-1/">Magento: CMS-/E-Mail-Template-Syntax in Magento 1.6.2.0 (Teil 1)</a><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/magento-cms-e-mail-template-syntax-in-magento-1-6-2-0-teil-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento: CMS-/E-Mail-Template-Syntax in Magento 1.6.2.0 (Teil 1)</title>
		<link>http://www.muenster-webdesign.net/blog/magento-cms-syntax-in-magento-1-6-2-0-teil-1/</link>
		<comments>http://www.muenster-webdesign.net/blog/magento-cms-syntax-in-magento-1-6-2-0-teil-1/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 06:44:34 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[Magento | E-Commerce]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=1920</guid>
		<description><![CDATA[Magentos CMS-Syntax basiert auf den Methoden der Klassen Mage_Core_Model_Email_Template_Filter, Mage_Widget_Model_Template_Filter und Varien_Filter_Template. Im Folgenden haben wir uns angesehen, welche Syntax-Konstrukte in der aktuellen Magento Version 1.6.2.0 zur Verfügung stehen: &#160; blockDirective Beschreibung: Anzeigen eines statischen oder per &#8220;type&#8221; definierten Blocks Beispiel: {{block id=&#8221;footer_links&#8220;}} &#8211; Anzeigen eines statischen Blocks; als ID kann wahlweise der Block-Code oder die [...]]]></description>
			<content:encoded><![CDATA[<p>Magentos CMS-Syntax basiert auf den Methoden der Klassen Mage_Core_Model_Email_Template_Filter, Mage_Widget_Model_Template_Filter und Varien_Filter_Template. Im Folgenden haben wir uns angesehen, welche Syntax-Konstrukte in der aktuellen Magento Version 1.6.2.0 zur Verfügung stehen:</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>blockDirective</strong></span><br />
Beschreibung: Anzeigen eines statischen oder per &#8220;type&#8221; definierten Blocks<br />
Beispiel: {{block id=&#8221;footer_links<em></em>&#8220;}} &#8211; Anzeigen eines statischen Blocks; als ID kann wahlweise der Block-Code oder die Block-ID übergeben werden<br />
{{block type=&#8221;newsletter/subscribe&#8221; template=&#8221;newsletter/subscribe.phtml&#8221;}} &#8211; Anzeigen des unter &#8220;type&#8221; spezifizierten Blocks</p>
<p>Synonym:</p>
<pre class="brush:php">Mage::app()-&gt;getLayout()-&gt;createBlock('cms/block')-&gt;setBlockId('footer_links')-&gt;toHtml();
Mage::app()-&gt;getLayout()-&gt;createBlock('newsletter/Subscribe')-&gt;setTemplate('newsletter/subscribe.phtml')-&gt;toHtml();</pre>
<p>Parameter:<br />
id: Block-Code oder Block-ID<br />
type: Blockklasse<br />
jeder weitere Parameter wie z.B. template=&#8221;&#8230;&#8221; oder name=&#8221;&#8230;&#8221; wird per Setter auf das Blockobjekt übertragen: setTemplate(), setName()</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">layoutDirective<br />
</span></strong>Beschreibung: Fügt dem Layout-Objekt das angegebene Layout-Handle hinzu und führt die dort angegebenen Layout-Anweisungen aus<br />
Beispiel: {{layout area=&#8221;frontend&#8221; handle=&#8221;my_layout_handle&#8221;}}</p>
<p>Synonym:</p>
<pre class="brush:php">$html = Mage::app()-&gt;getLayout-&gt;getUpdate()-&gt;load('my_layout_handle')-&gt;generateXml()-&gt;generateBlocks();
echo $html-&gt;getOutput();</pre>
<p>Parameter:<br />
area: kann &#8220;frontend&#8221; oder &#8220;adminhtml&#8221; sein<br />
handle: das entsprechende Layout-Handle<br />
jeder weitere Parameter wird an jeden im Layout definierten Block weitergegeben</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">skinDirective</span><br />
</strong>Beschreibung: Gibt den absoluten Pfad zum angegebenen Skin-Theme-Ordner zurück unter Berücksichtigung der Theme-Fallbacks. Beispielsweise, um Grafiken oder Skripte aus dem Skin-Theme-Ordner in CMS-Seiten einzubinden<br />
Beispiel: {{skin url=&#8221;images/camera.gif&#8221;}}</p>
<p>Synonym:</p>
<pre class="brush:php">Mage::getDesign()-&gt;getSkinUrl('images/camera.gif', $weitereParameter);</pre>
<p>Parameter:<br />
url = relativer Pfad zur Datei oder auch leer<br />
_type, _default: keine weitere Bedeutung erkennbar<br />
_area: mögliche sinnvolle Werte sind &#8220;frontend&#8221; oder &#8220;adminhtml&#8221;<br />
_package: altenatives Design-Package<br />
_theme: alternatives Theme</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">mediaDirective</span><br />
</strong>Beschreibung: Gibt den absoluten Pfad zum media-Verzeichnis zurück<br />
Beispiel: {{media url=&#8221;catalog/product/test.gif&#8221;}}</p>
<p>Synonym:</p>
<pre class="brush:php">Mage::getBaseUrl('media) . 'catalog/product/test.gif';</pre>
<p>Parameter:<br />
url = relativer Pfad zur Datei oder auch leer</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>storeDirective</strong></span><br />
Beschreibung: Gibt Shop-URLs gemäß der angegebenen &#8220;Route/Controller&#8221;-Konfiguration zurück; ermöglicht auch die Erstellung benutzerdefinierter Shop-URLs<br />
Beispiel: {{store url=&#8221;catalog/category/view&#8221; _query_id=5}}</p>
<p>Synonym:</p>
<pre class="brush:php">Mage::app()-&gt;getStore(Mage::getDesign()-&gt;getStore())-&gt;getUrl('catalog/category/view', array('id' =&gt; 5));</pre>
<p>Parameter:<br />
<strong>url:</strong> URL (ohne Base-URL und per &#8220;?&#8221; angehängte Parameter); die angegebene URL wird durch Magentos Routing-System verarbeitet, sodass auch URLs mit Platzhaltern möglich sind, wie beispielsweise &#8220;*/*/*&#8221;. Diese Platzhalter werden dann wie gewohnt durch die jeweils aktuelle Route/Controller/Action-Kombination ersetzt. Es können auch Parameter in Magento-Manier mit übergeben werden wie z.B: &#8220;*/*/*/id/572&#8243;. Die erzeugten URLs enden stets mit einem Slash.<br />
<strong>direct_url:</strong> die URL (ohne Base-URL) wird ohne Verarbeitung durch Magentos Routing-System ausgegeben. So ist es möglich, bestimmte Dateien im Magento-Verzeichnis direkt zu referenzieren oder auch Parameter direkt anzuhängen. Beispiel: &#8220;hallo_welt.html?a=b&#8221;.<br />
<strong>_query_:</strong> (bei &#8220;url&#8221; &amp; &#8220;direct_url&#8221; Parameter möglich) ermöglicht das Anhängen von Parametern an die URL. Beispiel: _query_a=&#8221;test&#8221; wird zu http://&#8230;?a=test<br />
<strong>_fragment:</strong> (bei &#8220;url&#8221; &amp; &#8220;direct_url&#8221; Parameter möglich) ermöglich die Angabe von Ankern z.B. _fragment=&#8221;kapitel2&#8243; wird zu http://&#8230;&#8230;..#kapitel2<br />
<strong>_escape</strong>: (bei &#8220;url&#8221; &amp; &#8220;direct_url&#8221; Parameter möglich) wirkt auf alle per &#8220;_query_&#8221; übergebenen Parameter; wenn &#8220;_escape&#8221; auf &#8220;true&#8221; gesetzt ist, werden die Parameter URL-codiert zurückgegeben. Aus &#8220;a=überschall&#8221; wird so &#8220;a=%26uuml%3Bberschall&#8221;.<br />
<strong>_use_rewrite:</strong> (nur &#8220;url&#8221; Parameter möglich) falls auf &#8220;true&#8221; gesetzt, werden Route/Controller/Action-Kombinationen durch die entsprechenden Pfade aus der Rewrite-Tabelle ersetzt. Aus &#8220;/catalog/category/view/&#8221; wird so zum Beispiel &#8220;hosen/jeans.html&#8221;<br />
<strong>_store_to_url:</strong> (nur bei &#8220;url&#8221; Parameter möglich) kann &#8220;true&#8221; oder &#8220;false&#8221; sein. Falls &#8220;true&#8221;, wird der URL ein Store-Query-Parameter angehangen wie z.B. http://&#8230;page.html?___store=default<br />
<strong> _store:</strong> (nur bei &#8220;url&#8221; Parameter möglich) kann entweder einen Store-Code enthalten oder eine Store-ID. Setzt voraus, dass &#8220;_store_to_url&#8221; auf &#8220;true&#8221; gesetzt ist<br />
<strong>_forced_secure:</strong> (nur bei &#8220;url&#8221; Parameter möglich) Wenn auf &#8220;true&#8221; gesetzt, wird stets eine https-URL zurückgegeben<br />
<strong>_secure:</strong> (nur bei &#8220;url&#8221; Parameter möglich) Wenn auf &#8220;true&#8221; gesetzt, wird eine https-URL zurückgegeben, wenn in der XML-Konfiguration für die Seite, auf der der Link eingebunden ist, eine sichere Verbindung konfiguriert ist (siehe XML-Pfad: config/frontend/secure_url/)<br />
<strong> _type:</strong> (nur bei &#8220;url&#8221; Parameter möglich) Art der URL. Möglich sind hier &#8220;link&#8221;, &#8220;direct_link&#8221;, &#8220;web&#8221;, &#8220;skin&#8221;, &#8220;js&#8221; und &#8220;media&#8221;. Falls nicht gesetzt, wird standardmäßig &#8220;link&#8221; angenommen. Für alle anderen URL-Typen werden die in der Systemkonfiguration für den jeweiligen Typ eingetragenen Verzeichnisse in die URL eingefügt.<br />
<strong>_current:</strong> (nur bei &#8220;url&#8221; Parameter möglich) sofern auf &#8220;true&#8221; gesetzt, werden die Parameter der aktuellen Route der generierten URL angehangen, sofern diese nicht durch benutzerdefinierte Parameter überschrieben werden (siehe &#8220;_query_&#8221;).</p>
<p>&nbsp;</p>
<p><a title="Magento: CMS-/E-Mail-Template-Syntax in Magento 1.6.2.0 (Teil 2)" href="http://www.muenster-webdesign.net/blog/magento-cms-e-mail-template-syntax-in-magento-1-6-2-0-teil-2/">Magento: CMS-/E-Mail-Template-Syntax in Magento 1.6.2.0 (Teil 2)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/magento-cms-syntax-in-magento-1-6-2-0-teil-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento: Arbeitsweise der &#8220;Apply To Products&#8221;-Option unter &#8220;Kategorie/Eigene Gestaltung&#8221; im Detail</title>
		<link>http://www.muenster-webdesign.net/blog/magento-arbeitsweise-der-apply-to-products-option-unter-kategorieeigene-gestaltung-im-detail/</link>
		<comments>http://www.muenster-webdesign.net/blog/magento-arbeitsweise-der-apply-to-products-option-unter-kategorieeigene-gestaltung-im-detail/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 15:40:43 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[Magento | E-Commerce]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=1949</guid>
		<description><![CDATA[Gelegentlich sind die Bezeichnungen im Magento-Backend zu knapp um zu verstehen, was eine bestimmte Option im Detail bewirkt. So erging es uns mit der Option &#8220;Apply To Products&#8221;, die im Reiter &#8220;Eigene Gestaltung&#8221; in der Kategorieverwaltung zur Verfügung steht. Ein Blick in den Code hilft da weiter. Ist die Option &#8220;Apply To Products&#8221; aktiviert, wirkt [...]]]></description>
			<content:encoded><![CDATA[<p>Gelegentlich sind die Bezeichnungen im Magento-Backend zu knapp um zu verstehen, was eine bestimmte Option im Detail bewirkt. So erging es uns mit der Option &#8220;Apply To Products&#8221;, die im Reiter &#8220;Eigene Gestaltung&#8221; in der Kategorieverwaltung zur Verfügung steht. Ein Blick in den Code hilft da weiter.</p>
<p>Ist die Option &#8220;Apply To Products&#8221; aktiviert, wirkt sich dies wie folgt auf die <strong>Produkteinzelansichten</strong> der dieser Kategorie zugeordneten Produkte aus:</p>
<ul>
<li>sofern für ein Produkt individuelle Theme- oder Page-Layout-Anweisungen hinterlegt sind, werden diese gegenüber den entsprechenden Kategorieeinstellungen priorisiert bzw. überschreiben diese.</li>
<li>sofern für ein Produkt keine individuellen Layout-Anweisungen hinterlegt sind, werden die Anweisungen (Theme-, Page-  und Update-XML-Anweisungen) der Kategorie übernommen. Dies kann unter anderem dazu führen, dass eine vormals zweispaltige Produkteinzelansicht (Standardeinstellung) zu einem dreispaltigen Layout mutiert, wenn die Kategorie-Listenansicht entsprechend konfiguriert ist.</li>
<li>Update-XML-Anweisungen für die Kategorie und das Produkt werden in jedem Fall zusammengeführt, wobei zunächst die Kategorie- und dann die Produkt-XML-Anweisungen abgearbeitet werden</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/magento-arbeitsweise-der-apply-to-products-option-unter-kategorieeigene-gestaltung-im-detail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Magento: _init()-Methode im Kontext von Entity-, Resource- und Collection-Models</title>
		<link>http://www.muenster-webdesign.net/blog/magento-_init-methode-im-kontext-von-entity-resource-und-collection-models/</link>
		<comments>http://www.muenster-webdesign.net/blog/magento-_init-methode-im-kontext-von-entity-resource-und-collection-models/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 15:10:39 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[Magento | E-Commerce]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=1903</guid>
		<description><![CDATA[Gelegentlich ergibt sich bei Magento das Problem, das gleichlautende Methoden in verschiedenen Kontexten verschiedene Parameter erwarten und letztlich auch Verschiedenes tun. Ein Beispiel ist die _init()-Methode wie sie in den (Entity-)Models, Resource- und Collection-Models zum Einsatz kommt. _init() im Entity-Model-Kontext: Im Entity-Model Kontext dient die _init()-Methode dazu, ein Entity-Model mit einem bestimmten Resource-Model zu &#8220;verknüpfen&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p>Gelegentlich ergibt sich bei Magento das Problem, das gleichlautende Methoden in verschiedenen Kontexten verschiedene Parameter erwarten und letztlich auch Verschiedenes tun. Ein Beispiel ist die _init()-Methode wie sie in den (Entity-)Models, Resource- und Collection-Models zum Einsatz kommt.</p>
<p><strong>_init() im Entity-Model-Kontext:<br />
</strong>Im Entity-Model Kontext dient die _init()-Methode dazu, ein Entity-Model mit einem bestimmten Resource-Model zu &#8220;verknüpfen&#8221;. Der mittels der _init()-Methode übergebe String wir später über die config.xml des Moduls auf die entsprechende Klasse gemappt und per Mage::getResourceSingleton() instantiiert. Die _init()-Methode erwartet dementsprechend den in der config.xml definierten Model-Group-Name gefolgt vom Dateifpad zur zugehörigen Resource-Model-Datei. Beispielsweise also:</p>
<pre class="brush:php">protected function _construct()
{
   $this-&gt;_init('sales/order');
}</pre>
<p>Hier würde Magento in der config.xml nach dem Model-Group-Name &#8220;sales&#8221; suchen, dann das zugehörige Resource-Model-Classname-Prefix auslesen und schließlich die angegebene Pfadangabe auf das Dateisystem umsetzen.</p>
<p><strong>_init() im Resource-Model-Kontext:<br />
</strong>Im Resource-Model-Kontext wird der _init()-Methode hingegen eine Entität gefolgt von der Angabe der Tabellenspalte übergeben, die die Entitäts-ID beinhaltet. Die zu einem Modul zugehörigen Entitäten sind wiederum in der config.xml im Pfad global/models/<em>resource_model_group_name</em>/entities/<em>name_der_entität </em>festgelegt. Ein entsprechender Aufruf lautet also:</p>
<pre class="brush:php">protected function _construct()
{
   $this-&gt;_init('sales/order', 'entity_id');
}</pre>
<p><strong>_init() im Collection-Model-Kontext:</strong><br />
Im Collection-Model-Kontext wird der _init()-Methode das zugehörige Entity-Model bekannt gemacht. Später wird dann für jedes ausgelesene Tupel ein Model-Objekt der entsprechenden Klasse instantiiert und die Werte per setData() auf das Objekt übertragen. Ein Aufruf entpsrechend unseres Beispiels sieht wie folgt aus:</p>
<pre class="brush:php">protected function _construct()
{
   $this-&gt;_init('sales/order');
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/magento-_init-methode-im-kontext-von-entity-resource-und-collection-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento &amp; EcomDev PHPUnit: Fixtures werden nicht geladen</title>
		<link>http://www.muenster-webdesign.net/blog/magento-ecomdev-phpunit-fixtures-werden-nicht-geladen/</link>
		<comments>http://www.muenster-webdesign.net/blog/magento-ecomdev-phpunit-fixtures-werden-nicht-geladen/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 15:47:46 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[Magento | E-Commerce]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=1893</guid>
		<description><![CDATA[Magento-Entwickler, die ihre Extensions per TDD (Test-Driven-Development) entwickeln und dazu die Magento-PHPUnit-Extension von EcomDev nutzen, haben vielleicht schon Probleme mit dem Laden von Fixtures über die entsprechende &#8220;@loadFixture&#8221;-Annotation gehabt. Sofern in der Testklasse eine eigene Setup-Methode definiert ist, gelingt das Laden der Fixtures nur, wenn am Ende die Eltern-Methode aufgerufen wird. In ihr werden die [...]]]></description>
			<content:encoded><![CDATA[<p>Magento-Entwickler, die ihre Extensions per TDD (Test-Driven-Development) entwickeln und dazu die <a href="http://www.ecomdev.org/2011/02/01/phpunit-and-magento-yes-you-can.html" target="_blank">Magento-PHPUnit-Extension von EcomDev</a> nutzen, haben vielleicht schon Probleme mit dem Laden von Fixtures über die entsprechende &#8220;@loadFixture&#8221;-Annotation gehabt.</p>
<p>Sofern in der Testklasse eine eigene Setup-Methode definiert ist, gelingt das Laden der Fixtures nur, wenn am Ende die Eltern-Methode aufgerufen wird. In ihr werden die nötigen Fixtures überhaupt erst geladen. Eine mögliche Setup-Methode sieht daher wie folgt aus:</p>
<pre class="&quot;brush:php">public function setUp()
{
 // eigener Setup-Code ...
 parent::setUp();
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/magento-ecomdev-phpunit-fixtures-werden-nicht-geladen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento: Verwendete Action-Controller-Kombination im Frontend herausfinden</title>
		<link>http://www.muenster-webdesign.net/blog/magento-verwendete-action-controller-kombination-im-frontend-herausfinden/</link>
		<comments>http://www.muenster-webdesign.net/blog/magento-verwendete-action-controller-kombination-im-frontend-herausfinden/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 13:06:32 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[Magento | E-Commerce]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=1859</guid>
		<description><![CDATA[Bedingt durch Magentos URL-Rewriting im Frontend ist es meist nicht auf den ersten Blick ersichtlich, welche Modul-Controller-Action-Kombination für die aktuelle Ausgabe verantwortlich ist. Tipp: Ein Blick in die CSS-Klasse des Body-Tags im HTML-Quellcode verrät meist die aktuelle Modul-Controller-Action-Kombination.]]></description>
			<content:encoded><![CDATA[<div id="attachment_1860" class="wp-caption alignright" style="width: 220px"><a href="http://www.muenster-webdesign.net/blog/wp-content/uploads/2011/12/magento-modul-controller-action-kombination-im-frontend.gif" rel="shadowbox[sbpost-1859];player=img;" title="Die CSS-Klasse im Body-Tag verrät die aktuelle Modul-Controller-Action-Kombination. Hier: cms/index/index"><img class="size-thumbnail wp-image-1860 " title="Die CSS-Klasse im Body-Tag verrät die aktuelle Modul-Controller-Action-Kombination. Hier: cms/index/index" src="http://www.muenster-webdesign.net/blog/wp-content/uploads/2011/12/magento-modul-controller-action-kombination-im-frontend-210x59.gif" alt="Die CSS-Klasse im Body-Tag verrät die aktuelle Modul-Controller-Action-Kombination. Hier: cms/index/index" width="210" height="59" /></a><p class="wp-caption-text">Die CSS-Klasse im Body-Tag verrät die aktuelle Modul-Controller-Action-Kombination. Hier: cms/index/index</p></div>
<p>Bedingt durch Magentos URL-Rewriting im Frontend ist es meist nicht auf den ersten Blick ersichtlich, welche Modul-Controller-Action-Kombination für die aktuelle Ausgabe verantwortlich ist.</p>
<p>Tipp: Ein Blick in die CSS-Klasse des Body-Tags im HTML-Quellcode verrät meist die aktuelle Modul-Controller-Action-Kombination.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/magento-verwendete-action-controller-kombination-im-frontend-herausfinden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

