Comment utiliser la classe FieldsModelField

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Comment utiliser la classe FieldsModelField

    Bonjour,

    dans le plugin authentication que je développe pour des besoins spécifiques, j'ai besoin de valoriser un champ que j'ai créé pour l'utilisateur.

    J'ai donc besoin d'enregistrer une valeur si le champ n'est pas déjà renseigné ou de le mettre à jour s'il existe.
    J'ai donc besoin de valoriser #_fields_values

    Il me semblait que FieldsModelField::setFieldValue ($fieldId, $itemId, $value) était l'outil qu'il me fallait, mais mon code FieldsModelField::setFieldValue('1','890',$partici pations);
    génère une erreur class FieldsModelField pas trouvée.

    Je dois probablement m'y prendre comme un manche, alors je serais reconnaissant à qui peut m'aiguiller.

    Peut-être dois-je d'abord instancier FieldsModelField ?

    Merci
    Dernière édition par Hableur à 30/06/2021, 09h35

  • #2
    Bonjour,

    Il faut effectivement charger la classe pour pouvoir l'utiliser.

    Essayez d'ajouter une commande

    Code PHP:
    JLoader::register('FieldsModelField'JPATH_ADMINISTRATOR '/components/com_fields/model/field.php'); 

    En Joomla 4, il suffira d'ajouter une commande use Joomla\Component\Fields\Administrator\Model\Field.

    Pascal
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Merci, cela fonctionne :

      1. Charger la classe :
      JLoader::register('FieldsModelField', JPATH_ADMINISTRATOR . '/components/com_fields/model/field.php');

      2. instancier la classe car la méthode appelée est publique et non statique
      $champ=new FieldsModelField();

      3. appeler la méthode
      $champ->setFieldValue('1','890',$participations);

      A noter que puisque je fait une modification de cette table lors du protocole d'authentification, il faut que le champ soit modifiable par le public (droits).
      A cause de la clause
      // Don't save the value when the user is not authorized to change it
      if (!$field || !FieldsHelper::canEditFieldValue($field))
      {
      return false;
      }
      dans field.php

      Merci de ton aide, ça m'a bien débloqué

      pmleconte aime ceci.

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X