Magento: Alle Modul Rewrites anzeigen

Magento: Alle Modul Rewrites anzeigen

Magento ist durch seine Flexibilität sehr beliebt bei Händlern und Entwicklern. Vor allem das einfache Erweitern und Überschreiben von Models und Blöcken ermöglicht eine vielfältige Modul Landschaft. Durch den vielfältigen Einsatz von Plugins kommt es aber auch immer wieder zu Problemen, wodurch neu installierte Plugins nicht funktionieren. Durch den technischen Aufbau von Magento 1 kann jedes Model nur einmal von einem Standard Plugin überschrieben werden, da die Plugins alle die gleichen Klassen erweitern. Natürlich kann man hier aber händisch nacharbeiten und die jeweiligen Plugin Klassen anpassen. Hierfür muss man allerdings wissen, welche Plugins bereits Core Models oder Blöcke erweitern. Wie bekomme ich eine Liste mit allen Klassen Rewrites? Am einfachsten und ohne zusätzliche Tools geht das mit Magento mit der Mage::getConfig() Methode. Falls man nur die überschriebenen Blöcke oder Models ausgeben will, kann man dieses mit einer Erweiterung des Parameters erreichen. Mit n98-Magerun eine Rewrite Liste erzeugen Etwas einfacher geht das ganze auch mit dem Magento Tool n98-magerun. Das Tool, welches sich selbst als das Schweizer Taschenmesser für Magento bezeichnet, liefert für genau diesen Einsatzzweck eine Funktion mit. Nachdem man die .phar Datei heruntergeladen hat und in das Magento Verzeichnis gelegt hat, kann man sich alle rewrites mit diesem Befehl anzeigen lassen. Durch das eigene Parsen der config Files ist es dem Tool sogar möglich, eventuell bestehende Konflikte zwischen verschiedenen Modulen...
Weiterleitung von http auf https einrichten

Weiterleitung von http auf https einrichten

