13.6.3.35 Doc::setValue()

Modifie la valeur brute d'un attribut de document.

13.6.3.35.1 Description

string setValue (          string $attributeIdentifier,
                  string|string[] $value,
                              int $index = - 1,
                              int &$kvalue = null )

Modifie la valeur d'un attribut de l'objet Document. La modification n'est pas enregistrée en base de données.

13.6.3.35.1.1 Avertissements

Pour enregistrer la modification , il est nécessaire d'appeler la méthode Doc::store().

Les résultats fournis par la méthode Doc::getAttributeValue() ne peuvent pas être utilisés directement par cette méthode.

Si la valeur est une chaîne vide ou égale à null, alors la valeur de l'attribut n'est pas modifiée. Si la valeur est égale à un espace , la valeur est effacée.

Les espaces et certains caractères invisibles en début et fin de valeur sont supprimés. La fonction trim est utilisée pour réaliser cette suppression.

13.6.3.35.2 Liste des paramètres

(string) attributeIdentifier
Identifiant de l'attribut à modifier.
(string|string[]) value
Nouvelle valeur brute. Dans le cas d'un attribut multiple, il est possible d'indiquer les différentes valeurs brutes dans un tableau.
(int) index
Dans le cas où l'attribut est multiple, indique l'index de la valeur à modifier.
(int) kvalue
En cas d'erreur et dans le cas où l'attribut est multiple, indique l'index de la première valeur erronée de l'attribut multiple.

13.6.3.35.3 Valeur de retour

Message d'erreur. Retourne une chaîne vide s'il n'y a pas d'erreur.

13.6.3.35.4 Erreurs / Exceptions

En cas d'erreur, un message non vide est retourné. Les principales causes d'erreurs sont :

  • Insuffisance de privilèges. Nécessite le droit edit.
  • Attribut inexistant.
  • Contenu de la valeur incohérent par rapport au type d'attribut.
  • Visibilité I sur l'attribut.

13.6.3.35.5 Historique

Aucun.

13.6.3.35.6 Exemples

Calcul de la somme des attributs my_numberone et my_numbertwo et enregistrement dans l'attribut my_sum.

Soit la famille suivante :

BEGIN Ma famille MYFAMILY
CLASS My\MyFamily
// idattr idframe label T A type ord vis phpfunc
ATTR MY_IDENTIFICATION Identification N N frame 10 W
ATTR MY_NUMBERONE MY_IDENTIFICATION nombre 1 Y N int 20 W
ATTR MY_NUMBERTWO MY_IDENTIFICATION nombre 2 N N int 30 W
ATTR MY_REDACTOR MY_IDENTIFICATION rédacteur N N account 30 R
ATTR MY_MAIL MY_IDENTIFICATION Adresse courriel N N text 10 R
ATTR MY_SUM MY_IDENTIFICATION nombre 1+2 N N int 30 R
END

13.6.3.35.6.1 Mise à jour d'attribut après modification du document

Le rédacteur est le dernier à avoir modifié le document. Calcul de la somme des attributs my_numberone et my_numbertwo et enregistrement dans l'attribut my_sum.

Avec la classe :

namespace My;
use \Dcp\AttributeIdentifiers\MyFamily as MyAttributes;
 
class MyFamily extends \Dcp\Family\Document
{
    /**
     * Mise à jour de l'attribut `my_sum` 
     */
    protected function setMyRawSum()
    {
        $n1 = intval($this->getRawValue(MyAttributes::my_numberone));
        $n2 = intval($this->getRawValue(MyAttributes::my_numbertwo));
        return $this->setValue(MyAttributes::my_sum, ($n1 + $n2));
    }
    /**
     * Le rédacteur est l'utilisateur courant 
     */
    protected function setMyRedactor() {
        return $this->setValue(MyAttributes::my_redactor, getCurrentUser()->fid);
    }
    public function postStore()
    {
        $err = parent::postStore(); 
        if (empty($err)) {
                $err =$this->setMyRawSum();
                $err.=$this->setMyRedactor();
        }
        return $err;
    }
}

13.6.3.35.7 Notes

Aucunes

13.6.3.35.8 Voir aussi

×