Magento: Text kürzen / abschneiden

Magento: Text kürzen / abschneiden

Oftmals kriegt man als Entwickler ein Design vorgesetzt, das nicht skalierbar ist. Das Design schreibt also für manche Bereiche eine bestimmte Höhe vor, auch wenn der Content darin mehr Platz bräuchte. Hier bietet es sich dann meistens an den String mit PHP zu kürzen und anschließend auf den vollständigen Text zu verlinken. In Magento gibt es hier auch eine spezielle Funktion, namens truncate. Aufrufen kann man diese Funktion folgendermaßen: Hierbei wird in der Variable $string der auszugebende Content übergeben und via $length die Länge des neuen Strings...
Magento Skin Url in CMS Blöcken und Pages verwenden

Magento Skin Url in CMS Blöcken und Pages verwenden

In Magento Templates ist es ja üblich anstatt relativer Pfade absolute Pfade mithilfe der Methode zu verwenden. Obwohl diese Funktion auch in CMS Pages und CMS Blöcken zur Verfügung steht, wird diese dort kaum verwendet. Spätestens beim nächsten Domain-Umzug oder beim Einsatz eines Content Delivery Networks ist man dann aber froh über den Einsatz dieser Funktion. In den CMS Blöcken und Pages können absolute Pfade zu Bildern mit dem folgenden Code erstellt werden: Um Bilder einzubinden muss also folgender Code eingebunden werden:...
Die Magento Config anzeigen

Die Magento Config anzeigen

Um tiefgreifende Änderungen in Magento durchführen zu können, muss man manchmal in tiefe Schichten eintauchen. Auch die Config muss man hierfür öfters mal analysieren. Einen ersten Einblick kann man mit folgendem Snippet erhalten: Durch das Einbinden dieses Snippets in einem Template, wird einem die komplett geladene Magento Config angezeigt. Natürlich sollte man diesen Snippet daher nur in Entwicklungsumgebungen einbinden, da in dieser Config beispielsweise auch MySQL-Daten enthalten sind. Durch das Anzeigen der Config kann man leicht überprüfen ob Module wie gewünscht geladen werden und ob die Config Dateien dieser Module auch richtig eingelesen...
Memcache Cache ohne Neustart des Servers leeren

Memcache Cache ohne Neustart des Servers leeren

Nach einem Relaunch oder größeren Änderungen auf einer Seite sollte man in jedem Fall jegliche Caches leeren. Dazu gehört mittlerweile auch oft der Memcache, welcher mit den Magento Bordmitteln an Magento angebunden werden kann. Mit Bash-Zugriff lässt sich der Memcache, ähnlich wie der APC-Cache, sehr leicht leeren. telnet localhost 11211 flush_all...
APC Cache mit PHP leeren

APC Cache mit PHP leeren

Der APC-Cache einer Seite sollte nach größeren Änderungen (zum Beispiel einem Magento Update, einer Design Änderung oder ähnlichem) umbedingt geleert werden. Das kann entweder direkt über die Bash erfolgen oder über ein kurzes PHP-Skript. Das Skript checkt zuerst ob die Funktion apc_clear_cache verfügbar ist. Falls die Funktion nicht verfügbar ist, wird ein Error ausgegeben. <? if (function_exists('apc_clear_cache')) { if (apc_clear_cache() && apc_clear_cache('user')) { echo 'Cache clear.'; } else { print 'Error'; } } ?> Das Skript sollte man entweder noch über einen GET-Parameter vor fremden Aufrufen schützen oder einen kryptischen Dateinamen verwenden. Am besten ist es allerdings, dass man die Datei erst gar nicht in einem öffentlich aufrufbarem Verzeichnis...
Magento Grid Pagination funktioniert nicht

Magento Grid Pagination funktioniert nicht

Im Magento Backend gibt es die Möglichkeit für eigene Module auch einen Grid hinzuzufügen, welcher sich perfekt in das System eingliedert. Falls bei dem Grid dann allerdings die Paginierung nicht funktioniert, liest es oft an dem gleichen Problem: Die Collection wird in der setCollection Methode bereits via load() geladen. So sollte es aussehen: protected function _prepareCollection() { $collection = Mage::getModel('supplier/supplier')->getCollection()->addFieldToSelect('*'); $this->setCollection($collection); return parent::_prepareCollection(); }   Fehlerhaft: protected function _prepareCollection() { $collection = Mage::getModel('supplier/supplier')->getCollection()->addFieldToSelect('*')->load(); $this->setCollection($collection); return parent::_prepareCollection(); }...
Magento: Page Titles via JavaScript ändern

Magento: Page Titles via JavaScript ändern

Auch wenn man den Title in Magento natürlich eigentlich nur sauber über einen Controller verändern sollte, so gibt es doch Situationen, wo es einfach bequemer und sinnvoller ist, den Title über JavaScript im Template zu ändern. Beispielsweise auch, falls man den Title nur durch User-Interaktion verändern möchte. Damit der Title trotzdem noch den Prefix und Suffix von Magento enthält, muss man diese Variablen mit getStoreConfig abrufen und ebenso einbinden. Bei diesem Beispiel wird der Title durch den Standard Title von Magento ersetzt mit der Variable $newTitle zwischen Prefix und Suffix....