Https (Hypertext Transfer Protocol Secure) ist derzeit in aller Munde, schließlich will Google in Zukunft Webseiten, welche per https erreichbar sind bevorzugen. Seitdem versuchen viele ihre Webseite per https erreichbar zu machen. Nur weil eine Webseite über https erreichbar ist, heisst das allerdings noch lange nicht, dass diese auch darüber aufgerufen wird. Die Webseite ist trotzdem noch über http erreichbar. Um das zu ändern, gibt es verschiedene Möglichkeiten. 1. Möglichkeit: über die .htaccess Datei Durch das kopieren des Codes oben in eure .htaccess Datei, werden Besucher automatisch von http Webseite auf die https Webseite weitergeleitet. Das funktioniert mit jedem CMS-System. 2. Möglichkeit: über PHP Natürlich ist es auch möglich die Weiterleitung über PHP auszuführen. Dafür müsst ihr am Anfang von eurer index.php folgenden Code Schnippsel einfügen. Das funktioniert nur, wenn euer CMS oder Framework jeden Webseiten Request über eine zentrale index.php leitet (z.B. mit Magento,...
Magento Produkte ohne Bilder finden

Magento Produkte ohne Bilder finden

Wenn der Magento Shop erst einmal tausende von Produkte beinhaltet, ist es nicht leicht immer die Übersicht über alle Datenstände der Produkte zu behalten. „Bei welchem Produkt fehlt nochmal das Bild? Wo ist die Farbe noch nicht hinterlegt?“ sind häufige Fragen, welche sich die Online Shop Redaktion stellt. Früher oder später werden diese Fragen auch immer an den Technischen Betreuer weitergegeben. Wie so oft gibt es auch für dieses Problem in Magento verschiedene Lösungen. Die wohl einfachste Lösung dafür ist wohl diese paar Zeilen Code zu nehmen und in einer Datei auszuführen. Optional kann man hierfür auch noch einen Grid im Admin Backend anlegen, wodurch das ganze auch von den Mitarbeitern des Online Shops einfach und jederzeit verwaltet werden kann. Anschließend kann man die Collection entweder in einen Grid einbinden oder einfach in einem Template oder einem Controller (Achtung: unsauber!) ausgeben lassen. Update (30.5.2013): Da die oben genannte Lösung in verschiedenen Konstellationen nicht perfekt funktioniert, gibt es hier noch eine Erweiterte Version. Da bei verschiedenen Import Vorgängen der Wert ’no_selection‘ nicht richtig gesetzt wird, wird mithilfe dieses Snippets noch überprüft ob der Wert valide ist oder...
Magento: Statischen Block ausgeben

Magento: Statischen Block ausgeben

Eine große Stärke von Magento ist die Flexibilität. Diese Flexibilität wird unter anderem auch von dem Block / Page Konzept gewährleistet. Dadurch ist es möglich bestimmte Content Blöcke auf der Seite immer wieder zu verwenden. Super ausspielen kann Magento diesen Trumpf bei einem Impressum oder den AGB. Das Impressum muss bei einem (deutschen) Shop sehr oft angezeigt werden – ob in den Transaktionsemails oder auf der Webseite. Hier ist es natürlich angenehm, wenn man vVeränderungen nur an einer Stelle im System ausführen muss. Es gibt in Magento verschiedene Möglichkeiten diesen Block dann auf einer Seite oder in einer Email wieder auszugeben. Hier will ich die wichtigsten auflisten. Per PHP Blöcke kann man per PHP direkt im Template ausgeben. Es ist dabei auch möglich den Title und den Content seperat auszugeben. In diesem Beispiel wird der Block mit dem code footer_links ausgegeben. Auf diese Art und Weise wird allerdings nur der Content des Blocks ausgegeben. Um auch den Title auszugeben, sollte man darüber noch folgenden Code einfügen: Durch den Aufruf des Models cms/block kann der Code nicht nur in Templates, sondern auch in Modul Blöcken verwendet werden. Allerdings sollte man versuchen das zu vermeiden, da es kein sauberer Programmierstil ist. In den Template selbst kann man den Aufruf des Models auch durch ein $this ersetzen.  Per XML Statische Blöcke können auch mit den Layout XML Dateien auf einer Seite eingebunden werden. Sinnvoll ist das vor allem bei statischen Blöcken, welche fest im Design verankert sind und trotzdem von Admins gepflegt werden sollen. Eingebunden werden die Statischen Blöcke so: Auch in diesem Beispiel muss der Block Code footer_links durch einen anderen...
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...
Fatal error: Allowed memory size of 104857600 bytes exhausted

Fatal error: Allowed memory size of 104857600 bytes exhausted

Jeder der mit PHP experimentiert hat, dürfte diese Fehlermeldung schon mal erhalten haben: Der Fehler deutet darauf hin, dass eine Operation in dem abgebrochenen Skript sehr viel Speicherplatz benötigt. Allerdings gibt es bei den meisten Servern und PHP-Installationen ein Memory Limit von 32MB oder mehr. Falls man vollen Zugriff auf dem Server hat kann man das Memory Limit in der php.ini verändern. Speziell bei Shared Webspace oder Managed Servern hat man allerdings meistens keinen Zugriff auf die php.ini und muss sich daher mit anderen Mitteln weiterhelfen. Eines davon ist das php Memory Limit mittels ini_set zu erhöhen. Voraussetzung hierfür ist allerdings, dass diese Funktion auf dem Server freigeschalten ist. Mithilfe dieses Code Snippets wird das Memory Limit auf 200 MB erhöht. Mit der selben Funktion kann man das Memory Limit auch komplett deaktiveren: Durch das deaktivieren des Memory Limits kann fehlerhafter Code die Erreichbarkeit des Servers beinträchtigen. Daher sollte diese Funktion mit großer Vorsicht verwendet...
Webentwickler / PHP Konferenzen 2013

Webentwickler / PHP Konferenzen 2013

Ein neues Jahr hat angefangen, daher stellt sich auch die Frage: auf welche Konferenzen gehe ich dieses Jahr? Welche waren letztes Jahr gut? Welche Konferenzen waren eher enttäuschend? Da Michael Kliewe letztes Jahr eine super Übersicht zusammen gestellt hat und ich diese sehr gern benutzt habe, habe ich mir dieses Jahr die Mühe gemacht. Ich habe für das Jahr 2013 einen Kalender mit den wichtigsten Konferenzen in Deutschland und Umgebung zusammen gestellt. Wenn eine Konferenz fehlt, dann bitte einfach schnell einen Kommentar hinterlassen. 25-26 Januar 2013 PHP Benelux in Antwerpen 22-23 Februar 2013 PHP UK Conference in London, England 11-14 März 2013 MobileTech Conference in München 19 März 2013 PHPNE Conference in Newcastle upon Tyne, England 19-22 März 2013 Magento Developers Paradise in Kaprun, Österreich 19-20 April 2013 Inspiring Flow (Typo3) in Kolbermoor / Rosenheim 22-26 April 2013 JAX in Mainz 17-18 Mai 2013 PHPDay in Verona, Italien 2-5 Juni 2013 International PHP Conference in Berlin 3-5 Juni 2013 Webinale in Berlin 3-4 Juni 2013 Meet Magento #7.13 in Leipzig 5-7 Juni 2013 Entwicklertage Karlsruhe 6-8 Juni 2013 Dutch PHP Conference in Amsterdam, Holland 24-27 Juni 2013 Web Developer Conference in Nürnberg August 2013 FrOSCon (genauer Termin steht noch nicht fest) 29-30 Oktober 2013 Webtechcon in...
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: Cache leeren via FTP oder PHP

Magento: Cache leeren via FTP oder PHP

Es gibt viele Situationen, wo der Magneto Cache geleert werden muss. Ein gutes Beispiel ist vor oder nach dem Einspielen von Produktdaten in Magento. Durch das leeren des Caches vor dem Import kann man teilweise deutlich höhere Durchsatzraten erzielen. Aber auch nach dem Import macht es Sinn, den HTML-Cache zu leeren. Man kann den Magento Cache sowohl per PHP als auch per FTP / Shell leeren. Magento Cache per PHP leeren Um gleich nach dem Import Vorgang den Cache zu leeren, kann man folgenden Code verwenden. Natürlich kann man per php auch den Image Cache leeren. Dadurch werden alle Thumbnails der Produktbilder gelöscht und beim ersten Aufruf neu erstellt. Wenn man beispielsweise Bilder per FTP austauscht, können so die neuen Thumbnails generiert werden. Magento Cache per FTP oder Shell leeren Den Magento Cache per FTP oder Shell zu leeren klappt nicht bei jeder Magento Installation. Durch den modularen Aufbau von Magento kann der Filecache leicht durch einen Redis oder Memcache Cache ersetzt werden. Falls der Magento Filecache benutzt wird, funktioniert allerdings auch das löschen des Magento Caches per FTP oder Shell einwandfrei. Hierzu wechselt man in das Verzeichnis var/cache/ und löscht alle Unterordner inklusive der jeweiligen Inhalte. In der Linux Shell funktioniert es noch etwas schneller. Einfach im Magento Hauptverzeichnis folgenden Befehl...
Nodewords mit Drupal

Nodewords mit Drupal

Ich habe mir die Tage mal Nodewords angeschaut und bin sehr begeistert. Das Modul hat zwar noch ein paar kleinere Fehler, aber im großen und ganzen eine sehr sinnvolle SEO-Extension für Drupal. Die Description kann dabei automatisch aus dem Content ausgelesen werden (als Teaser). Da die wenigsten Nutzer Lust haben immer eine Description zu schreiben (ausser bei sehr wenigen, hochoptimierten Seiten) ist das eine nützliche Funktion. Bei den Keywords gibt es allerdings noch kleinere Probleme. Ich kann mir sehr gut vorstellen, dass Nodewords die Tags eines Tages vom Eintrag abfängt und als Keywords verwendet. Allerdings ist das – soweit ich das gesehen habe – bisher leider noch nicht möglich. Schade. Ansonsten kann man bei jeder Seite einzeln oder für ganze Themenbereiche Index und Follow einstellen. Gerade wenn man durch irgendwelche Umstände Duplicated Content produziert und ihn leider beibehalten muss (was ja bei größeren Portalen durchaus öfters das Problem ist), ist das eine sehr nette Sache. Im großen und ganzen kann ich das Modul also nur empfehlen, allerdings würde ich eine automatisch Keyword Generierung doch sehr...