Magento: Session Success or Failure Message after redirect – Magento HowTo

27. April 2011 at 10:14

Add a Success, Info or Error Message to the session and save this for re-direction in Magento

//A Success Message
 Mage::getSingleton('checkout/session')->addSuccess("Your cart has been updated successfully!");
 //A Error Message
 Mage::getSingleton('checkout/session')->addError("Your cart has been updated successfully!");
 //A Info Message (See link below)
 Mage::getSingleton('checkout/session')->addNotice("This is just a FYI message...");
 //These two lines are required to get it to work
 session_write_close(); //THIS LINE IS VERY IMPORTANT!
 $this->_redirect('checkout/cart');

Magento: Attribute zur Checkout-Quote hinzufügen

14. April 2011 at 17:01

Zuerst muss in der Datenbank die Quote Tabelle entsprechend mit dem neuen Attribute erweitert werden, dies geht wie gewohnt über die setup-scripte (z.B. mysql4-install-0.0.X.php):

$installer = $this;
$installer->startSetup();
$installer->addAttribute('quote', 'new_attribute', array(
 'label'                        => 'New Attribute',
 'type'                        => 'varchar',
));
$installer->endSetup();

Danach könnt ihr, z.b. im OnepageController.php dieses Attribute wie folgt mit Werten füllen:

Mage::getSingleton('checkout/session')->getQuote()->setNewAttribute('value');
 Mage::getSingleton('checkout/session')->getQuote()->collectTotals();
 Mage::getSingleton('checkout/session')->getQuote()->save();

Be careful on input and type. Input means the input type of the attribute. And type means the input type in database.

For textfield it will be:
'input' => 'text',
'type' => 'text',

For textarea it will be:
'input' => 'textarea',
'type' => 'text',

For date field it will be:
'input' => 'date',
'type' => 'datetime',

For select list it will be:
'input' => 'select',
'type' => 'text',

For boolean select it will be:
'input' => 'boolean',
'type' => 'int',

Magento: Admin URL für Admin-Backend-Bereich ändern – Anleitung / HowTo

13. April 2011 at 16:42

Den Pfad in der URL zum Magento Admin-Backend-Bereich könnt ihrin der local.xml unter app/etc/ im folgenden Bereich ändern:

<admin>
 <routers>
 <adminhtml>
 <args>
 <frontName><![CDATA[admin]]></frontName>
 </args>
 </adminhtml>
 </routers>
 </admin>

 

 

Wichtig ist dabei der Teil wo „Admin“ steht bei <frontName><![CDATA[admin]]></frontName>, soll der neue path lauten „admin-admin“ ändert den Part wie folgt: <frontName><![CDATA[admin-admin]]></frontName>

Video: Tiefer Einblick in JQuery von Ben Nadel

9. Februar 2011 at 12:59

Die mächtige und umfangreiche Javascript-Bibliothek jQuery, mittlerweile in Version 1.5 verfügbar, sollte jedem Webentwickler ein Begriff sein. Gerade da diese sehr umfangreich ist, ist es oft hilfreich verschiedene Tutorials zu lesen, sind Bücher doch zu schnell nicht mehr auf dem aktuellen Stand.

Sehr zu empfehlen ist das Video Tutorial von JQuery Chief Web Developer Ben Nadel.  In dem Video gibt er in Form einer Präsentation einen intensiven Einblick in jQuery und mit all seinen Komponenten. Er geht zwar nur kurz auf die einzelnen Bestandteile ein, zeigt allerdings diese auch anhand kleiner Beispiele. Ca. 100 Minuten Videomaterial sind enthalten.

Sehr empfehlenswert für jQuery Einsteiger und Entwickler über diesem Level hinaus.

Zum Video “An Intensive Exploration Of jQuery With Ben Nadel”

Magento: Core Translation Files ergänzen / überschreiben

27. August 2010 at 12:37

Die native mit Magento mit gelieferten core language files für die Übersetzungen sollten nicht überschrieben werden um die Updatefähigkeit zu gewährleisten.

Es ist möglich weitere Übersetzungen durch dass Hinzufügen entsprechender Einträge im passenden Design Ordner zu tätigen, z.B. unter

app/design/frontend/default/myModule/locale/de_DE/translate.csv

Allerdings kommt es ggf. zu Problemen wenn bestehende Core-Language-Einträge überschrieben werden sollen.

