Sonderzeichen sind immer wieder ein Ärgernis, vor allem wenn unterschiedliche Systeme diese unterschiedlich darstellen. Viele Web-Mailer machen das intuitiv richtig, einige Mail-Programme leider nicht (u.a. MS-Outlook, AOL-Webmailer, etc.). Um dem entgegen zu wirken, hilft es immer, dem Empfängersystem zu sagen, welche Sprache gesprochen wird (sprich: welcher Zeichensatz wird verwendet)
Magento Model debuggen
Häufig kommt es vor, dass man die Daten eines Magento-Models ansehen muss. Dies kann man recht einfach mit dem Systemlogger machen, z.B. so:
1 |
Mage::log($_product); |
Allerdings führt das durch Rekursion innerhalb des Objekts (hier Mage_Catalog_Model_Product ) zu hohem Speicherverbrauch „Magento Model debuggen“ weiterlesen
Open Office Calc – Doppelte Werte suchen
Gegeben sei ein Datenblatt A mit Spalte A (EMAIL_1). In dieser stehen bereinigte, klein geschriebene E-Mail Adressen. Mittels einer zweiten Liste von E-Mail Adressen EMAIL_2 sollen nun diejenigen herausgefiltert werden, die in EMAIL_1 und EMAIL_2 vorkommen.
EMAIL_2 wird als zweite Spalte B in Datenblatt A angelegt und die Werte aus der zweiten Liste hineinkopiert. Somit sieht das Ganze dann exemplarisch so aus:
Schleifennamen in JavaScript
Um eine Schleife mit einem Namen zu versehen, reicht es, den Namen vor die eigentliche Einleitung der Schleife zu schreiben:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function schleifenbeispiel() { // definiere den Namen der äußeren Schleife aussen: for (var i = 0; i < 10; i++) { // definiere den Namen der inneren Schleife innen: for (var k = 0; k < 10; k++) { if (k < i) { console.log("k =", k, " ist kleiner als i =", i); } else { // fahre fort mit Schleife aussen (innen wird abgebrochen) continue aussen; } } } } |
Solange k kleiner als i ist, wird ein Logeintrag innerhalb der Schleife innen geschrieben, ansonsten wird mit der Durchführung von aussen fortgefahren.
Magento Cache leeren
Der Magento-Cache wird normalerweise über das Adminpanel geleert. Ist dieses – zB wegen einer Exception durch eine Plugin-Installation – nicht erreichbar und hilft das Leeren des var/cache/ Verzeichnisses nicht, so kann der Cache auch durch Ausführung eines Skriptes geleert werden:
1 2 3 4 |
require_once('pfad/zur/app/Mage.php'); Mage::app('admin')->setUseSessionInUrl(false); Mage::app()->cleanCache(); |
Dateien, Verzeichnisse, Inhalte finden
Dies sind nur ein paar vielgenutzte Anwendungsbeispiele der Linux-Befehle find , ls , grep . Über die passenden Parameter lassen sich noch viele weitere Operationen durchführen. --help hinter dem jeweiligen Befehl ist immer ein guter Anfang.
Layout Update via Observer
Um, zB das Template der Produktdetailseite abhängig von einem Attribut anzupassen, kann man über einen Observer ein Layout-Update einspeisen, bevor die Seite gerendert wird. Natürlich ist das auch am Produkt selbst im Tab Design möglich, diese Methode hier ist jedoch für zB Redakteure einfacher zu bedienen. So wäre es möglich, ein Attribut „view_template“ mit verschiedenen Werten zu belegen und dementsprechend auszulesen. Der Einfachheit halber verwende ich in diesem Beispiel die SKU des Artikels.
Leere Datei mit fester Grösse erzeugen
Zum Testen von Dateiübertragungen kann man in Linux-Systemen schnell eine leere Datei mit einer festen Größe anlegen. Dazu reicht dieser Befehl:
1 |
dd if=/dev/zero of=outputfile.empty bs=1M count=24 |
DB Dump per Shell-Script
Hier habe ich ein mittlerweile recht ausgereiftes Shell-Script, mit dem ich meine Magento Datenbank-Dumps automatisiert erzeuge. Dieses Script kann sowohl zur manuellen Sicherung als auch zum Backup durch einen Cronjob verwendet werden. Dabei sollten dann allerdings alle Bildschirmausgaben entfernt werden.
Artikel und Summen im Warenkorb
Folgende Funktionen liefern die Anzahl der Artikel zurück, die sich zur Zeit im Warenkorb befinden:
1 |
Mage::helper('checkout/cart')->getSummaryCount(); |
Die Gesamtsumme erhält man so
1 2 |
Mage::getSingleton('checkout/session')->getQuote()->getSubtotal(); Mage::getSingleton('checkout/session')->getQuote()->getGrandTotal(); |