13.6.3.26 Doc::getAttributeValue()

Récupère la valeur typée d'un attribut de document.

13.6.3.26.1 Description

mixed getAttributeValue ( string $idAttribute )

Retourne la valeur d'un attribut du document.

13.6.3.26.1.1 Avertissements

Le retour de cette méthode peut être utilisé pour mettre à jour des valeurs avec la méthode Doc::setAttributeValue(). Par contre, ces valeurs typées sont incompatibles avec la méthode Doc::setValue() qui prend en argument des valeurs brutes.

13.6.3.26.2 Liste des paramètres

[int] (string) idAttribute
Identifiant de l'attribut

13.6.3.26.3 Valeur de retour

Retourne la valeur typée de l'attribut en fonction des types d'attributs :

date, timestamp
Les dates sont retournées avec un objet de la classe DateTime (classe interne de PHP).
time
Les temps sont retournés avec le type string sous la forme "HH:MM:SS".
file, image
Les pointeurs de fichiers sont retournés sous la forme "[mimeType]|[vaultId]|[fileName]".
int
Les nombres entiers sont retournés avec le type int.
double, money
Les nombres décimaux sont retournés avec le type float.

Les autres types sont retournés sous forme de chaîne de caractère (type string).

Les valeurs multiples sont retournées avec un objet de type array. Les valeurs multiples ayant aussi des valeurs multiples (cas des attributs multiples dans les tableaux) sont retournés avec un objet de type array[] (tableau à 2 dimensions).

Si une valeur est vide, la valeur null sera retournée. Dans le cas d'un attribut multiple, le retour pour une valeur vide (aucune valeur) sera un tableau vide array().

Pour les attributs de type array, la valeur retournée est un tableau à deux dimensions. La première dimension est l'index (numérique - 0 à n) de la rangée et la deuxième est l'identifiant de l'attribut. Chaque élément contient une valeur typée.

13.6.3.26.4 Erreurs / Exceptions

Retourne une exception Dcp\Exception dans les cas suivants :

  • L'attribut n'existe pas
  • ou si l'attribut est un attribut ne contenant pas de valeur (type tab, frame ou menu).

13.6.3.26.5 Historique

Aucun.

13.6.3.26.6 Exemples

Soit la famille suivante :

BEGIN Ma famille MYFAMILY
CLASS My\MyFamily
DFLDID auto
ICON classe.png
// idattr idframe label T A type ord vis need link phpfile 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_SUM MY_IDENTIFICATION Nombre 1+2 N N int 40 R ::mySum(MY_NUMBERONE, MY_NUMBERTWO)
ATTR MY_REDACTOR MY_IDENTIFICATION Rédacteur N N account 50 W
ATTR MY_REF MY_IDENTIFICATION référence N N text 70 W
ATTR MY_T_PARTNER MY_IDENTIFICATION Participants N N array 80 W
ATTR MY_COAUTHORS MY_T_PARTNER Co-auteurs N N account 90 W
ATTR MY_CODATE MY_T_PARTNER Dates d'entrée N N date 100 W
END

Vérification de l'attribut my_sum en fonction des valeurs de my_numberone et my_numbertwo

use \Dcp\AttributeIdentifiers\MyFamily as Attributes\MyFamily;
 
/** @var \Dcp\Family\MyFamily */
$myDoc = new_Doc("", "MY_DOCUMENT");
if ($myDoc->isAlive()) {
    $n1=$myDoc->getAttributeValue(Attributes\MyFamily::my_numberone);
    $n2=$myDoc->getAttributeValue(Attributes\MyFamily::my_numbertwo);
    $sum=$myDoc->getAttributeValue(Attributes\MyFamily::my_sum);
    if ($sum != ($n1 + $n2)) {
        printf("La somme est incorrecte : %d + %d <> %d ! \n", $n1, $n2, $sum);
    }
}

Retour d'un tableau. Le document a deux rangées.

use \Dcp\AttributeIdentifiers\MyFamily as Attributes\MyFamily;
 
/** @var \Dcp\Family\MyFamily */
$myDoc = new_Doc("", "MY_DOCUMENT");
if ($myDoc->isAlive()) {
    $partipants=$myDoc->getAttributeValue(Attributes\MyFamily::my_t_partner);
    print_r($partipants);
}
Array
(
    [0] => Array
        (
            [my_coauthors] => "5838"
            [my_codate] => DateTime Object
                (
                    [date] => "2013-07-04 00:00:00"
                    [timezone_type] => 3
                    [timezone] => Europe/Paris
                )
        )
    [1] => Array
        (
            [my_coauthors] => "5837"
            [my_codate] => DateTime Object
                (
                    [date] => "2013-06-11 00:00:00"
                    [timezone_type] => 3
                    [timezone] => "Europe/Paris"
                )
        )
)

13.6.3.26.7 Notes

Aucunes.

13.6.3.26.8 Voir aussi

×
nouveauté