Magento: kleine nützliche Toolbar

10. September 2010 at 12:27

Hier findet ihr eine kleine nützliche kostenfreie Magento-Toolbar!

Product Description

Advanced developer toolbar with profiling, db queries, block nesting, requests and caching.

Features:

  • Requests: involved controller classes, modules, actions and request parameters
  • General Info: website id, website name, store id, store name, storeview id, storeview code, storeview name and configured caching method
  • Blocks: overview of block nesting
  • Config: enable/disable frontend hints, inline translation and cache clearing
  • PHP-Info: output of phpinfo()
  • Profiling: output of Varien_Profiler with function execution time, function count and memory usage
  • Additional Information: version information, page execution time and overall memory usage
  • DB-Profiler: Number of executed queries, average query length, queries per second, longest query length, longest query and detailed query listing including simple syntax highlighting of SQL.

Magento: Path Hints & Block Hints im Admin Backend aktivieren

9. September 2010 at 13:23
magento path hints admin backend

magento path hints admin backend

Im Backend ist es möglich für das Frontend die Ausgabe der Magento: Debug mit Pfadhinweisen in Magento zu aktivieren. Für das Admin Backend gibt es direkt keine funktion. Benötigt ihr diese, so ändert temporär in der Datenbank-Tabelle „core_config_data“ die „scope_id“ bei den path-Werten für „dev/debug/template_hints“ und „dev/debug/template_hints_blocks“ auf „0“ sowie die „value“ auf „1“ (siehe Screenshot)!

magento-path-hints-admin-backend-phpmyadmin

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 – Form per Ajax Request absenden

26. Juli 2010 at 18:12

Hier ein Beispiel (Produkt zum Warenkorb hinzufügen) zum absenden eines Form per Ajax Request in Magento:

<script type="text/javascript">
 //<![CDATA[
 var productAddToCartForm = new VarienForm('product_addtocart_form');
 productAddToCartForm.submit = function(product_name) {
 if (this.validator.validate()) {
new Ajax.Request($('product_addtocart_form').action, {
 parameters: Form.serialize($('product_addtocart_form'), true),
 area: $('product_addtocart_form'),
 onComplete: function (transport) { }
 });
}
 }.bind(productAddToCartForm);
 //]]>
</script>

Alternative Code aus dem Newsletter

<script type="text/javascript">
//<![CDATA[
function submitSubscribe() {
 new Ajax.Request('<?php echo Mage::getBaseUrl() ?>newsletter/subscriber/newajax/',
 {
 method:'post',
 parameters: $('newsletter-subscribe').serialize(true),
 onLoading: function(){
 $('subscribe_update_div').show();
 $('subscribe_update_div').innerHTML = "<?php echo $this->__('Sending subcribe request ...'); ?>";
 },
 onSuccess: function(transport){
 var response = transport.responseText.evalJSON();
 $('subscribe_update_div').innerHTML = response.message;
 },
 onFailure: function(){
 $('subscribe_update_div').innerHTML = "<?php echo $this->__('Something went wrong ...'); ?>";
 }
 });
 }
//]]>
</script>

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