Aller au contenu
Support de Zwii et Yocto

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'recherche'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Support de Zwii
    • Informations et nouveautés
    • Versions en cours de développement
    • Ateliers de développement des membres
    • Un bug découvert ?
    • Questions sur l'installation et l'utilisation
    • Trucs et astuces
    • Support des téléchargements
    • Liens
  • Support de Yocto
    • Informations et nouveautés
    • Bugs, questions, suggestions et astuces
    • Support des téléchargements
    • Liens
  • Communauté
    • Votre site

Catégories

  • Zwii
    • Versions bêta
    • Modules
    • Modifications et astuces
    • Thèmes
    • Tutoriels
  • Yocto
    • Types de page
    • Snippets pour le type "code source"

Rechercher les résultats dans…

Rechercher les résultats qui contiennent…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


À propos de moi


Site internet

1 résultat trouvé

  1. Bonjour, Voici un module de recherche qui exploite le fichier data.json d'un site ZWII (testé sous 8.5.9) pour chercher des occurences dans toutes les pages du site. Il est constitué d'un seul fichier php et agrémenté d'une image de fond pour le rendu. Plus de détails dans l'entête du fichier recherche.php Vous aurez un aperçu du rendu en allant sur la page d'accueil du site https://www.halteauxmareesvertes.org (bas de page) <!-- Recherche des pages contenant un mot ou une phrase clef à partir du fichier data.json Une portion du texte contenant le mot ou la phrase clef est affichée pour chaque occurence rencontrée Le nombre d'occurence dans une page est indiqué. Dans le mot ou la phrase clef la casse est indifférente, les accents sont pris en compte. Testé avec ZWII 8.5.9 Sont à regrouper dans un dossier ce fichier recherche.php, loupe.jpg, data.json (une copie de votre data.json) et un .htaccess Un formulaire POST placé dans une des pages ZWII pointe sur ce fichier <form action="/....../recherche.php" method="post">Recherche : <input name="motclef" size="10" type="text" /> <input type="submit" value="valider" /></form> --> <head> <title>Recherche</title> <link rel="stylesheet" href="/site/data/theme.css"> <link rel="stylesheet" href="/site/data/custom.css"> </head> <body style="background-image:url(loupe.jpg);"> <?php //Déclaration de la fonction nettoyer(string $contenu) : string //Supprime de $contenu les caractères placés entre < et >, donc les balises html comme <p> <br/> etc... //Retourne $contenu nettoyée 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; } // Récupération de l'ensemble des données d'un site ZWII 8.x.x // On utilise une copie du fichier data.json, manuelle car avec .htaccess impossible d'utiliser copy // Lire le fichier json $json_source = file_get_contents('data.json'); // Décoder le JSON en un array $array = json_decode($json_source,true); // Récupération du mot clef passé par form avec caractères accentués $motclef=$_POST['motclef']; echo '<h1>R&eacute;sultats de la recherche avec le mot clef : '.$motclef.'<br/></h1>'; if ($motclef!="" && strlen($motclef)>2) { 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'occurences 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=nettoyer_html($value3); //accentuation $value3=html_entity_decode($value3); // Recherche et affichage des occurences do { $occu = stristr($value3,$motclef); if ($occu!="") { if ($key2!=$dejavu) echo '<p><br/>Mot clef trouv&eacute; dans la page : <a href="/?'.$key2.'">'.$key2.'</a><br/></p>'; $dejavu=$key2; $nboccu++; //Affichage d'un extrait de $value3 echo '<p>'.$nboccu.' - "...<em>'.substr($occu,0,200).'</em>..."<br/></p>'; //pour recherche d'une autre occurence dans le même contenu $value3=substr($occu,100); } } while($occu!=""); $dejavu=""; $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=nettoyer_html($value4); //accentuation $value4=html_entity_decode($value4); // Recherche et affichage des occurences do { $occu = stristr($value4,$motclef); if ($occu!="") { if ($key3!=$dejavu) echo '<p><br/>Mot clef trouv&eacute; dans la page : <a href="/?'.$key2.'/'.$key3.'">'.$key2.'/'.$key3.'</a><br/></p>'; $dejavu=$key3; $nboccu++; echo '<p>'.$nboccu.' - "...<em>'.substr($occu,0,200).'</em>..."<br/></p>'; } //pour recherche d'une autre occurence dans le même contenu $value4=substr($occu,100); } while($occu!=""); $dejavu=""; $nboccu=0; } } } } } } } } } else echo '<p><br/>Trop court ! minimum 3 caract&egrave;res</p>'; echo '<br/><br/><br/>'; ?> </body></html> recherche.php
×
×
  • Créer...