Module Deaktivieren ohne Backend

Grüß euch,

ich hab ausversehen die Moduleinträge im OXID Backend falsch eingegeben.

also

[B]oxoutput => tinyce/tinyce_oxoutput [/B]
muss ein heißen

[B]oxoutput => tinyce/tinyce_oxoutput_ttt[/B]
hab ich eingegeben zum testen, wolle es einfach schnell ausschalten

so jetzt geht weder backend, noch frontend (white screen)

im log steht.
EXCEPTION_SYSTEMCOMPONENT_CLASSNOTFOUND

also er findet das modul nicht, is ja klar.
aber ich komm ja nicht ins backend.

[B]gibt es eine möglichkeit übers phpmyadmin die moduleinträge zu ändern?[/B]

hab unter oxconfig gekuckt, aber nur einen blob eintrag gefunden.

schonmal danke für`s lesen. ich komm im moment einfach nicht weiter.
ich kenn den fehler, aber kann ihn nicht beheben ohne backend.

[ul]
hab eine lösung gefunden: http://wiki.oxidforge.org/Tutorials/de/Moduleinträge-via-Frontend-bearbeiten

ich bin zwar nicht ins frontend gekommen, aber das lag nur an der index. also bin ich auf eine beliebige unterseite gegangen (hauptsache keine index url), eingeloggt als admin, und php script aus tutorial aufgerufen. funktioniert wieder.

[/ul]

es ginge auch folgendermaßen wenn gar nichts mehr geht:

  • Öffnen Sie die Datei core/oxfunctions.php
  • Finden Sie folgende Funktion:

function oxNew( $sClassName )
{
startProfile( ‘oxNew’ );
$aArgs = func_get_args();
$oRes = call_user_func_array( array( oxUtilsObject::getInstance(), “oxNew” ), $aArgs );
stopProfile( ‘oxNew’ );
return $oRes;
}

Ändern Sie diese wie folgt ab:

function oxNew( $sClassName )
{
return new $sClassName;
startProfile( ‘oxNew’ );
$aArgs = func_get_args();
$oRes = call_user_func_array( array( oxUtilsObject::getInstance(), “oxNew” ), $aArgs );
stopProfile( ‘oxNew’ );
return $oRes;
}

Das deaktiviert alle Module, dann können Sie die Moduleinträge im Adminbereich korrigieren.

Man kann auch einfach alle Moduleinträge über die Datenbank löschen. In der Tabelle oxconfig findet sich ein Eintrag mit dem Wert “aModule” in der Spalte OXVARNAME. Setzt man hier den Wert von OXVARVALUE auf 0 so sind alle Moduleinträge entfernt.
Folgende SQL-Abfrage kann zB über phpmyadmin oder die Konsole ausgeführt werden:

UPDATE oxconfig SET OXVARVALUE=0x00 WHERE  OXVARNAME=aModule

Das Standard-Modul-Eintrag für den Rechnungs- und Lieferscheindruck lautet:

oxorder => invoicepdf/myorder

Wenn es Probleme bei Modulen gibt und z. B. die Anzeige nicht mehr funktioniert, kann durch ein externes Script das Modul / die Module wieder geändert werden.
Modul hz_modules.php im Stammordner einfügen und dann extern aufrufen.
Fundstelle: http://wiki.oxidforge.org/Tutorials/de/Moduleinträge-via-Frontend-bearbeiten

salut,

@qwerkopf7
Wenn du Einträge vorher testen willst dann installiere doch einfach unseren Modul-Connctor :wink:
http://www.oxidmodule.com/Modul-Connector/Modul-Connector-fuer-Oxid-CE4-PE4-EE4.html

Vor Programmierfehlern kann der zwar auch nicht schützen, es gibt aber ein Vorschau in der geprüft wird ob die Voraussetzungen gegeben sind. So wird geprüft ob es die entsprechenden Klasse gibt und das Modul mit dem du erweitern möchtest.
In deinem Fall hätte es eine rote Warnmeldung gegeben.

Das man damit sehr einfach Moduleinträge deaktivieren und die Reihenfolge ändern kann möchte gar nicht erst ansprechen :wink:

ceau

Wer kann mir helfen? :eek:

Ich wollte in der aktuellsten CE ein Modul einfügen. Dieses habe ich unter den Stammdaten gemacht, jedoch vergessen die Dateien zuerst in das root-Verzeichnis zu laden. So kam ich nach dem Speichern weder ins Frontend noch in Backend rein, es war nur eine leere Seite sichtbar…

Jedoch habe ich schon die Tipps von aggrosoft und be_commerce probiert, ohne Erfolg.
Dann habe ich ein Backup der Daten auf dem Server eingespielt, auch das half nicht. Liegt wohl daran, dass Daten in der Datenbank geändert wurden und nicht im root-Verzeichnis, richtig?

Was kann ich denn jetzt noch machen, damit mein Shop wieder erreichbar ist?
Mittlerweile ist es zum verzweifeln!!! :frowning:

hast du PhpMyAdmin oder einen Zugriff auf die Datenbank?
führe mal dieses SQL Befehls aus:

UPDATE `oxconfig` SET `OXVARVALUE` = 0x4dba322c774f5444a5777125d61918a96e9e65e1b8fba2e9f6f8ff4e240b745241e4b01edd9224c81f3020f58a2d WHERE `OXVARNAME` = 'aModules'

oder den Moduleintrag damit deaktivieren:

[QUOTE=vanilla thunder;83083]hast du PhpMyAdmin oder einen Zugriff auf die Datenbank?
führe mal dieses SQL Befehls aus:

UPDATE `oxconfig` SET `OXVARVALUE` = 0x4dba322c774f5444a5777125d61918a96e9e65e1b8fba2e9f6f8ff4e240b745241e4b01edd9224c81f3020f58a2d WHERE `OXVARNAME` = 'aModules'

[/QUOTE]

Hallo Vanilla Thunder,

habe deinen Tipp gerade probiert. Leider immer noch eine leere Seite…
Oder muss ich nach der Ausführung noch etwas beachten?

[QUOTE=Hebsacker;83086]oder den Moduleintrag damit deaktivieren:

http://wiki.oxidforge.org/Tutorials/de/Moduleinträge-via-Frontend-bearbeiten[/QUOTE]

Hallo Hebsacker,

davon habe ich schon gelesen, aber ich hab noch nicht verstanden wie ich das Script ausführen kann? Muss ich etwas downloaden oder was fange ich mit dem langen Code an?

Du musst den Code in einen Editor kopieren und als hz_modules.php abspeichern (am besten mit notepad++ - auf keinen Fall mit dem Windows Editor!). Im Anschluss auf den Webserver schieben, ins Rootverzeichnis, also dort wo auch die config.inc.php liegt.

Dann kannst Du diese Datei direkt im Browser aufrufen.

Diese Zeilen löscht Du am besten gleich aus dem Code raus:

if( oxSession::getVar('usr') === null || oxSession::getVar('usr') !== 'oxdefaultadmin' ) {
    exit( 'Anmeldung erforderlich.' );

Und nachdem Du die Datei ausgebraucht hast, bitte unbedingt wieder vom Server löschen, ist sonst ein großes Sicherheitsrisiko!

So, habe es hinbekommen und beide Module deaktivieren können.

Leider bleibt die Seite immer noch leer??? :confused:

Woran kann es denn jetzt liegen? Wie gesagt, fing alles damit an, dass ich ein Modul installieren wollte, ohne die passenden Dateien ins root-Verzeichnis zu laden.

Habe vorhin probehalber auch die Dateien hochgeladen und das Modul korrekt installiert. Auch dies hat nicht geholfen… :frowning:

Gibt es eine Alternativ-Lösung?

Verzeichnis /tmp geleert?
Hast Du bei der Installation ein SQL ausgeführt?

Was für ein Modul war das?

Der Temp Ordner ist leer…

Es handelt sich um das Piwik Modul von Marmalade

Ich habe wie in der Anleitung beschrieben in den Systemeinstellungen “oxoutput => marm/piwik/marm_piwik_oxoutput” eingetippt und abgespeichert, jedoch die Dateien vergessen hochzuladen.

Einen SQL Befehlt für die Installation? Nein, nur wie in der Anleitung beschrieben… :confused:

PS: Den Punkt 1 in der Anleitung hab ich “übersehen”

[QUOTE=elvitas;83120]
PS: Den Punkt 1 in der Anleitung hab ich “übersehen”[/QUOTE]

…das ist ne Grundregel und sollte eigentlich Punkt 0,5 sein… :slight_smile:

schau mal per FTP in das Log-Verzeichnis in die EXCEPTION_LOG.txt, ob da ein aktueller Fehler drin ist.

Hast Du schon eine PIWIK-Installation?

[QUOTE=Hebsacker;83141]…das ist ne Grundregel und sollte eigentlich Punkt 0,5 sein… :slight_smile:

schau mal per FTP in das Log-Verzeichnis in die EXCEPTION_LOG.txt, ob da ein aktueller Fehler drin ist.

Hast Du schon eine PIWIK-Installation?[/QUOTE]

Leider fehlt mir die Log Datei und auch eine Piwik Installation konnte ich bisher nicht durchführen. Es kommt dann folgender Hinweis:

Fatal error: Smarty error: unable to write to $compile_dir ‘/www/htdocs/xxxxxx/oxid_eshop/tmp’. Be sure $compile_dir is writable by the web server user. in /www/htdocs/xxxxxx/oxid_eshop/core/smarty/Smarty.class.php on line 1093

So, nun geht es wieder… Nachdem ich Schreibrechte für den Temp-Ordner vergeben habe, wurde die Seite normal aufgerufen.

Danke an alle für die Hilfe! :slight_smile:

Hallo zusammen,

wäre es vielleicht möglich einen Schalter in die config.inc.php einzubauen ob mit oder ohne Module laufen soll? Es kommt ja durchaus öfter vor, das mal ein Modul streikt. So könnte man einfacher die Module deaktivieren im Notfall.

Viele Grüße, Blues

Ich weiß diese Antwort kommt spät und ist für viele schon gelöst aber da ich selbst immer wieder danach suche (vielleicht hilft es ja jemanden):
Seit Version 4.7 ist das relativ einfach zu machen:
Quelle: http://www.ackis-oxid.de/2013/module-kann-nicht-aktiviert-werden-in-oxid-eshop-beheben-modulkonfiguration-zurcksetzen/


delete from oxconfig where oxvarname in (
'aDisabledModules',
'aLegacyModules',
'aModuleFiles',
'aModulePaths',
'aModules',
'aModuleTemplates'
);

Anschließend tmp Verzeichnis löschen und alles geht wieder. Jetzt kann man anfangen die Module wieder stückweise zu aktivieren.

Danke Till. Wobei ich die Idee mit der config option auch gut finde.

Gruß