Cette fonctionnalité est disponible à partir de la version 4.5
La détection de doublons permet de vérifier si deux contenus sont identiques (doublons) ou quasiment-identiques (quasi-doublons).
Deux contenus sont considérés doublons si les attributs présents dans une liste configurée sont identiques.
Deux contenus sont considérés comme des quasi-doublons si les attributs de type texte présents dans une liste configurée sont tous identiques à deux caractères près (par exemple, "toto" et "tata" seront considérés comme assez proches pour être quasi-doublons).
La détection de doublons peut s'effectuer soit :
La détection de doublons se configure dans un fichier XML nommé duplicate-contents.xml, qui doit être présent dans le répertoire WEB-INF/param. Par défaut, il n'y a aucune configuration de doublons.
Ce fichier liste les contenus à vérifier ainsi que la liste des attributs à vérifier.
La syntaxe du fichier XML est la suivante :
<duplicates> <content-type id="org.ametys.web.default.Content.article"> <attribute path="title" strict="true" /> <attribute path="comment"/> </content-type> </duplicates>
Les types de contenus à vérifier pour la détection de doublons sont listés dans :
Chaque balise <content-type> contient la liste des attributs à vérifier via :
Les types d'attributs suivants ne sont pas supportés par la détection de doublons : geocode, reference, user
Il n'est pas possible d'indiquer un repeater ou un composite dans son intégralité. Il est cependant possible de cibler un attribut en particulier du repeater ou composite, avec la syntaxe suivante : repeater/attribut1 ou composite/attribut1
La recherche des quasi-doublons ne s'applique que sur les champs de type String.
Tous les workflows fournis par Ametys possèdent déjà la configuration requise pour la détection de doublons.
Si vous utilisez un workflow personnalisé, la détection de doublon se fait dans les post fonctions d'édition extensibles (en général placés à la création et modification) :
<function type="avalon"> <arg name="role">org.ametys.cms.workflow.extensions.ExtensibleFunction</arg> <arg name="extension-point">org.ametys.cms.workflow.extensions.PostContentEditionFunctionsExtensionPoint</arg> </function>
A la sauvegarde d'un contenu dont le type est listé dans le fichier de configuration duplicate-contents.xml, une recherche de doublons et quasi-doublons est effectuée.
Si des doublons ou quasi-doublons sont trouvés, une fenêtre de ce type est affichée, avec un lien permettant d'ouvrir les contenus en doublon :
Une nouvelle entrée "Détection de doublons" est disponible dans les tâches planifiées de l'outil d'administration :
Cette tâche lance la détection des doublons, et analyse les contenus dont le type est listé dans le fichier de configuration duplicate-contents.xml.
Un rapport est envoyé par mail, avec des liens permettant d'ouvrir les contenus en doublons.
Extrait :