Pas un bug mais une amélioration dans la recherche
J'étais entrain de tester le moteur de recherche trouvé à cette adresse : http://wiki.pluxml.org/index.php?page=Ajouter+un+moteur+de+recherche+dans+une+page+statique
Et j'ai constaté qu'il affichait les articles qui sont planifiés. J'ai ajouté cette vérification.
Je ne suis pas un programmeur donc il est fort probable que ma méthode ne soit pas très "propre".
Chritchan
Et j'ai constaté qu'il affichait les articles qui sont planifiés. J'ai ajouté cette vérification.
Je ne suis pas un programmeur donc il est fort probable que ma méthode ne soit pas très "propre".
<?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]{5}.[home|0-9,]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/','search','rsort');
// Date du jour
$maintenant = date('d/m/Y');
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']));
$art_date = plxDate::formatDate($art['date'], $format_date);
if ((strpos($searchstring,$searchword) !== false) && ($maintenant > $art_date)) {
$searchresults = true;
$art_num = intval($art['numero']);
$art_url = plxUtils::strCheck($art['url']);
$art_chapo = plxUtils::strCheck($art['chapo']);
$art_title = plxUtils::strCheck($art['title']);
echo '<li>'.$art_date.': <a href="'.$plxMotor->urlRewrite("?article".$art_num."/".$art_url).'">'.$art['chapo'].'</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 and intval(substr($v, 0, 3)) != ID_DE_LA_PAGE_STATIQUE) {
$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 '<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>';
}
?>
Bien à vous,Chritchan
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et en remplaçant les lignes suivantes
par
ça fonctionnerait pas ?
Consultant PluXml
Ancien responsable du projet (2010 à 2018)