Lustiges Marketing Video von Eastpak
Hier mal wieder ein lustiges Marketing-Video von Eastpak auf YouTube, geht schon ein wenig in Richtung Guerilla Marketing.
Hier mal wieder ein lustiges Marketing-Video von Eastpak auf YouTube, geht schon ein wenig in Richtung Guerilla Marketing.
Bekommt ihr eine Fehlermeldung ähnlich
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
so ist die Ursache ein fehlerhaftes bzw. ungültiges SSL-Zertifikat. Läuft der Script local (z.B. während der Entwicklung) so könnt ihr den SSL-Check mit den folgenden Zeilen deaktivieren:
$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; $CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
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(); ?>&layout=standard&show_faces=true&width=450&action=like&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.
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');?>
Wenn unter Eclipse größere Dateneien in ein Projekt geladen werden (z.Bsp. via SVN), dann erscheint ggf. die Fehlermeldung “Java Heap Error“.
Um das Problem zu beheben, einfach die folgenden Werte in der eclipse.ini wie im folgenden Beispiel erhöhen (der für Eclipse zur Verfügung stehende Arbeitsspeicher):
-showsplash org.eclipse.platform --launcher.XXMaxPermSize 512m -vmargs -Xms40m -Xmx512m
Falls ihr größere Backups habt, welche z.B. mit mysqldump erstellt wurden, so kann der komplette Import schon mal einige Minuten dauern. Was die Meisten nicht wissen ist, dass der Import solcher mit mysqldump erstellten Backup Dateien viel länger dauert.
Bei setzen der folgenden Flags vor dem Import im Datenbank Dump, kann die Importzeit dramatisch verkürzt werden:
SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0;
Wenn der auto-commit deaktiviert wurde muss am Ende ein manueller commit erfolgen:
COMMIT;
Durch deaktivieren der unique checks und foreign key kann einiges an Geschwindigkeit heraus geholt werden.
Mit dem folgenden Bash-Script könnt ihr das Szenario automatisieren:
#!/bin/bash echo "SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0;" > backup.sql mysqldump -u myuser --password=mypassword mydatabase >> backup.sql echo "COMMIT;" >> backup.sql
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)
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');
$test = Mage::getSingleton('core/session')->getMagentoTest();
Mage::getSingleton('core/session')->setMagentoTest();
(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’)
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.
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>