4.5.9 setCustomClientdata

Lors de la demande du rendu, des données complémentaires peuvent être fournies par le client au moyen de la méthode addCustomClientData.

Ces données sont récupérables via la méthode `setCustomClientData.

/**
 * Retrieve some custom data
 *
 * @param mixed $data data provided by client
 *
 * @return mixed
 */
public function setCustomClientData(\Doc $document, $data)

Dans les rendus par défaut (Dcp\Ui\DefaultView et Dcp\Ui\DefaultEdit), ces données sont stockées et accessibles dans la variable protégée customClientData.

Le programme de rendu de rendu appelle cette méthode après la construction de l'objet. Ces variables sont alors accessibles pour les autres méthodes.

Cette méthode est appelée après l'enregistrement du document lorsqu'il s'agit d'une demande de création (POST) , de mise à jour (PUT) ou de suppression (DELETE).

Une méthode statique est disponible pour récupérer les données complémentaires depuis d'autres méthodes comme par exemple depuis le hook preStore de l'objet document.

\Dcp\Ui\Utils::getCustomClientData()

Cette méthode retourne la donnée complémentaire décodée qui est fournie dans la requête courante.

4.5.9.1 Exemple

Ajouter un message dans l'historique lors de la sauvegarde.

Sur le client, le code suivant est exécuté :

window.dcp.document.documentController("addEventListener", "beforeSave",
    {
        "name": "my.custom",
        "documentCheck": function (document) {
            return document.family.name === "MY_FAMILY"
        }
    },
    function (event, document, data) {
        this.documentController("setCustomClientData", {"History": "Hello World!"});
    }
);

Le serveur récupère la donnée History pour l'enregistrer dans l'historique lors de la demande de sauvegarde.

class MyConfig extends \Dcp\Ui\DefaultEdit
{
    public function setCustomClientData(\Doc $document, $data)
    {
        if (! empty($data["History"])) {
            $document->addHistoryEntry($data["History"]);
        }
    }
}
×