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