Die Lösung dafür ist eigene Language-Files unter app/locale/de_DE abzulegen (in dem Beispiel Namespace_MyModule.csv), wobei de_DE durch das jeweilige Länder-Kürzel ersetzt werden muss.

Das einbinden der Language-File im Module geht in der config.xml über

<frontend>
<translate>
 <modules>
 <Namespace_MyModule>
 <files>
 <default>Namespace_MyModule.csv</default>
 </files>
 </Namespace_MyModule>
 </modules>
 </translate>
</frontend>

Der Zugriff in der Template-Datei geht dann über:

<?php echo Mage::helper('MyModule')->__('My to translate string or hardcodet as direcdt output without language file');?>

Tutorial: Eclipse Helios and SVN support

1. Juli 2010 at 20:32

Wie viele Java- und PHP-Entwickler benutze ich Eclipse, in der aktuellen Version Helios genannt. Neben dem freien PDT-Plugin von Zend ist ein Subversion-Plugin wichtig. Da es bei der Installation über den Software-/Update-Manager probleme gibt, hier der Weg wie es auf jedenfall funktioniert.

Führt einfach folgende Schritte in Eclipse aus:

  1. Help->Install New Software
  2. wählt Subversive SVN Team Provider (Incubation)
  3. Ihr müsste Eclipse neu starten, evtl. bekommt ihr eine  Fehlermeldung (war bei mir so), danach die Meldung dass ihr eine SVN connector library wählen sollt:: Selected SVN connector library is not available or cannot be loaded …’. Instead you rather install a connector library.
  4. Help->Install New Software
  5. Add a site
  6. Ich benutze: http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/ , ihr könnt auch das SVNKit oder den JavaHL connector benutzen.
  7. entpackt den Subversive SVN Connectors
  8. Wählt Subversive SVN Connectors, SVNKit (1.3.0), JavaHL (1.6.0) and it’s native libraries.
  9. Eclipse neustarten
  10. Den Conector ggf. konfigurieren unter Window->Preferences->Team->SVN->SVN Connector.

Jetzt solltet ihr Subversion-Support haben!

HTML5Rocks – HTML5 Tutorial Seite von Google

29. Juni 2010 at 15:00

Google hat eine Seite Namens HTML5Rocks ins Netz gestellt. Dort befinden sich Präsentationen und Tutorials rund um das Thema HTML5, mit vielen Beispielen welche ausgiebigen Gebrauch von neuen HTML5-Funktionen machen.

Mit HTML5 werden viele neue Technologien eingeführt. Auf der Projekt-Seite HTML5Rocks möchte Google diese erläutern und Entwickler so dazu bringen, schneller Gebrauch von den neuen Möglichkeiten zu machen, die bereits heute in einigen Browsern (z.B. Safari, Firefox) zur Verfügung stehen.

Derzeit stehen neun Tutorials rund um HTML5-Techniken zur Verfügung. Sie erklären beispielsweise, wie eine Applikation offlinefähig gemacht wird, wie der Aufenthaltsort eines Nutzers ermittelt wird oder Dateien von der lokalen Festplatte des Nutzers gelesen werden. Zudem gibt es Tipps, wie sich Webapplikationen mit HTML5 schneller machen lassen, Nachrichten auf den Desktop des Nutzers geschickt werden oder wie Chromes Entwicklerwerkzeuge verwendet werden.

Google bietet ebenfalls eine Playground genannte Sandbox an, in der neue APIs und CSS-Eigenschaften von Browsern ausprobiert werden können.

5 Anfänger Tipps für Magento-Einsteiger

18. Juni 2010 at 03:31

magento ecommerce logoDieser Artikel ist für Neueinsteiger gedacht, welche sich für einen Onlineshop auf Basis von Magento-Commerce interessieren. Wenn Sie sich bereits längere Zeit mit Magento beschäftigt haben, werden Ihnen diese Punkte sehr wahrscheinlich bereits bekannt sein.

1. Unterschätze den Aufwand nicht

Magento ist eine eCommerce Open-Source-Lösung für den Enterprise-Bereich der Firma Varien. Es setzt auf objektorientiertes PHP und dem Zend Framework.  Magento ist aufgrund des offenen Quellcodes (open source) ideal um es seinen eigenen Wünschen anpassen, sei es auf Template Basis (Design & GUI) oder Erweiterung der Funktionalität durch neue Plugins. Als Magento-Entwickler sollte man Kenntnisse in PHP5,Objekt Orientiere Programmierung (OOP) , Zend Framework, XHTML, XML, AJAX, JavaScript und MySQL mit bringen.

