Forum CMS Made Simple FR

Version complète : BABEL et la recherche
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

ninoaderri

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.7.x
#~ Nom de l'hébergeur : OVH
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.7.1
#~ Installed Modules:
#~ CMSMailer: 2.0
#~ FileManager: 1.0.2
#~ MenuManager: 1.6.3
#~ ModuleManager: 1.3.3
#~ nuSOAP: 1.0.1
#~ Printing: 1.0.4
#~ Search: 1.6.3
#~ ThemeManager: 1.1.1
#~ TinyMCE: 2.7.3
#~ babel: 0.3.4
#~ CGSimpleSmarty: 1.4.5
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ max_upload_size: 64000000
#~ default_upload_permission: 664
#~ assume_mod_rewrite: true
#~ page_extension: .html
#~ internal_pretty_urls: false
#~ use_hierarchy: true
#~ Php Information:
#~ phpversion: 5.2.13
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 128M
#~ max_execution_time: 30
#~ safe_mode: Off (Faux)
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ Server Information:
#~ Server Api: cgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.0.90
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~

Bonjour,

Ma question est la suivante : comme faire pour restreindre les résultats de la recherche (avec le module Search par exemple) à une section du site ? J'utilise en effet Babel pour un site multilingue et je voudrais que seuls les résultats dans la langue d'utilisation apparaissent (chaque langue ayant sa propre section sur le site). Merci beaucoup !
Je ne pense pas que ce soit réalisable.
Regarde plutôt du côté de l'api GoogleSearch.

Rems

Bonjour,
Si je puis me permettre une réponse très tardive...
J'ai le même besoin, avec les mêmes modules, Search et Babel.
Voici une solution très rapide pour afficher uniquement les résultats relatifs à la langue courante dans le cas ou vous respectez la recommandation Babel pour l'arborescence de site, par exemple :

1. en
1.1. 1st page
1.2. 2nd page
1.3. 3rd page
2. fr
2.1. Page 1
2.2. Page 3
2.3. Page 2

1/ ouvrir l'onglet "gabarit de résultat" dans le module "Recherche" du panneau des extensions
2/ dans la boucle foreach, faire autant de division que de langues présentes dans le site :
Code :
{if strpos($entry->url,"/fr/") and $page_lang == "fr_FR"}
{*traitement par défaut*}
{/if}
{if strpos($entry->url,"/en/") and $page_lang == "en_EN"}
{*traitement par défaut*}
{/if}
En fait, on profite simplement de la présence de la langue dans la chaîne de l'url renvoyée par le module pour restreindre l'affichage selon une double condition smarty contextuelle.
NB : pour très bien faire, il faudrait également ajouter des compteurs dans toutes les conditions. De cette façon, on pourra donner le nombre de résultats pertinents. Car sinon la variable $itemcount contient le nombre de résultats toutes langues confondues.