Cette page ne doit être appliquée que si le script vous demande de passer la migration manuelle code.20260416.WEB-SearchOnPagesComputeCounts
Dans le service de recherche classique, on n'arrive pas à afficher les compteurs des critères énumérés si les éléments retournées sont des pages. La liste ne contient que l'option "Tous", et les compteurs n'apparaissent pas.
Pour corriger ce bug, il faut modifier les endroits où le préfixe des facettes est écrit en dur dans les XSL. Jusqu'à aujourd'hui, on écrivait en dur ContentReturnable. Or à partir du CMS-12714, le préfixe peut contenir PageReturnable, plutôt que ContentReturnable. On ne peut donc pas connaitre le nom complet de la facette, il faut vérifier le début et la fin du nom.
Par exemple, dans le fichier criteria.xsl du service, on a remplacé :
<xsl:variable name="inputName"><xsl:value-of select="concat('user.input.facet.ContentReturnable$', ../../@definition)"></xsl:value-of></xsl:variable>
<xsl:variable name="count" select="/search/enumerated-criteria/criterion[@name = $inputName]/item[@value = $itemValue]/@count" />par :
<xsl:variable name="count" select="/search/enumerated-criteria/criterion[starts-with(@name, 'user.input.facet.') and stringutils:endsWith(@name, ../../@definition)]/item[@value = $itemValue]/@count" />
Avant, on calculait le nom de la facette en mettant en dur ContentReturable. Maintenant, on n'utilise plus la variable inputName, on cherche les critères dont le nom commence par user.input.facet. et termine par le nom de la définition. Peu importe si entre les 2 on a ContentReturnable ou PageReturnable.
Attention, le namespace stringutils doit bien être ajouté à la XSL :
xmlns:stringutils="org.apache.commons.lang.StringUtils"