Speichern von mehreren Objekten über eine Transaktion

<?php // $foo = Mage::getModel(‚….. // $bar = Mage::getModel(‚….. $transaction = Mage::getModel(‚core/resource_transaction‘); $transaction->addObject($foo); $transaction->addObject($bar); $transaction->save(); // runs save on all objects. On error -> rollback Magento nutzt das core/resource_transaction Model selbst bei Speichern einer Order während des Checkouts. Es kann aber auch im eigenen Modul nützlich sein.

Magento DB resourcen / connections auflisten

<?php require_once ‚app/Mage.php‘; Mage::app(); $xml = Mage::app()->getConfig()->getNode(‚global/resources‘); foreach ($xml->children() as $node) { echo $node->getName() . PHP_EOL; } Es wird dann eine Liste der definierten DB-Resourcen aufgelistet: default_setup default_write default_read core_setup core_write core_read db eav_setup admin_setup adminnotification_setup cron_setup directory_setup dataflow_setup cms_setup index_setup customer_setup catalog_setup catalogrule_setup ….

Magento automatisch installieren

Via Vagrant / Puppet Bei der vorletzten PHPUG Rheinhessen hatte ich bereits eine automatische Magento Installation über Vagrant und Puppet vorgestellt. Damit ist es möglich eine komplette Virtuelle Maschine mit Magento innerhalb von Minuten hochzuziehen. Das ist super, wenn man mal eben ein wirklich leeres System benötigt. Das ganze ist Weiterlesen…

Eine bessere Übersicht bei Magento Katalog-Preisregeln

Inspiriert von Fabrizios Verbesserungen bei der  Webseite/Store/Store-View Darstellung  (http://www.fabrizio-branca.de/magento-website-store-groups-store-views.html) kam mir die unübersichtliche Auflistung von Katalog-Preisregeln in den Sinn. Von Fabrizios Entusiasmus angesteckt habe ich mich nun hingesetzt und ein Magento Modul entwickelt. Das Modul tauscht das Grid unter „Promotions -> Catalog Price Rules“ aus und entfernt den Pager. Es Weiterlesen…

Magento 2.0 Entwicklungsversion – Ein erster Einblick

Magento 2

Magento hat die Entwicklungsversion des 2.0 Branch in einem öffentlichen SVN Repository auf dem Server bereitgestellt. Um einen Blick auf die Entwicklung zu werfen kann man sich den Code einfach unter der URL http://mage2.magentocommerce.com/svn/public/ auschecken und einmal reinschauen. Ein Blick unter die Haube lohnt sich. Wer Angst hatte, dass sich mit Version 2 alles ändert, der kann an dieser Stelle beruhigt sein. Es ist nicht alles neu Designt worden. Man fühlt sich direkt heimisch und findet seine Klassen. Die Controller, Models und Blocks sind noch an der gleichen Stelle abgelegt. Alles was allderdings mit der Darstellung zu tun hat, findet man nun direkt im Modul. Kein lästiges scrollen mehr in der IDE!!!

Design/Templates

Die Templates findet man jetzt im Verzeichnis „view“ innerhalb des Moduls. Dort gibt es dann die Trennung nach „frontend“ und „adminhtml“. Javascripts die zum Modul gehören kann man nun in das Verzeichnis „skin“ ebenfalls innerhalb des Moduls ablegen. Ein Zugriff kann z.B. über das Template in der .phtml Datei geschehen.

Beispiel aus der onepage.phtml:

<script type="text/javascript" src="<?php echo $this->getSkinUrl('Mage_Checkout::opcheckout.js') ?>"></script>

Was auffällt ist, dass die Modul-Kürzel abgeschafft wurden. Jetzt wird immer der volle Modulname verwendet. Dies sorgt für weniger Irritation. Die Layout XML Dateien findet man nun auch im Modul im Verzeichnis „view“. Die hier abgelegte Datei ist jetzt das Standard-Layout. Weggefallen ist dafür der sogenannte „Base-Theme“ da nun alle mit einer Extension ausgelieferten Dateien direkt im Verzeichnis view liegen. Wer in seinem Theme eine layout.xml Datei überschreiben möchte kann dies aber immer noch tun. Am Theme „iphone“ kann man sich das ganze auch gut anschauen. Es wird jetzt einfach ein Verzeichnis mit dem Modulnamen z.B. Mage_Checkout angelegt. Dort kann dann eine eigene layout.xml hinterlegt werden die mit der originalen Datei gemerged wird. Interessant ist in diesm Fall der Artikel im Magento 2 Wiki der das neue angepasste XML mergen erklärt. [Wiki: Configuration File Merging]https://wiki.magento.com/display/MAGE2DOC/Configuration+File+Merging Neu ist jetzt auch, dass Themes mit Metainformationen ausgetattet werden können. Dazu dient die Datei „theme.xml“ innerhalb des Theme Verzeichnisses. Darin können Mindestanforderungen definiert werden und dem Theme ein richtiger Namen gegeben werden. Das wird wahrscheinlich für den in Magento 2.0 eingeführten Layout-Manager benötigt.

(mehr …)