diff --git a/core/module/search/search.php b/core/module/search/search.php deleted file mode 100644 index ce10798d..00000000 --- a/core/module/search/search.php +++ /dev/null @@ -1,152 +0,0 @@ - self::GROUP_VISITOR, - ]; - -// Liste de fonctions correspondant aux vues - - public function index() { - if($this->isPost()) { - // Récupération de l'ensemble des données d'un site ZWII - // Lire le fichier core.json si il existe - // Traitement du formulaire - $success = true; - $result = ''; - if(file_exists ('./site/data/core.json')) { - $json_source = file_get_contents('./site/data/core.json'); - - // Décoder le JSON en un array - $array = json_decode($json_source,true); - - // Récupération du mot clef passé par le formulaire de ...view/index.php, avec caractères accentués - $motclef=$this->getInput('searchMotphraseclef'); - - $result = '

Recherche avec le mot clef : '.$motclef.'

'; - if ($motclef !== "" && strlen($motclef) > 2) { - $dejavu = ''; - $nboccutotal = 0; - foreach ($array as $key1 => $value1) { - // Déterminer le chemin de tous les contenus (content) dans page ou module - if (($key1 ==='page' || $key1 ==='module') && is_array($value1) ) - { - foreach ($value1 as $key2 => $value2) - { - if (is_array($value2)) - { - foreach ($value2 as $key3 => $value3) { - if ($key3 === "content" && is_string($value3)) { - // compte le nombre d'occurrences dans la page - $nboccu=0; - // le contenu à explorer est dans $value3, le nom de la page est $key2 - //Nettoyage de $value3 : on enlève tout ce qui est inclus entre < et > - $value3=$this->nettoyer_html($value3); - //accentuation - $value3=html_entity_decode($value3); - // Recherche et affichage des occurrences - do { - $occu = stristr($value3,$motclef); - if ($occu != '') { - if ($key2!=$dejavu) { - $result .= '


Mot clef trouvé dans la page : '.$key2.'

'; - } - $dejavu=$key2; - $nboccu++; - //Affichage d'un extrait de $value3 - $result .= '

'.$nboccu.' - "...'.substr($occu,0,200).'..."

'; - //pour recherche d'une autre occurence dans le même contenu - $value3=substr($occu,100); - } - } while($occu != ''); - $dejavu = ''; - $nboccutotal = $nboccutotal + $nboccu; - $nboccu = 0; - } elseif ($key1 == "module" && is_array($value3)) { - foreach ($value3 as $key4 => $value4) { - if ($key4 == "content" && is_string($value4) ) { - $nboccu = 0; - // le contenu à explorer est dans $value4, le nom du module/page est $key2/$key3 - //Nettoyage de $value4 : on enlève tout ce qui est inclus entre < et > - $value4 = $this->nettoyer_html($value4); - //accentuation - $value4 = html_entity_decode($value4); - // Recherche et affichage des occurrences - do { - $occu = stristr($value4,$motclef); - if ($occu != '') { - if ($key3 != $dejavu) { - $result .= '


Mot clef trouvé dans la page : '.$key2.'/'.$key3.'

'; - } - $dejavu = $key3; - $nboccu++; - $result .= '

'.$nboccu.' - "...'.substr($occu,0,200).'..."

'; - } - //pour recherche d'une autre occurrence dans le même contenu - $value4 = substr($occu,100); - } while($occu != ''); - $dejavu = ''; - $nboccutotal = $nboccutotal + $nboccu; - $nboccu = 0; - } - } - } - } - } - } - } - } - if ($nboccutotal==0) { - $notification = '


Mot clef non trouvé, avez-vous pensé aux accents ?

'; - $success = false; - } else { - $result .= '


Nombre total d\'occurrences : '.$nboccutotal.'

'; - $notification = 'Nombre total d\'occurrences : '.$nboccutotal; - $success = true; - } - } else { - $notification = 'Trop court ! minimum 3 caractères'; - $result = '


Trop court ! minimum 3 caractères

'; - $success = false; - } - - } else { - $notification = 'Fichier core.json introuvable'; - $success = false; - } - $_POST['result'] = $result; - $_POST['occurence'] = $nboccutotal; - // Valeurs en sortie, affichage du résultat - $this->addOutput([ - 'title' => 'Rechercher dans le site', - 'view' => 'result', - 'notification' => $notification, - 'state' => $success - ]); - } else { - // Valeurs en sortie, affichage du formulaire - $this->addOutput([ - 'title' => 'Rechercher dans le site', - 'view' => 'index' - ]); - } - } - - /* Déclaration de la fonction nettoyer(string $contenu) : string - * Supprime de $contenu les caractères placés entre < et >, donc les balises html comme


etc... - * Retourne $contenu nettoyée, le résultat est sensiblement différent de celui obtenu avec la fonction strip_tags() - */ - private function nettoyer_html($contenu){ - do { - $pos1=strpos($contenu,chr(60)); - if($pos1!==false) { - $pos2=strpos($contenu,chr(62)); - if($pos2!==false) $contenu=substr_replace($contenu," ",$pos1,($pos2 - $pos1 + 1)); - } - } while($pos1!==false); - return $contenu; - } - -} -?>