Ma tentative est de reconstruire l'exemple ici: https://docs.joomla.org/Creating_a_custom_form_field_type
D'une manière ou d'une autre, Joomla ne voit pas le fichier City.php
Dans administrator/components/com_testing/models/fields. Même lorsque je force une erreur de syntaxe dans le fichier City.php
(Par exemple, en supprimant un ;
À la fin d'une ligne), aucune erreur ne s'affiche. Je suppose donc que le fichier City.php
N’est même pas inclus.
J'ai essayé d'inclure le nouveau chemin de champ via addfieldpath
dans la définition fieldset
- et également avec JForm::addFieldPath(JPATH_COMPONENT . '/models/fields');
dans la fonction getForm
du modèle. Rien n'a fonctionné jusqu'à présent.
La sortie est un champ de saisie de texte, ce que je ne veux pas.
Voici mon code source:
Le fichier City.php
Est équivalent à celui du lien ci-dessus.
administrator/components/com_testing/models/forms/testing.xml
:
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset addfieldpath="/administrator/components/com_testing/models/fields">
<field
name="testingfield"
type="City"
multiple="true"
size="7"
label="Testinglabel">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
</field>
</fieldset>
</form>
Si votre champ est dans l'administrateur, vous voulez utiliser ce chemin d'inclusion: JFormHelper::addFieldPath(JPATH_COMPONENT_ADMINISTRATOR.'/models/fields');
Définissez le type sur city en minuscule. Si cela ne fonctionne toujours pas, essayez d’ajouter addfieldpath au champ en tant que
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset>
<field
addfieldpath="/administrator/components/com_testing/models/fields"
name="testingfield"
type="City"
multiple="true"
size="7"
label="Testinglabel">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
</field>
</fieldset>
</form>
comme dans certains cas, le chemin d'accès aux champs n'est pas accessible.
Vérifiez également le fichier FormField que vous utilisez et faites correspondre les cas comme dans l'exemple de fichier.
Dans un cas, j'ai rencontré un problème que le formulaire ne charge pas, essayez donc de créer un même fichier avec un autre type, par exemple: remplacez la ville par Exemple et n'oubliez pas de faire correspondre le cas.
J'espère que cela t'aides.