Recherche restreinte à un site
Bonjour,
Comment configurer une restriction des résultats de recherche aux seules données de ce site ?
A relier à une propriété type case à cocher dans l’usine à site.
Possibilité de choix des sites distants remontants au niveau de chaque site ?
Recherche restreinte à un site
Bonjour,
Il est possible de restreindre une recherche aux données d'un site (ou multi-diffusées dans un site) en ajoutant à la requête la liste des codes rubriques du site voulu.
Ci dessous un exemple :
//Récupération des codes rubriques enfant du site courant.
//Cette liste est utilisée pour filtrer les fiches lors des différentes recherches.
ServiceRubrique serviceRubrique = ServiceManager.getServiceForBean(RubriqueBean.class);
List<RubriqueBean> listeRubriqueEnfant = serviceRubrique.getAllChilds(_ctx.getInfosSite().getCodeRubrique());
List<String> listeCodeRubriquePublication = new ArrayList<>();
listeCodeRubriquePublication.add(_ctx.getInfosSite().getCodeRubrique());
for(RubriqueBean rubriqueBean:listeRubriqueEnfant){
listeCodeRubriquePublication.add(rubriqueBean.getCode());
}
Si vous voulez filtrer sur un autre site, il faut alors rechercher les rubriques enfants à partir de la rubrique de tête du site souhaité.
Cette liste de rubrique peut ensuite être passée à la requête de recherche en filtrant à deux niveaux :
- sur le code rubrique de la fiche
- sur la table RUBRIQUEPUBLICATION dans le cas où les données sont multi-publiées
select * from Fiche T1
LEFT JOIN RUBRIQUEPUBLICATION T2 ON T1.CODE = T2.CODE_FICHE_ORIG
WHERE ( T1.CODE_RUBRIQUE IN ( listeCodeRubrique ) OR ( T2.RUBRIQUE_DEST IN ( listeCodeRubrique ) AND T2.LANGUE_FICHE_ORIG = langue ) ) AND T1.ETAT_OBJET = '0003'
Cordialement,
Camille
Recherche restreinte à un site
Bonjour,
il est de plus possible de restreindre la recherche front-office en surchargeant la JSP recherche_simple.jsp.
Dans cette JSP deux champs permettent d'exécuter la recherche en ne remontant que les données d'un site passé en paramètre :
Tout d'abord il faut passer au paramètre CODE_RUBRIQUE le code rubrique du site souhaité :
<input type="hidden" name="CODE_RUBRIQUE" value="<%=rubriqueSite.getCode()%>"
Puis passer "true" au paramètre SEARCH_SOUSRUBRIQUES pour chercher sur toutes les sous-rubriques du site.
<input type="hidden" name="SEARCH_SOUSRUBRIQUES" value="true" />
Cordialement,
Camille Lebugle