it-swarm.com.de

Modul XML mit SQL-Feld (JFormFieldSQL) - Benutzerdefiniertes Formularfeld - Überprüfen Sie, ob eine Tabelle vorhanden ist

Mein Modul verwendet das SQL-Feld (JFormFieldSQL) für einige einfache Abfragen in der Datenbank für eine Drittanbieter-Komponente. Ich mache mir Sorgen, dass, wenn die Tabellen fehlen, das Öffnen des Moduls im Administrator das Back-End "zum Absturz bringt", weil in MySQL ein Fehler aufgetreten ist (die Tabelle nicht gefunden wurde).

Soll das Modul im Backend trotzdem überprüfen, ob die Tabelle in db vorhanden ist, und eine Benachrichtigung darüber auslösen, dass die erforderliche Tabelle fehlt, und das Laden der XML-Datei nicht fortsetzen?

3
FFrewin

Ihre Besorgnis ist berechtigt. In der Tat, wenn ein SQL-Fehler auftritt, stürzt das Backend des Moduls ab.

Wenn dies ein Muss für Sie ist, würde ich versuchen, das JFormFieldSQL um eine benutzerdefinierte Implementierung zu erweitern, in der Sie nach SQL-Fehlern suchen oder eine MYSQL-Prüfung wie SHOW TABLES LIKE 'mycomponenttable' Durchführen können.

Siehe Wie erstelle ich einen benutzerdefinierten Formularfeldtyp in einem Modul?

3
Valentin Despa

Sie können einfach überprüfen, ob die Erweiterung oben im Modul mod _..... php aktiviert ist, um eine weitere Verarbeitung zu verhindern:

// Check for component
if (!JComponentHelper::getComponent('com_....', true)->enabled)
{
....
    return;
}
1
Anibal