2. Installieren Sie Magento über die Download-Version

Magento kann als Vollversion herunter geladen werden und per FTP installiert werden. Einfacher ist es jedoch, den Download-Installer zu verwenden. Dieser lädt automatisch die benötigten Dateien nach, und legt diese auch mit den besseren Dateirechten auf einem Linux/Unix-Server an.

3. editieren Sie keine Core-Dateien

Gerade als Neueinsteiger in Magento möchte man schnell Änderungen herbeiführen und führt im Änderungen in den Core-Dateien durch. Diese liegen unter app/code/core. Bei einem Update werden diese Änderungen jedoch überschrieben, ein manuelles nachpflegen ist zeitaufwendig und geht ggf. schief. Änderungen an entsprechenden Dateien sollten in einer Kopie dieser in den Ordner app/code/local vorgenommen werden. Soll zum Beispiel die Datei

app/code/<strong>core</strong>/Mage/Checkout/Block/Success.php

geändert werden, diese kopieren nach

app/code/<strong>local</strong>/Mage/Checkout/Block/Success.php

Somit bleibt die Original Core Datei unberührt und wird beim nächsten Update nicht überschrieben.

Eine bessere Variante ist gar das Überschreiben von Blöcken/Models. Eine ausführliche Einführung dazu gibt es im Wiki von Magento.

4. Beim Theme-Design nur die notwendigen Dateien ändern

Das Template-Modul von Magento fällt auf immer dann auf das Standard-Theme zurück, wenn es notwendig ist. Viele Anfänger machen den Fehler und kopieren sich ein komplettes Theme, um es dann ensprechend zu modifizieren. Das ist nicht notwendig, es reicht aus, nur die Dateien in ein neues Theme zu kopieren, die tatsächlich für die Änderung notwendig sind. Der Rest bleibt im default/default-Verzeichnis und wird per Fall-Back-Prinzip aufgerufen so lange die Datei im neuen Template Verzeichnis nicht existiert.

5. API-Aufrufe Vermeiden

Magento bietet eine umfrangreiche API mit der Sie viele Daten lesen und schreiben können. Leider ist diese sehr langsam und sollte deshalb nur bei einem Zugriff aus z.B. einer externen Warenwirtschaft oder Java-Applikation genutzt werden. Bei eigenen Modulen sollten Sie die PHP-Skripte direkt einbinden und um so den direkten Zugriff auf die internen Magento-Funktionen zu erhalten.

Hier ein kleines Beispiel einer Artikelliste:

require_once 'app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product =
Mage::getModel(‚catalog/product‘);;
// 13 ist die Produkt-ID
$product->load(13);
$product->
setName("Neuer Name"); # jedes Attribut kann mit setXyz() angesprochen werden
$product->save();

Weitere Tipps?

Sie haben weitere Tipps für Magento Neueinsteiger? Gerne teilen wir diese mit unseren Lesern. Nutzen Sie die Kommentarfunktion.

< i > vs < em >

4. Juni 2010 at 20:55

XHTML

Um ein Text kursiv zu formatieren gibt es die Tags <i> und <em>. Gerade für die für die Suchmaschinen-Optimierung gibt es hier ein signifikanten Unterschied.

Bei der rein grafischen Ausgabe unterscheiden sich die beiden Tags nicht. Wird die Webseite allerdings maschinell ausgelesen (z.B. Screenreader oder Google-Bot), so wird der Unterschied deutlich. Der Tag <i> formatiert eine Textpassage lediglich kursiv. Bei der Benutzung eines Screenreaders  wird das formatierte Wort normal ausgesprochen. Bei der Verwendung des <em> Tags wird das Wort nicht nur kursiv formatiert, sondern von einem Screenreader auch speziell ausgesprochen.

Vor allem bei der Erstellung barrierefreier Webanwendungen spielt das <em> Tag eine besondere Rolle. Google stuft das <em> Tag besser ein als das <i> Tag. Daher ist die Empfehlung nach Möglichkeit nur <em> Tags innerhalb der Website zu verwenden.

Die Mutter aller Landingpages – Tutorial zum Landing-Page erstellen!

27. April 2010 at 00:49

Hier findet ihr gut erklärt wie man eine gute Landingpage erstellt