[9.2.0.dev] module search, petites corrections

This commit is contained in:
fredtempez 2019-07-04 12:37:36 +02:00
parent 0868fe52f2
commit f0a7765d05
3 changed files with 32 additions and 34 deletions

View File

@ -10,6 +10,9 @@
* @copyright Copyright (C) 2008-2018, Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean
* @license GNU General Public License, version 3 * @license GNU General Public License, version 3
* @link http://zwiicms.com/ * @link http://zwiicms.com/
*
* Module search
* Produit par la communauté à partit d'un développement de Sylvain Lelièvre
*/ */
// Module de recherche d'un mot ou d'une phrase clef // Module de recherche d'un mot ou d'une phrase clef
@ -95,17 +98,17 @@ class search extends common {
} }
// Message de synthèse de la recherche // Message de synthèse de la recherche
if ($this->getData(['search',$total])===0) { if ($this->getData(['search',$total])===0) {
$notification = 'Mot clef non trouvé, avez-vous pensé aux accents ?'; $notification = 'Mot clef non trouvé. Avez-vous pensé aux accents ?';
$result .='Mot clef non trouvé, avez-vous pensé aux accents ?'; $result .='Mot clef non trouvé. Avez-vous pensé aux accents ?';
$success = false; $success = false;
} else { } else {
$result .= 'Nombre total d\'occurrences : '.$this->getData(['search',$total]); $result .= 'Nombre d\'occurrences : '.$this->getData(['search',$total]);
$notification = 'Nombre total d\'occurrences : '.$this->getData(['search',$total]); $notification = 'Nombre d\'occurrences : '.$this->getData(['search',$total]);
$success = true; $success = true;
} }
} else { } else {
$notification = 'Trop court ! minimum 3 caractères'; $notification = 'Trop court ! Minimum 3 caractères';
$result = 'Trop court ! minimum 3 caractères'; $result = 'Trop court ! Minimum 3 caractères';
$success = false; $success = false;
} }
@ -142,23 +145,16 @@ class search extends common {
$total = ''; $total = '';
$resultat= ''; $resultat= '';
// Recherche des occurrences // Recherche des occurrences
do do {
{
$occu = stristr($contenu,$motclef); $occu = stristr($contenu,$motclef);
if ($occu !== false) if ($occu !== false) {
{ if ($motentier === true) {
if ($motentier === true)
{
$controle_entier=$this->test_motentier($contenu,$motclef); $controle_entier=$this->test_motentier($contenu,$motclef);
} } else {
else
{
$controle_entier=true; $controle_entier=true;
} }
if ($controle_entier) if ($controle_entier) {
{ if ($titre !== $dejavu) {
if ($titre !== $dejavu)
{
$resultat = '<p><br/>Mot clef trouv&eacute; dans la page : <a href="./?'.$url.'" target="_blank" rel="noopener">'.$titre.'</a><br/></p>'; $resultat = '<p><br/>Mot clef trouv&eacute; dans la page : <a href="./?'.$url.'" target="_blank" rel="noopener">'.$titre.'</a><br/></p>';
} }
$dejavu = $titre; $dejavu = $titre;
@ -181,11 +177,9 @@ class search extends common {
// Retourne $contenu nettoyée, le résultat est sensiblement différent de celui obtenu avec la fonction strip_tags() // Retourne $contenu nettoyée, le résultat est sensiblement différent de celui obtenu avec la fonction strip_tags()
private function nettoyer_html($contenu) private function nettoyer_html($contenu)
{ {
do do {
{
$pos1=strpos($contenu,chr(60)); $pos1=strpos($contenu,chr(60));
if($pos1!==false) if($pos1!==false) {
{
$pos2=strpos($contenu,chr(62)); $pos2=strpos($contenu,chr(62));
if($pos2!==false) $contenu=substr_replace($contenu," ",$pos1,($pos2 - $pos1 + 1)); if($pos2!==false) $contenu=substr_replace($contenu," ",$pos1,($pos2 - $pos1 + 1));
} }
@ -204,10 +198,12 @@ class search extends common {
$avant=ord(substr($chaine,$pos1-1, 1)); $avant=ord(substr($chaine,$pos1-1, 1));
$apres=ord(substr($chaine,$pos1+strlen($clef),1)); $apres=ord(substr($chaine,$pos1+strlen($clef),1));
// Traitement pour le caractère qui précède et celui qui suit // Traitement pour le caractère qui précède et celui qui suit
if (($avant>=65 && $avant<=90) || ($avant>=97 && $avant<=122) || ($apres>=65 && $apres<=90) || ($apres>=97 && $apres<=122) ) if (($avant>=65 && $avant<=90) ||
{ ($avant>=97 && $avant<=122) ||
$resultat=false; ($apres>=65 && $apres<=90) ||
($apres>=97 && $apres<=122) ) {
$resultat=false;
} }
return $resultat; return $resultat;
} }
} }

View File

@ -19,8 +19,7 @@
</div> </div>
<div class="row"> <div class="row">
<?php echo template::checkbox('searchMotentier', true, 'Mot entier uniquement', [ <?php echo template::checkbox('searchMotentier', true, 'Mot entier uniquement', [
'value' =>'1', 'checked' => false
'help' => 'Cette option permet de faire une recherche sur un mot entier plutôt que sur une portion de mot.'
]); ?> ]); ?>
</div> </div>
</div> </div>

View File

@ -7,7 +7,7 @@
<div class="col10 verticalAlignBottom"> <div class="col10 verticalAlignBottom">
<?php echo template::text('searchMotphraseclef', [ <?php echo template::text('searchMotphraseclef', [
'label' => 'Mot ou phrase clef', 'label' => 'Mot ou phrase clef',
'value' => $_POST['searchMotphraseclef'], 'value' => isset($_POST['searchMotphraseclef']) === true ? $_POST['searchMotphraseclef'] : '',
'help' => 'Saisir un mot ou une phrase complète sans guillemets, n\'oubliez pas les accents.' 'help' => 'Saisir un mot ou une phrase complète sans guillemets, n\'oubliez pas les accents.'
]); ?> ]); ?>
</div> </div>
@ -19,16 +19,19 @@
</div> </div>
<div class="row"> <div class="row">
<?php echo template::checkbox('searchMotentier', true, 'Mot entier uniquement', [ <?php echo template::checkbox('searchMotentier', true, 'Mot entier uniquement', [
'value' =>'1', 'checked' => isset($_POST['searchMotentier']) === true ? $_POST['searchMotentier'] : ''
'help' => 'Cette option permet de faire une recherche sur un mot entier plutôt que sur une portion de mot.'
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
<div class="col12"> <div class="col12">
<div class="block"> <div class="block">
<h4>Résulats</h4> <h4>Résultat(s)</h4>
<?php echo $_POST['result']; ?> <?php if (isset($_POST['result'])) {
echo $_POST['result'];
} else {
echo "Rien à afficher";
} ?>
</div> </div>
</div> </div>
</div> </div>