web-dev-qa-db-fra.com

Comment obtenir la forme de composant du module?

J'ai essayé d'obtenir une forme de composant de mon module. J'ai eu le modèle et ensuite essayé d'obtenir le formulaire, mais le résultat était vide. J'ai essayé de définir 'JPATH_COMPONENT' et c'était inutile.

define('JPATH_COMPONENT', JPATH_SITE . '/components/com_business');

jimport('joomla.application.component.model');
JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_business/models');
$model = JModelLegacy::getInstance('Organization', 'BusinessModel'); //It is correct

$form = $model ->get('Form'); //empty
print_r($form);
3
aspirisen

Essayez d’ajouter un chemin supplémentaire dans lequel rechercher des formulaires avant votre appel à $model->get('Form').

JForm::addFormPath(YOUR_COMPONENT_FORMS_PATH);

Vous en aurez besoin car getForm appelle loadForm (déclaré sur la classe ancêtre JModelForm) qui, avant d’obtenir l’instance de formulaire, utilise cette

JForm::addFormPath(JPATH_COMPONENT . '/models/forms');
JForm::addFieldPath(JPATH_COMPONENT . '/models/fields');

Sinon, vous pouvez utiliser JForm::getInstance pour obtenir une instance de votre formulaire.

Cordialement,

4
Pep Lainez