Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

recherche dans des fichiers PDF et autres
#1

Bonjour,

Alors voilà : j'utilise un script extérieur à CMSMS pour faire des recherches dans un dossier de fichiers PDF. Et ce script renvoie des résultats étranges en raison du codage UTF-8. Il préfère le ISO-8859-1. J'ai donc retiré la ligne :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
dans les paramètres globaux et je l'ai réintégrée dans le HEAD de mon gabarit général.
Puis, j'ai créé un gabarit spécifique pour la page de recherche avec dans le HEAD une ligne :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Le moteur renvoie toujours des résultats étranges. Et quand je passe ma page au validator, il indique un avertissement non moins étrange :
The character encoding specified in the HTTP header (utf-8) is different from the value in the <meta> element (iso-8859-1). I will use the value from the HTTP header (utf-8) for this validation.
J'en déduis que le codage UTF-8 demeure. Pourtant, UTF-8 est invisible dans la source de la page. Y'a un truc là non ?
Merci de vos lumières.

PS : l'idéal serait bien sûr que je me débarrasse de ce script et qu'un module CMSMS permette de faire des recherches dans des PDF, mais ça, j'ai pas.

JC
#2

Utilise http://www.cmsmadesimple.fr/forum/viewtopic.php?id=1375 pour la connexion à la bd. Laisse <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />.
Maintenant, faut voir ce qu'il y a dans ton script.
#3

Bonjour,
Oulà, ça m'a l'air bien costaud tout ça compte tenu de mes petits moyens.
Je vais tenter de voir ça dès aujourd'hui.
Merci beaucoup à toi.

JC
#4

Alors j'ai créé ta balise utilisateur et j'obtiens bien une table avec mes CONTENT.
Je vois pas bien comment utiliser cela avec mon problème de codage...

JC
#5

Le but n'est pas de créer une table content, mais de remplacer l'appel à la base de données de ton script par celui du post. Il faut, bien entendu, que ta bd soit intégrée dans le cms.
Grâce à ce code, tu récupéreras, je pense, tes datas dans un charset correct.
Tout dépend, bien sûr, du charset des tables et du code de traitement des datas de ton script.

Maintenant, qu'est-ce que tu veux exactement : une recherche à l'intérieur des pdf ou seulement un listing des fichiers contenus dans un répertoire ?
Pour le premier cas, je ne sais pas, pour le second, il y a un plugin qui devrait te convenir si tu ne te débrouilles pas trop en sql et en php : http://dev.cmsmadesimple.org/projects/list_downloads
#6

Merci Jean.
En fait, ce que je veux c'est un moteur de recherche capable d'indexer du PDF (nom de fichier + contenu texte). D'où mon recours au script de recherche. J'utilisais ce script depuis bien avant de passer à CMSMS et il fonctionnait vraiment bien, me permettant de créer des zones de recherche assez fines. C'est un produit marchand dont les sources sont cryptées et que je n'ai, de toutes façons, pas le droit de modifier.
#7

1° Tu demandes à ton support de modifier le script pour qu'il fonctionne correctement
2° Tu utilises l'api search de google. Tu as besoin d'une clé : http://code.google.com/intl/fr-FR/apis/a...h/key.html
Tu as un bac à sable ici : http://code.google.com/apis/ajax/playground/
La doc ici : http://code.google.com/intl/fr-FR/apis/a...ss_GSearch

Pour une recherche sur les documents pdf de zoomjeunes :
A placer dans les méta de la page
Code :
{literal}<script src="http://www.google.com/jsapi?key=taCle" type="text/javascript"></script>
    <script language="Javascript" type="text/javascript">
    //<![CDATA[

    google.load("search", "1");

    function OnLoad() {
      // Create a search control
      var searchControl = new google.search.SearchControl();

      // Add in a full set of searchers
      var siteSearch = new google.search.WebSearch();
      siteSearch.setSiteRestriction("www.zoomjeune.be");
      siteSearch.setQueryAddition("filetype:pdf");
      searchControl.addSearcher(siteSearch);
    
      // Tell the searcher to draw itself and tell it where to attach
      searchControl.draw(document.getElementById("searchcontrol"));

      // Execute an inital search
      searchControl.execute("concours");
    }
    google.setOnLoadCallback(OnLoad);

    //]]>
    </script>{/literal}
Et dans le content (ou le gabarit)
Code :
<div id="searchcontrol">Loading...</div>
#8

Voici ce que ça donne : http://www.zoomjeune.be/recherchepdf.html
Je t'ai mis une recherche initiale : concours
Tu as tous les outils qu'il faut pour styliser, etc. et c'est gratos Wink

Change ton titre en "recherche dans des fichiers PDF et autres" (oui, car ça marche pour .doc, .xls, les images, mp3, vidéos, etc.)
#9

Bonjour et pardon du retard,
J'ai déjà essayé ce service Google et je n'en suis pas satisfait. Le script que j'utilise a une bien meilleure indexation.
Merci en tous cas de ton aide !

JC
#10

Je propose de fermer cette discussion, close pour moi.
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)