Mon module utilise le champ SQL (JFormFieldSQL) pour quelques requêtes simples dans la base de données pour un composant tiers. Mon souci est que si les tables sont manquantes, l'ouverture du module dans l'admin "plantera" le back-end, à cause de l'erreur dans le mysql (ne trouvant pas la table).
Y a-t-il de toute façon un module dans le backend vérifiant si la table existe dans la base de données et, dans le cas contraire, envoie une notification indiquant que la table nécessaire est manquante et ne continue pas le chargement du fichier XML?
Votre inquiétude est justifiée. En effet, s’il ya une erreur SQL, le backend du module va planter.
Si cela est indispensable pour vous, je voudrais étendre le JFormFieldSQL
avec une implémentation personnalisée permettant de vérifier les erreurs SQL ou de vérifier MYSQL comme SHOW TABLES LIKE 'mycomponenttable'
Voir Comment créer un type de champ de formulaire personnalisé dans un module?
Vous pouvez simplement vérifier si l'extension est activée en haut du module mod _..... php pour empêcher tout traitement ultérieur:
// Check for component
if (!JComponentHelper::getComponent('com_....', true)->enabled)
{
....
return;
}