Dangerous stringoperations (in Magento)

Basics

Security issues in software are often based on user input which isn’t correctly sanitized, and allows an attacker to inject special characters into the code, for the purpose of changing, for example, MySQL statements, filenames, to inject commands which are executed using functions like eval(), system(), etc…

Later we’ll analyse one of these bugs inside Magento.

Weiterlesen

Die deutsche Magento Community

Magento ist eine Software die ohne die Community drumherum nicht auskommen würde. Im laufe der letzten Jahre wurden daher Stammtische, Chaträume und Blogs gegründet in denen sowohl Einsteiger als auch erfahrene Entwickler immer neue Sachen kennenlernen können und sich austauschen können.

In diesem Post möchte daher mal ein paar “Anlaufpunkte” für Magentoentwickler (nicht nur für angehende) vorstellen.

(Außerdem muss hier mal wieder was neues geschrieben werden *gg*)

Weiterlesen

Magento – customized XML configuration

A few days ago I wrote a blog post about customizing Magento’s back-end XML configuration. Now I think it’s time to translate and publish my first English blog post.

As you know Magento uses a XML driven back-end configuration for modules. You can add configuration-areas and options with a simple xml file (system.xml).

But how can we add a button (e.g. to open a new website or trigger an action)?
Weiterlesen

Magento – Die Konfiguration anpassen

Gestern tauchte im IRC die Frage auf “Wie kann ich eigentlich im Magento-Backend unter Konfiguration einen Button hinzufügen, der einen Task anstößt?”.

Bekanntermaßen bietet Magento ja eine komplett XML-gesteuerte Beschreibung der Konfiguration über das man eigene Bereiche und Optionen einfügen kann.
Nur einen Button einfügen hatte noch niemand gesehen, also werd ich das in diesem Blogpost mal genauer erklären ;-)

Angehängt gibt es ein kleines Beispielmodul, ihr braucht also nicht mal selber tippen… :D
Weiterlesen

Magentos Dateien und Ordnerstrukturen

Nachdem hier gefragt wurde wohin die ganzen Dateien eigentlich gehören werde ich dazu eine kleine Einführung geben.

Magento arbeitet im Hintergrund mit einem MVC-System und nutzt Autoloading um benötigte Klassen automatisch zu finden und zu laden.
Das ganze führt zu einfachen Regeln wo Dateien hingehören, so dass man mit einem Klassennamen wie Mage_Core_Model_App oder einem Aufruf von Mage::getModel(‘core/app’) direkt sagen kann wo die entsprechende Datei (in diesem Falle app/code/[local|community|core]/Mage/Core/Model/App.php) liegt.
Weiterlesen

Magento sales/order collection

Mit nur 3 Wochen Verzögerung schaffe ich es endlich mal wieder einen kleinen Blogartikel zu schreiben, diesmal am Beispiel der Nutzung der sales/order collection in Magento.

Die letzten Wochen hatte ich recht viel zu tun, daher diese kleine Blogpause. So war ich vom 15.5.-17.5. in Leipzig auf der Meet Magento, über die es hier einen schlnen Artikel und weiterführende Links gibt: Meet Magento E-Commerce Konferenz.

Doch nun zum eigentlichen Teil meines Posts, den Collections:
Eine Collection stellt im Prinzip eine Sammlung von Objekten des selben Models dar. Anders gesagt:
Das Model ‘sales/order’ kann per load()-Methode eine bestimmte Order laden, alternativ kann per getCollection()-Methode eine Auflistung aller Bestellungen geladen werden, die danach verarbeitet wird.
Weiterlesen