Moteur de recherche qui cherche aussi dans les pages statiques

Bonjour,

Tout d'abord bravo et merci à tous ceux qui participent au développement de pluxml, le service rendu est considérable. 2 de mes sites sont propulsés par cette application et je ne connais pas à l'heure actuelle de meilleure solution, gratuite et simple à mettre en oeuvre, pour mettre en ligne du contenu simple (texte, images, documents).

Petite question, auquelle je n'ai point trouvé de réponse par la recherche sur le forum: y aurait-il un moyen d'avoir un moteur de recherche (type celui qu'on trouve dans le Wiki) qui cherche aussi dans les pages statiques, et non seulement dans les articles comme c'est le cas actuellement.

Je suis sous 4.3.1, sous theme-clean, 3 pages statiques qui contiennent l'ensemble de mon CV et un article "contact", dans la sidebar. Le site permettrait à des recruteurs de rechercher un ou plusieurs mot-clés sur l'ensemble du site. Je précise que mes pages statiques le sont uniquement pour avoir les liens dans la barre de menu en haut, mais que le contenu est du html pur et simple (pas de php).

Merci d'avance !
Rom

Réponses

  • romrom Member
    mars 2010 modifié
    Bonjour,

    Est-ce que quelqu'un a une idée ? Est-ce réalisable ?
    Merci de me dire si ma question n'a aucun sens, ne connaissant pas l'architecture ni les fonctionnalités du code de pluxml !! :rolleyes:

    En attendant, j'ai installé un moteur de recherche google, mais je préfère de loin le moteur proposé dans le Wiki (présentation simple et résultats dans la même page). De plus, n'est-ce pas plus logique d'avoir un moteur de recherche qui pioche directement dans le contenu (statique) du site, avec la syntaxe propre à pluxml, que d'être obligé d'indexer le moteur google à chaque modification ? ;)

    Merci d'avance !
    Rom
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour rom

    Oui c'est réalisable.
    En ce qui me concerne pour le moment le temps me manque pour traiter le sujet

    Stéphane

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • romrom Member
    Hello,

    Merci Stéphane. Patience alors... :)
    Espérons que ce développement sera inclus dans la prochaine version de pluxml !

    Bonne journée
    Rom
  • romrom Member
    Hello tout le monde.

    Des idées pour rechercher dans les pages statiques ?

    Merci :D
    rom
  • Bonjour,


    Je cherche aussi un moyen de le faire.

    Merci,

    Stanky. :)
  • Salut,

    je suis en train de tester plux et moi aussi j'aimerais bien savoir comment chercher aussi dans les pages statiques. Si certains trouvent dites le moi :)
  • C'est une ébauche (très, très rapide), mais cela devrait fonctionner.
    <?php
    # Page statique Pluxml : moteur de recherche
    # révision 1.0 par Stephane :
    #	- paramétrage du format de la date
    # révision 1.1 par Amaury :
    #   - Compatibilité PluXml 5.0
    # révision 1.2 par Amaury :
    #   - Fix : recherche des articles multi-catégorisés
    
    if(!defined('PLX_ROOT')) exit;
    
    # Renseignez ici le format de la date
    $format_date = '#num_day/#num_month/#num_year(4)';
    
    global $plxShow;
    
    if (!empty($_POST['searchfield'])) {
    
    	$plxGlob_arts = plxGlob::getInstance(PLX_ROOT.$plxShow->plxMotor->aConf['racine_articles']);
    	$aFiles = $plxGlob_arts->query('/[0-9]{4}.[home|0-9,]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/','search','rsort');
    
    	ob_start();
    	if(is_array($aFiles)) { # On a des fichiers
        
    		$searchword = strtolower(htmlspecialchars($_POST['searchfield']));
    		while(list($k,$v) = each($aFiles)) { # On parcourt tous les fichiers
    	
    			$art = $plxShow->plxMotor->parseArticle(PLX_ROOT.$plxShow->plxMotor->aConf['racine_articles'].$v);
    
    			$searchstring  = strtolower(addslashes($art['title'].$art['chapo'].$art['content'])); 
    		
    			if (strpos($searchstring,$searchword) !== false) {
    				$searchresults = true;
    				$art_num = intval($art['numero']);
    				$art_url = plxUtils::strCheck($art['url']);
    				$art_title = plxUtils::strCheck($art['title']);
    				$art_date = plxDate::dateIsoToHum($art['date'], $format_date);
    				echo '<li>'.$art_date.': <a href="'.$plxShow->plxMotor->aConf['racine'].'?article'.$art_num.'/'.$art_url.'">'.$art_title.'</a></li>'; 
    			}
    		}
    	}
    
    
    
    	$plxGlob_arts = plxGlob::getInstance(PLX_ROOT.$plxShow->plxMotor->aConf['racine_statiques']);
    	$aFiles = $plxGlob_arts->query('/[0-9]{3}.[a-z0-9-]+.php$/','search','rsort');
    
    	
    
    	if(is_array($aFiles)) { # On a des fichiers
        
    		$searchword = strtolower(htmlspecialchars($_POST['searchfield']));
    		while(list($k,$v) = each($aFiles)) { # On parcourt tous les fichiers
    
    			$searchstring  = strtolower(addslashes(file_get_contents(PLX_ROOT.$plxShow->plxMotor->aConf['racine_statiques'].$v))); 
    		
    			if (strpos($searchstring,$searchword) !== false) {
    				$searchresults = true;
    				$st_num = substr($v, 0, 3);
    				$st_title = substr($v, 4, -4);
    				echo '<li>'.$art_date.': <a href="'.$plxShow->plxMotor->aConf['racine'].'?static'.$st_num.'/'.$st_title.'">'.$st_title.'</a></li>'; 
    			}
    
    		}
    	}
    
    	$content = ob_get_clean(); 
    	if ($content!='')
    		echo '<p>Résultats de la recherche pour <strong>'.$searchword.'</strong>.<br /><ol class="search_results">'.$content.'</ol></p>';
    		else
    			echo '<p>Aucun résultat pour <strong>'.$searchword.'</strong></p>';
    
    
    }
    ?>
    
    <form method="post" id="searchform" action="<?php echo PLX_ROOT ?>?<?php $plxShow->get() ?>">
    <p class="searchform">
    	<input type="hidden" name="search" value="search"  />
    	<input type="text" class="searchfield" name="searchfield" value="Rechercher..." onblur="if(this.value=='') this.value='Rechercher...';" onfocus="if(this.value=='Rechercher...') this.value='';" /> 
    	<input type="submit" class="searchbutton" value="Go" />
    </p>
    </form>
    
  • romrom Member
    janvier 2011 modifié
    Bonsoir,

    Super Amoweb, cela fonctionne à merveille. Merci !!

    Rom
  • StéphaneStéphane Member, Former PluXml Project Manager
    Si la solution fonctionne, ça peut eter bien de lister le code dans le wiki pour ne pas le perdre. Si quelqu'un a le temps de prendre ça en charge. merci d'avance

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • voir de l'intégrer (fonction rechercher()..) dans une class officielle ?
  • LaurentLaurent Member
    janvier 2011 modifié
    Testé plusieurs fois et ça marche nickel

    C'est mis à jour dans le wiki est passé en version 1.3 crédité à amoweb

    Edit : ca trouve pas tous les mots avec accents, certains oui d'autre non, ou avec caractère spéciaux du style "m'occupe" mais ça bug pas donc c'est stable et mieux qu'avant pour 90% des mots sur les pages statiques

    Edit 2 : ça cherche aussi dans les pages statiques non publiées (j'en utilise une pour intégrer mes balises méta), du coup ça fait une 404 si on clique sur le lien de la page, je vais peut etre revoir ma solution de méta :D


    Edit 3 (ouais je sais je suis actif mais j'ai mes raisons :p) :

    Le résultat est différent pour les liens d'article ou statique, l'un à une majuscule au début du mot et l'autre non.
    21/12/2010: A-propos
    21/12/2010: accueil
    Du coup j'ai modifié le code à un endroit :
    echo '<li>'.$art_date.': <a href="'.$plxShow->plxMotor->aConf['racine'].'?static'.$st_num.'/'.$st_title.'">'.$st_title.'</a></li>';
    
    devient

    echo '<li>'.$art_date.': <a href="'.$plxShow->plxMotor->aConf['racine'].'?static'.$st_num.'/'.$st_title.'">'.ucwords ($st_title).'</a></li>';
    
    Du coup avec ucwords, le texte du lien est du type :
    21/12/2010: A-propos
    21/12/2010: Accueil
    Je trouve ça plus raccord.
  • Super merci Laurent !
  • mpiguxmpigux Member
    avril 2011 modifié
    Bonjour,
    J'utilise depuis un certain temps et vous remercie tous pour ce super CMS. Etant relativement limité au niveau programmation je suis confronté à un problème avec le moteur de recherche du wiki.
    Mon souci est que je souhaiterais depuis un autre site faire un lien qui effectue une recherche sur mon pluxml.
    Pour avoir quelque chose du style :
    http://monsite .com/index.php?static6/recherche='valeur cherché'

    Si quelqu'un à la solution...
  • avril 2011 modifié
    bonjour,

    le formulaire fonctionne avec la methode "POST" et non " GET".
    Il te faut reprendre le script avec un test sur $_GET ou lancé la recherche depuis un formulaire du genre:
    <form method="post" id="searchform" action="http://monsite .com/index.php?static6/recherche" role="search">
    <p class="searchform">
    	<input name="search" value="search" type="hidden">
    	<input class="searchfield" name="searchfield" value="Rechercher..." onblur="if(this.value=='') this.value='Rechercher...';" onfocus="if(this.value=='Rechercher...') this.value='';" type="text"> 
    	<input class="searchbutton" value="Go" type="submit">
    </p>
    </form>
    
    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Merci beaucoup gcyrillus-nomade,

    Impeccable
  • Hi,

    Merci ça fonctionne pour moi.

    Cdt
  • Ce moteur de recherche est nickel pour moi, mais je me demandais si dans les résultats, ce ne serait pas possible d'afficher le titre de l'article ou de la page statique plutôt que son URL.

    Merci.
  • bonjour,

    petite remarque pour les utilisateurs de ce moteur de recherche.

    La recherche sur les pages statiques s'effectue sur le contenu du fichier de cette page (html/ script et commentaire php, etc ..) et non pas sur ce que la page et les scripts peuvent afficher dans le navigateur.

    La recherche via google ou autre est peut-être plus adéquate dans certains cas.

    cordialement,
    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Connectez-vous ou Inscrivez-vous pour répondre.