Fonction recherche (montre les pages statiques inactives)

k610ik610i Member
janvier 2012 modifié dans Bogues
Bonjour,


Tuto officiel
J'ai rajouté sur mon site la fonction recherche.


Je me rends compte qu'il trouve les pages statiques inactives (et aussi celles effacées) (suffit de recherche une lettre et en général il balance tout !).


Comment cela doit-il être amélioré pour que cela ne prenne pas en compte ces pages ?

Merk6.

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    Peux-tu indiquer le code que tu utilises pour ta fonction de recherche stp ?
    Merci

    Consultant PluXml

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

  • je ne pense pas l'avoir modifié :
    <?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
    # révision 1.3 par Amoweb :
    #   - Recherche dans les pages statiques
    #   - Minifix par Laurent, casse liens
    
    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.'">'.ucwords ($st_title).'</a></li>'; 
                }
    
            }
        }
    
        $content = ob_get_clean(); 
        if ($content!='')
            echo '<h6>Résultats de la recherche</h6><p>Pour "<strong>'.$searchword.'</strong>" :<br /><br /><ol class="search_results">'.$content.'</ol></p>';
            else
                echo '<p>Aucun résultat pour <strong>'.$searchword.'</strong></p>';
    }
    ?>
    
  • StéphaneStéphane Member, Former PluXml Project Manager
    ok merci.
    je te fais un plugin.
    dispo dans la semaine.
    j'ai fini de le coder, me reste à faire les tests.
    nb: le code du wiki n'est plus du tout optimisé: à laisser tomber donc

    Consultant PluXml

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

  • Merci :)
Connectez-vous ou Inscrivez-vous pour répondre.