Bei vielen Vorzügen, die das Magento Shopsystem bietet zeigt sich ein Sachverhalt immer wieder als wenig Benutzerfreundlich.
Die umständliche Art ein Modul (Extension), was nicht über MagentoConnect installiert wurde wieder zu entfernen.
Wer sich online auf die Suche mit z. B. "Magento Extension unsintall" landet vielfach auf Tipps, wo eine Erweiterung nur deaktiviert wird (Engl.: disabled). Ein komplettes deinstallieren (Engl.: uninstall) ist das nicht.
Allgemein Magento Extension entfernen
Es gibt ein paar Möglichkeiten, die aber von der jeweiligen Konfiguration abhängig sind.
Magento Connect
Hier muss die Extension auch über Magento Connect installiert worden sein und die uninstall Routinen hinterlegt als xml Datei in dem Extension Ordnern
Modman (Module Manager)
Auch hier bedarf es einiger Voraussetzungen am Server System. Bei Modman handelt es sich um eine Sammlung an Shell Scripts, welche installiert werden am Server. Die Magento Extension kann dann leicht entfernt werden, unberührt dabei bleiben die Datenbank Tabellen
modman remove Magento_Extension
MageTrash App
Das ist ein Magento Modul, was selber die Funkton beschreibt "Clean uninstallation or deactivation of Magento modules". Zu finden hier
Der Vorteil bei dem Modul ist, die Entfernung der Magento Extension über System > Configuration > Advanced > MageTrashApp
Hier werden auch die Datenbank Queries abgesetzt um auch hier alles zu leeren.
Manuell
Hier muss man vorher die Ordner, Dateien sichten, welche in das Magento Root Verzeichnis installiert wurde, daneben noch die Datenbank Tabellen.
Beispiel:
Wir nehmen mal an die Extension (Synonym: Modul, Erweiterung, Plugin) heisst Kliggs_Custom
1. Dateien entfernen.
/app/etc/modules/Kliggs_Custom.xml /app/local/Kliggs_Custom /app/design/adminhtml/default/default/layout/kliggs_custom /app/design/adminhtml/default/default/template/kliggs_custom /js/kliggs_custom /skin/adminhtml/default/default/kliggs_custom
2. Datenbank Tabellen
Daneben existieren ggf. noch separate Datenbank Tabellen und Einträge in der Tabelle: "core_config_data"
Um diese zu löschen sollte - nach einem Backup - diese MySQL Commands verwenden:
DROP TABLE 'kliggs_custom_table';
DELETE FROM 'core_config_data' WHERE path LIKE '%kliggs_custom%';
Magento Module entfernen
Bevor man sich an das enfernen oder deinstallieren von einem Magento Modul macht sind folgende Admin Tätigkeiten vorteilhaft:
- Backup von Magento Root
- Backup von Magento Datenbank
- System > Cacheverwaltung > Caches deaktivieren
- System > Werkzeuge > Compiler > Compiler deaktivieren
- Order var/cache/ löschen
- Die Config Datei lokalisieren - in unserem Bsp. /app/etc/modules/Kliggs_Custom.xml und <active>true</active> auf <active>false</active> setzen
- Deinstallieren der Extension Dateien aus den Ordnern /app/etc, /app/local/, /app/design/, /skin/, /js/
- Löschen der Datenbank Tabellen (sofern vorhanden)
- Löschen der Einträge / Zeilen aus der Datenbank Tabelle "core_config_data"
- Ausloggen um "Sitzung" zu beenden sofern Fehlermeldungen angezeigt werden.
Magneto Extension deaktivieren
Wer nur mal temporär ein Magento Modul deaktivieren will muss nicht gleich eine komplette Deinstallation machen. Hier reicht es die "Config Datei" zu bearbeiten, welche im Ordner /app/etc/modules/ zu finden ist.
In unserem Beispiel öffnet man die in der Magento Root
nano app/etc/Kliggs_Custom.xml
und ändert die den Wert bein den Active Tags wie folgt:
// Aktiv <active>true</active>
// Deaktiv <active>false</active>
Danach im Shop Admin System > Cache (/admin/cache/) das Konfiguration Cache löschen.
Error 500 oder Fehler 500? Was dann?
Alle Caches löschen und leeren. Außerdem Temp Verzeichnisse. Am besten per Command Line Varniche, Fullpage, Magento Cache, Cache Lager usw. leeren. Unter Umständen den Ordner var/sessions leeren (-> Problem: Kundensitzungen werden beendet). Außerdem die folgende Datei löschen:
rm -f [magento-root]maintainance.flag
Fazit
Das unintalll bzw. deinstallieren von Magento Extensions ist gelinde gesagt aufwendiger, wenn das nicht als Package installiert wurde.
Viele Anbieter von Magento Modulen bieten das einen bezahlten Service an, den man sich sparen kann. Allgemein muss man sich fragen, was die Entwickler seinerzeit gedacht haben, Dateien von Extensions über so viele Ordner zu verteilen.* Der Entwickler von Modman beschreibt das ja so:
Development of this script was inspired by Magento which forces you to mix your extension files all throughout the core code directories
In anderen OpenSource System liegt alles in einem Ordner und es ist in den meisten Fälle sofort klar was zusammen gehört.
* Natürlich sind Gründe wie Trennung Admin und FrontEnd oder auch Aspekte der Sicherheit bekannt.