Question
Comment cacher les formulaires de ticket en fonction de l’organisation d’un utilisateur ?
Réponse
Dégagement de responsabilité : Cet article est fourni à titre informatif uniquement. Zendesk ne fournit pas l’assistance pour le code et ne le garantit pas. Zendesk ne peut pas non plus fournir l’assistance pour les technologies tierces comme JavaScript, jQuery ou CSS. Si vous rencontrez des problèmes, publiez-en la description dans la section des commentaires ou essayez de trouver une solution en ligne.
Pour cacher des formulaires de ticket spécifiques en fonction du nom de l’organisation de l’utilisateur, procédez comme suit :
Remarque : Si votre thème utilise Guide Templating V2, jQuery doit être importé. Pour en savoir plus, consultez l’article : Importation ou mise à niveau de jQuery.
Étape 1 : Recherchez l’identifiant du formulaire de ticket
- Accédez au Centre d’administration, puis à la page des formulaires de ticket, et sélectionnez le formulaire de ticket approprié.
- L’identifiant du formulaire se trouve dans l’URL, après la dernière barre oblique.
Étape 2 : Recherchez le nom de l’organisation
- Accédez au Centre d'administration, puis à Utilisateurs.
- Parcourez les organisations ou recherchez l’organisation par son nom.
Étape 3 : Modifiez le code JavaScript
Remarque : si l'utilisateur ne copie pas tous les caractères comme ; et } dans le modèle, le code ne fonctionnera pas comme prévu et risque d'empêcher l'utilisateur d'accéder à la liste déroulante des profils d'utilisateur et de voir des éléments comme le bouton Mes activités et le bouton de déconnexion.
- Dans Guide, cliquez sur l’icône du Panneau de personnalisation () dans la barre latérale.
- Cliquez sur le thème à modifier pour l’ouvrir.
- Cliquez sur le menu des options et sélectionnez Modifier le code, puis Script.js.
- Copiez le bloc de code ci-dessous.
$(document).ready(function() { var formID = 6502769669773; // Change this to the form ID you wish to remove var userOrgs = window.HelpCenter.user.organizations; var userOrgNames = userOrgs.map(org => org.name); if (!(userOrgNames.includes("ZENDESK"))) { // Specify the organization name here // If the user does not belong to the organization specified, remove the form option from the dropdown $('#request_issue_type_select option[value="' + formID + '"]').remove(); $('.nesty-panel').on('DOMNodeInserted', function(e) { $(this).children('ul').children().remove('#' + formID); }); } });
- Remplacez la variable
formID = 6502769669773
par l’ID du formulaire de ticket que vous souhaitez masquer. - Remplacez
"ZENDESK"
par le nom de l’organisation pour laquelle vous voulez que le formulaire de ticket soit visible. - Collez le code dans le modèle JavaScript du code de votre Centre d’aide.
- Enregistrez votre modèle et publiez les modifications.
Le code fourni réserve un espace pour d’autres organisations. Pour ajouter des formulaires et des organisations supplémentaires, copiez la déclaration if ci-dessus et placez-la sous la déclaration if existante ci-dessous en vous assurant d’insérer l’identifiant du formulaire de ticket et l’organisation pour vérifier l’existence de l’utilisateur. Répétez cette procédure pour le nombre de formulaires de ticket et d’organisations souhaité.
Remarque : si vous souhaitez modifier le comportement du code afin d’afficher un formulaire de ticket dans toutes les organisations à l’exception de celle spécifiée, supprimez l’opérateur NOT
(!)
à partir de l’instruction if.
for (var c in HelpCenter.user.organizations) {
if (HelpCenter.user.organizations[c].name !== "ZENDESK"){
$("#TICKT_FORM_ID").remove();
}if (HelpCenter.user.organizations[c].name !== "MYORG"){
$("#TICKET_FORM_ID2").remove();
}
Remarque : ce workflow ne fonctionne pas pour les utilisateurs non authentifiés ou n’ayant pas d’organisation. Pour ces utilisateurs, tous les formulaires s’affichent.