Facebook Like Button in Magento integrieren

31. August 2010 at 11:11

Um den Facebook-Like Button in Magento einzubinden editiert die view.phtml (z.B. im default-Theme unter: /default/default/template/catalog/product/view.phtml) und fügt folgende Zeilen hinzu:

<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo $this->helper('core/url')->getCurrentUrl(); ?>&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0? allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:28px"></iframe>

Die Stelle ist dabei beliebig wählbar.

Den Button könnt ihr auch in andere Template-Dateien einbauen. Aktuell wird dabei die Magento-URL der aktuellen Seite angegeben. Über die Angabe einer anderen URL (z.B. in der Kategorieübersicht die Produkt-URL) kann man den Button auch für andere URLs angeben. Möchte man den Button mit anderen Angaben generieren, kann man dies auf der Facebook-Seite machen.

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');?>

Magento: Redirect Funktionen

20. August 2010 at 17:42

Die ReDirect Funktionen findet ihr in der Mage_Core_Controller_Varien_Action class.

/* Redirect to certain url  */
_redirectUrl($url)

/* Redirect to certain path */
_redirect($path, $arguments=array())

/* Redirect to success page */
_redirectSuccess($defaultUrl)

/* Redirect to error page */
_redirectError($defaultUrl)

/* Set referer url for redirect in response */
_redirectReferer($defaultUrl=null)

/*  Identify referer url via all accepted methods (HTTP_REFERER, regular or base64-encoded request param) */
_getRefererUrl()

/* Check url to be used as internal */
_isUrlInternal($url)

For redirect URL:
$url = "http://example.com";
Mage::app()->getFrontController()->getResponse()->setRedirect($url);
For redirect with path and arguments:
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl($path, $arguments));

Magento: Session Variable – Set Unset Session Variable

20. August 2010 at 15:48

Es wird eine individuelle Variable mit den Namen „magentoTest“ angelegt. Der Wert für diese ist in diesem Fall „hello magento“.

$session = Mage::getSingleton('core/session', array('name'=>'frontend'));
$session->setMagentoTest('hello magento');

Abfragen der Werte:

$test = Mage::getSingleton('core/session')->getMagentoTest();

Session Variable löschen / unset

Mage::getSingleton('core/session')->setMagentoTest();

Nur eine bestimmte Session-Variable löschen:

Mage::getSingleton('core/session')->unsMagentoTest();

(Im Frontend die Customer oder Core Session benutzen. Im Backend die Adminhtml Session benutzen.)
Core Session:- Mage::getSingleton(‘core/session’)
Customer Session:- Mage::getSingleton(‘customer/session’)
Admin Session:- Mage::getSingleton(‘adminhtml/session’)

Magento: Exception printing is disabled by default for security reasons

5. August 2010 at 12:52

Ihr erhaltet in Magento die Ausgabe „Exception printing is disabled by default for security reasons.“ und wollt mehr Debug-Ausgaben?

Einfach die Datei [magento-root-path]/errors/local.xml.sample umbenennen in [magento-root-path]/errors/local.xml
Und schon wird bei erneuter Ausführung der Fehler erzeugenden Seite das PHP Tracing aktiviert und die Fehlermeldung ausgegeben.

Magento: Breadcrumb auf jeder Seite anzeigen

14. Juli 2010 at 12:17

Wenn ihr eine Breadcrumb auf jeder Seite angezeigt haben möchtet, dann könnt ihr das wie folgt über die jeweilige Layout.xml einbinden. Hier ein Beispiel für den Warenkorb aus der checkout.xml:

<checkout_cart_index>
 <reference name="breadcrumbs">
 <action method="addCrumb">
 <crumbName>Home</crumbName>
 <crumbInfo><label>Startseite</label><title>Startseite</title><link>/</link></crumbInfo>
 </action>
 <action method="addCrumb">
 <crumbName>Wkindex</crumbName>
 <crumbInfo><label>Warenkorb</label><title>Warenkorb</title></crumbInfo>
 </action>
 </reference>

Magento Speed up – Magento beschleunigen über htaccess Eintrag

13. Juli 2010 at 16:39

Mit den folgenden Eintrag in der .htaccess Datei im Magento Hauptordner könnt ihr ein Geschwindigkeitsschub von 50 – 200% Erreichen (Ladezeit):

AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/x-javascript application/x-json application/x-httpd-php
AddOutputFilter DEFLATE html xml css js php
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent

Magento: Statischen CMS Block im Template ausgeben

10. Juli 2010 at 16:27

Ihr könnt in Magento ein statischen CMS Block wie folgt im template einbinden.

Ein Beispiel zum einbinden über die entsprechende layout.xml :

<layout>
<asdf_xy_zzz>
<reference name="content">
 <block type="cms/block" name="cms_store_check">
 <action method="setBlockId"><block_id>store_check</block_id></action>
 </block>
 </reference>
 </asdf_xy_zzz>
</layout>

Direkt einbinden im Template:

echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_id')->toHTML();?>

Einbinden im CMS:

{{block type="cms/block" block_id="your_id" template="cms/content.phtml"}}

 

Magento: Über ein url-key einer Kategorie ein Link erzeugen

8. Juli 2010 at 20:36

Im Admin-Backend ist es möglich ein url-key für z.B. Kategorien zu setzen. Möchtet ihr jetzt automatisch von Magento anhand dieser ein Link erzeugen, könnt ihr das wie im folgenden Beispiel:

<a href="<?php echo Mage::getModel('catalog/category')->load(Mage::getModel('catalog/category')->getCollection()->addAttributeToFilter('url_key', 'all-bags')->getAllIds())->getUrl(); ?>" title="All bags" ><?php echo $this->__('All bags'); ?></a>

Magento: Methoden von Klassen ausgeben

2. Juli 2010 at 15:27

magento ecommerce logoManchmal ist es ganz hilfreich sich alle verfügbaren Methoden einer Klasse ausgeben zu lassen, das könnt ihr mit der folgenden Funktion:

<style type="text/css">
body { font-family: arial;font-size: 0.9em;}
</style>
<?php
function out_methods($class) {
echo '<p><strong>'.$class.'</strong><br>';
$methods = get_class_methods($class);
sort($methods);
foreach($methods as $k => $v) {
echo "[$k] => $v <br>";
}
echo '</p><hr>';
}
require_once 'app/Mage.php';
out_methods('Mage_Catalog_Model_Product');
out_methods('Mage_Catalog_Model_Category');
?>