Actions personnalisées (customActions)
Cette section décrit la manière de configurer les actions personnalisées exécutables sur les LSobjects appelées customActions.
$GLOBALS['LSobjects']['[nom du type d'LSobject]']['customActions'] = array (
'action1' => array(
'label' => '[label l'action]',
'hideLabel' => '[booléen]',
'helpInfo' => '[label d'aide]',
'icon' => '[nom de l'icône de l'action]',
'function' => '[fonction à exécuter]',
'question_format' => '[LSformat de la question de confirmation]',
'onSuccessMsgFormat' => '[LSformat du message à afficher en cas de succès de l'action]',
'disableOnSuccessMsg' => '[booléen]',
'noConfirmation' => '[booléen]',
'redirectToObjectList' => '[booléen]',
'noRedirect' => '[booléen]',
'accessMethods' => array(
'web',
'api',
),
'rights' => array(
'LSprofile1',
'LSprofile2',
...
)
)
);
-
label
Le label de l'action.
-
hideLabel
Cache le label dans le bouton de l'action.
-
helpInfo
Le label du message d'aide qui sera affiché au survole du bouton de l'action.
-
icon
Nom de l'îcone à afficher dans le bouton de l'action. Ce nom correspond au nom du fichier de l'image (sans l'extention) qui devra se trouver dans le dossier
src/images/[nom du theme d'images]/
ou dans le dossiersrc/local/images
.
-
function
Le nom de la fonction à exécuter qui implémente l'action personnalisée Cette fonction prendra en seule paramètre le LSobject sur lequel l'action devra être exécutée et retournera
True
en cas de succès ouFalse
en cas d'échec d'exécution de la fonction.
-
question_format
Le LSformat de la question de confirmation d'exécution de l'action. Ce LSformat sera composé à l'aide du nom de l'objet.
-
onSuccessMsgFormat
Le LSformat du message à afficher en cas de succès d'exécution de l'action. Ce LSformat sera composé à l'aide du nom de l'objet.
-
disableOnSuccessMsg
Booléen permetant de désactiver le message afficher en cas de succès d'exécution de l'action.
-
noConfirmation
Booléen permetant de désactiver la confirmation de l'exécution de l'action.
-
redirectToObjectList
Booléen permetant de rediriger l'utilisateur vers la liste des objets plutôt que sur la fiche de l'objet après l'execution de l'action.
-
noRedirect
Booléen permetant de désactiver la redirection de l'utilisateur après l'execution de l'action. Cela permet à la fonction de définir son propre fichier de template de retour et donc d'afficher une page personnalisable.
-
rights
Tableau contenant la liste des noms des LSprofiles ayant le droit d'exécuter cette action.
-
accessMethods
Tableau permetant de restreindre les moyens d'accès possibles à cette action. Par défaut, tous les moyens d'accès possibles sont autorisés. Valeurs possibles :
web
pour les accès via l'interface web etapi
pour les accès via l'API.
Écriture d'une fonction implémentant une customAction
Une fonction implémentant une customAction se déclare de la manière suivante :
/*
* Ma fonction implémentant ma customAction
*
* Paramètre :
* - $object : Le LSobject sur lequel mon action doit être exécutée
*
* Valeurs retournées :
* - True : Tout s'est bien passé
* - False : Une erreur est survenue
* - Cas particulier pour une exécution via l'API : un tableau des données
* à retourner. Exemple :
* ["success" => true, "extra_info1" => "...", "extra_info2" => "..."]
*/
function maFonction ($object) {
// Actions
}
Cette fonction doit prendre pour seul paramètre, le LSobject sur
lequel l'action personnalisée doit être exécutée et doit retourner soit True
si tout s'est bien
passé, soit False
en cas de problème.
Une customAction pourra également être appelé via l'API. Dans ce cas, il est possible de
retourner un tableau associatif et non un simple booléen. Le résultat retourné sera alors
fusionné avec les données retournées par la requête. Ce tableau devra contenir à minima la clé
success
qui indiquera via un booléen si l'exécution est un succès ou non. Il est possible de
détecter si la méthode est appelée via l'API en appelant la méthode
LSsession :: get('api_mode')
. Vous pouvez prendre exemple sur le code de la méthode
showTechInfo()
fournie par le LSaddon showTechInfo.
Note
Ces fonctions sont le plus couramment définies au sein d' LSaddon.