Cette page ne doit être appliquée que si le script de migration assistée vous demande de passer la migration manuelle skin.20230314.INTRANETSEARCH.searchservice
Le service de recherche global a été refondu dans la version 1.4.0 de la charte Intranet Search.
Une migration des données est nécessaire, ainsi qu'une potentielle migration graphique.
Pour le service de recherche sur les types de contenus "Documents PDF" avec la vue "Kiosque", la nouvelle vue "Magasine" (pdfDocument-kiosk.xsl) doit être utilisée pour les contenus.
Pour le service de recherche sur les types de contenus "Petites annonces" avec la vue "Petites annonces", la nouvelle vue "A la une" (ads-card.xsl) doit être utilisée pour les contenus.
Le service de recherche général quant à lui, comporte désormais 2 vues possibles:
C'est la 2e vue qui doit être choisie pour garder le comportement de la version 1.3.0 ou inférieure sur la pagination.
Vous pouvez exécuter le script suivant pour mettre à jour vos services existants (attention à personnaliser le nom de votre site):
const siteName = "intranet-search"; // A PERSONNALISER
let searchServiceToUpdate = [
{
"id": "org.ametys.web.service.SearchService",
"xslt": "pages/services/search/search-default.xsl",
"params": {
"xslt": "pages/services/search/search-more-results.xsl"
}
},
{
"id": "org.ametys.web.service.SearchService",
"xslt": "pages/services/search/search-kiosque.xsl",
"params": {"contentView": "kiosk"}
},
{
"id": "org.ametys.web.service.SearchService",
"xslt": "pages/services/search/search-ads.xsl",
"params": {"contentView": "card"}
}
]
updateServices(Repository.session, siteName, searchServiceToUpdate);
updateServices(Repository.liveSession, siteName, searchServiceToUpdate);
function updateServices(s, siteName, toUpdateServices)
{
let count=0;
for (var i=0; i < toUpdateServices.length; i++)
{
let serviceId = toUpdateServices[i].id;
let xslt = toUpdateServices[i].xslt;
let query = "//element(" + siteName + ", ametys:site)//element(*, ametys:zoneItem)[@ametys-internal:service='" + serviceId + "'" + (xslt ? " and ametys:service_parameters/@ametys:xslt = '" + xslt + "'" : "") + "]";
Repository.query(query, true, s).forEach(function(zoneItem) {
try
{
let params = toUpdateServices[i].params || {};
let serviceParams = zoneItem.getServiceParameters();
for (var paramName in params)
{
Repository.helper.setModelAwareValue(serviceParams, paramName, params[paramName]);
}
count++;
}
catch(e)
{
Ametys.console.error(`Fail to update service ${serviceId} with view ${params.xslt || xslt} for zone item ${zoneItem.getNode().getPath()} for site ${siteName}\n` + e);
}
});
}
s.save();
Ametys.console.info(`${count} services have been updated for site ${siteName} in workspace ${s.getWorkspace().getName()}`);
}Le champ de recherche général (disponible sur la page d'accueil et le bandeau des pages intérieure) est désormais basé sur le critère "Titre ou texte intégral" au lieu de "Texte intégral".
Si ce n'est pas déjà le cas, le moteur de recherche principal (page étiquetée "Page de recherche), doit donc être configurée avec comme 1er critère "Titre ou texte intégral"
Toute surcharge de la charte pour utiliser "Titre ou texte intégral" au lieu de "Texte intégral" dans les champs de recherche, peut être supprimée.
La vue "Résumé" de ces types de contenus est maintenant réservé au rendu des résultats de recherche.
Si la vue "abstract" de ces types de contenus a été surchargée, elle doit être déplacée sur les nouvelles vues "Magasine" (pdfDocument-kiosk.xsl) et "A la Une" (ads-card.xsl)
Par exemple, si votre charte contient une surcharge stylesheets/content/pdfDocument/pdfDocument-abstract.xsl :