function display($requete, $nbResults, $mots)
 {
     if ($nbResults == 0) {
         // Si aucun résultat n'est retourné
         echo "<p>Aucun résultat, veuillez effectuer une autre recherche !</p>";
     } else {
         // Sinon on affiche les résultats en boucle
         // Affichage du nombre de résultats (optionnel)
         // N.B. : important pour l'affichage de résultats suivants (class "numR") !!!
         $affichageResultats = new affichageResultats();
         echo $affichageResultats->nbResultats(true);
         // Instanciation des ID (et du numéro de résultat si besoin)
         $nb = 0;
         while ($key = mysqli_fetch_assoc($requete)) {
             $nb++;
             // Incrémentation de l'ID
             // On encode chaque clé/valeur de résultats en UTF-8
             foreach ($key as $k => $v) {
                 $key[$k] = utf8_encode($v);
             }
             // Résultats de recherche à afficher (à personnaliser)
             $texte = "<div class='results' id='" . $nb . "'>\n";
             $texte .= "\t<h3>" . $nb . " - " . $key['title'] . "</h3>\n";
             $texte .= "\t<p>" . $key['description'] . "</p>\n";
             $texte .= "</div>\n";
             // Affichage du contenu après surlignage des mots recherchés
             // N.B. : optionnel --> possibilité de remplacer par echo $texte;
             $surlignage = new surlignageMot($mots, $texte);
             echo $surlignage->contenu;
         }
         // Fin de la boucle while
     }
 }
Ejemplo n.º 2
0
 function affichage($requete, $nbResults, $mots)
 {
     if ($nbResults == 0) {
         // Si aucun résultat n'est retourné
         echo "<p>Aucun résultat, veuillez effectuer une autre recherche !</p>";
     } else {
         // Sinon on affiche les résultats en boucle
         // Afficher le nombre de résultats
         $affichageResultats = new affichageResultats();
         echo $affichageResultats->nbResultats();
         while ($key = $requete->fetch_assoc()) {
             // On encode chaque clé/valeur de résultats en UTF-8
             foreach ($key as $k => $v) {
                 $key[$k] = utf8_encode($v);
             }
             // Résultats de recherche à afficher (à personnaliser)
             //$texte  = "<br/>Mot clé: ".$key['word']."<br/>";
             $texte = "Le mot ";
             $texte .= $key['word'];
             $texte .= " à trouvées a été ";
             $texte .= $key['nbOcc'] . " fois.<br/>";
             /*
             Objet pour surligner les mots recherchés si nécessaire
             => 3 arguments (les deux premiers sont obligatoires)
             1. variable contenant les mots ($mots ici)
             2. variable contenant le texte ($texte ici)
             3. "exact" (la chaîne précise mise en gras) ou "total" (la chaîne précise + environnante en gras) -> "exact" par défaut
             */
             $surlignage = new surlignageMot($mots, $texte);
             echo $surlignage->contenu;
             // Affichage du contenu après surlignage
             // N.B. : echo $texte; si vous ne voulez pas de surlignage...
         }
         // Fin de la boucle while
     }
 }
Ejemplo n.º 3
0
		function affichage($query, $nbResults, $words) {
			global $select, $wpdb, $moteur, $wp_rewrite, $correctionsmoteur, $autocorrect;

			$outputBeg = '<div class="WPAdvancedSearch" id="'.$nbResults.'">'."\n";
			
			$outputBeg .= '<div class="WPbeforeResults">'."\n";
			
			if(!empty($select->ResultText)) {
				$outputBeg .= '<h3>'.trim(__($select->ResultText,'wp-advanced-search')).' <em>'.htmlspecialchars($moteur->requete).'</em></h3>'."\n";
			}
			
			// Affichage conditionnel des corrections
			if($select->autoCorrectActive == true && ($select->autoCorrectType == 0 || $select->autoCorrectType == 2)) {
				if(!empty($correctionsmoteur)) {
					$outputBeg .= "<p class=\"WPcorrections\">".$select->autoCorrectString.$correctionsmoteur."</p>\n";
				}
			}

			if($nbResults == 0) {
				$outputBeg .= "</div>\n";
				$output = "<div class=\"WPBlockSearch\">\n";	
				$output .= '<p class="WPErrorSearch">'.__($select->ErrorText,'wp-advanced-search').'</p>'."\n";
				$output .= "</div>\n";
			} else {
				$output = '';
				$nb = 0;
				if(isset($_GET['page'])) {
					$nb = $nb + ($select->NumberPerPage * ($_GET['page']-1));
				}

				// Afficher le nombre de résultats
				if($select->nbResultsOK == true) {
					$affichageResultats = new affichageResultats();
					if($select->NumberPerPage == 0 || $select->paginationType != 'classic') {
						if($select->autoCorrectActive == true && !empty($correctionsmoteur) && $autocorrect) {
							$outputBeg .= $affichageResultats->nbResultats(true, array(__('résultat','wp-advanced-search'), __('résultats','wp-advanced-search')), __('avec la correction automatique de la recherche','wp-advanced-search'), __(' à ','wp-advanced-search'));
						} else {
							$outputBeg .= $affichageResultats->nbResultats(true, array(__('résultat','wp-advanced-search'), __('résultats','wp-advanced-search')), __('pour votre recherche','wp-advanced-search'), __(' à ','wp-advanced-search'));
						}
					} else {
						if($select->autoCorrectActive == true && !empty($correctionsmoteur) && $autocorrect) {
							$outputBeg .= $affichageResultats->nbResultats(false, array(__('résultat','wp-advanced-search'), __('résultats','wp-advanced-search')), __('avec la correction automatique de la recherche','wp-advanced-search'), __(' à ','wp-advanced-search'));
						} else {
							$outputBeg .= $affichageResultats->nbResultats(false, array(__('résultat','wp-advanced-search'), __('résultats','wp-advanced-search')), __('pour votre recherche','wp-advanced-search'), __(' à ','wp-advanced-search'));
						}
					}
				}
				$outputBeg .= "</div>\n";
				
				foreach($query as $key) { // On lance la boucle d'affichage des résultats (version WordPress)
					// Récupération du numéro du résultat
					$nb++;
					
					// Boucle utile si on doit ajouter (utf8_encode) par exemple (non activée par défaut...)
					foreach($key as $k => $v) {
						$key[$k] = $v;
					}

					// Trouver les images à la Une, les catégories et les auteurs
					$tableCible = $wpdb->posts; // Récupération de la table de base de donnée à parcourir (ici, "posts" pour celles des pages et articles)
					$tableMeta = $wpdb->postmeta; // Récupération des métas pour l'image à la Une
					$tableRelationship = $wpdb->term_relationships; // Récupération des relations de taxonomie
					$tableTaxonomy = $wpdb->term_taxonomy; // Récupération des termes de la taxonomie
					$tableTerms = $wpdb->terms; // Récupération des termes	
					$tableUsers = $wpdb->users; // Récupération des auteurs
					$ImageOK = $wpdb->get_results("SELECT * FROM ".$tableCible." AS p INNER JOIN ".$tableMeta." AS m1 ON (m1.post_id = '".$key['ID']."' AND m1.meta_value = p.ID AND m1.meta_key = '_thumbnail_id' AND p.post_type = 'attachment')");	
					$CategoryOK = $wpdb->get_results("SELECT name FROM ".$tableTerms." AS terms LEFT JOIN ".$tableTaxonomy." AS tax ON (terms.term_id = tax.term_id AND tax.taxonomy = 'category') INNER JOIN ".$tableRelationship." AS rel ON (tax.term_taxonomy_id = rel.term_taxonomy_id) WHERE rel.object_id = '".$key['ID']."'");
					$AuthorOK = $wpdb->get_results("SELECT users.ID, user_nicename, display_name FROM ".$tableUsers." AS users INNER JOIN ".$tableCible." AS p ON users.ID = p.post_author WHERE p.ID = '".$key['ID']."'");
					
					// Nombre de catégorie (si plusieurs, on affichera différement)
					$nbCategory = count($CategoryOK);
					
					// Bloc global
					$output .= "\n<div class=\"WPBlockSearch\" id=\"".$nb."\">\n";

					// Affichage conditionné de la date et du titre
					if($select->TitleOK == true && $select->NumberOK == true) {
						$output .= '<div class="WPFirstSearch">'."\n";
						$output .= '<p class="WPnumberSearch">'.$nb.'</p>'."\n";
						$output .= '<p class="WPtitleSearch"><a href="'.get_permalink($key['ID']).'">'.$key['post_title'].'</a></p>'."<p class='clearBlock'></p>\n";				
						$output .= '</div>'."\n";
					} else if($select->TitleOK == true && $select->NumberOK == false) {
						$output .= '<div class="WPFirstSearch">'."\n";
						$output .= '<p class="WPtitleSearch"><a href="'.get_permalink($key['ID']).'">'.$key['post_title'].'</a></p>'."\n";
						$output .= '</div>'."\n";
					} else if($select->TitleOK == false && $select->NumberOK == true) {
						$output .= '<div class="WPFirstSearch">'."\n";
						$output .= '<p class="WPnumberSearch">'.$nb.'</p>'."\n";	
						$output .= '</div>'."\n";
					}

					// Affichage d'un bloc pour date + auteur + categorie
					$output .= '<p class="WPSecondSearch">'."\n";
						if($select->DateOK == true || $select->AuthorOK == true || $select->CategoryOK == true) {
							$output .= '<span class="WPdateSearch">'.__('Publié ','wp-advanced-search').'</span>';
						}
						if($select->BlocOrder == "D-A-C") // Ordre : Date - Auteur - Catégorie
						{
							// Affichage conditionné de la date
							if($select->DateOK == true) {
								$dateInfo = mysql2date($select->formatageDate, $key['post_date']);
								$output .= '<span class="WPdateSearch">'.__('le ','wp-advanced-search').$dateInfo.'</span>'."\n";
							}
							// Affichage conditionné de l'auteur
							if($select->AuthorOK == true) {
								foreach($AuthorOK as $author) {
									$authorURL = get_author_posts_url($author->ID, $author->user_nicename);
									$output .= '<span class="WPauthorSearch">'.__('par ','wp-advanced-search').'<a href="'.esc_url($authorURL).'">'.$author->display_name.'</a></span>'."\n";
								}
							}
							// Affichage conditionné de la catégorie
							if($select->CategoryOK == true) {
								if($nbCategory > 0) {
									$output .= '<span class="WPcategorySearch">'.__('dans ','wp-advanced-search')."\n";
								}
								$counter = 0;
								foreach($CategoryOK as $ctg) {
									$categoryID = get_cat_ID($ctg->name);
									$categoryURL = get_category_link($categoryID);
									$output .= '<a href="'.esc_url($categoryURL).'">'.$ctg->name.'</a>';
									if($nbCategory > 1 && $counter < ($nbCategory-1)) {
										$output .= ", \n";
									}
									$counter++;
								}
								if($nbCategory > 0) {
									$output .= '</span>'."\n";
								}
							}
						} else // Ordre : Date - Catégorie - Auteur
						if($select->BlocOrder == "D-C-A") {
							// Affichage conditionné de la date
							if($select->DateOK == true) {
								$dateInfo = mysql2date($select->formatageDate, $key['post_date']);
								$output .= '<span class="WPdateSearch">'.__('le ','wp-advanced-search').$dateInfo.'</span>'."\n";
							}
							// Affichage conditionné de la catégorie
							if($select->CategoryOK == true) {
								if($nbCategory > 0) {
									$output .= '<span class="WPcategorySearch">'.__('dans ','wp-advanced-search')."\n";
								}
								$counter = 0;
								foreach($CategoryOK as $ctg) {
									$categoryID = get_cat_ID($ctg->name);
									$categoryURL = get_category_link($categoryID);
									$output .= '<a href="'.esc_url($categoryURL).'">'.$ctg->name.'</a>';
									if($nbCategory > 1 && $counter < ($nbCategory-1)) {
										$output .= ", \n";
									}
									$counter++;
								}
								if($nbCategory > 0) {
									$output .= '</span>'."\n";
								}
							}
							// Affichage conditionné de l'auteur
							if($select->AuthorOK == true) {
								foreach($AuthorOK as $author) {
									$authorURL = get_author_posts_url($author->ID, $author->user_nicename);
									$output .= '<span class="WPauthorSearch">'.__('par ','wp-advanced-search').'<a href="'.esc_url($authorURL).'">'.$author->display_name.'</a></span>'."\n";
								}
							}
						} else // Ordre : Auteur - Catégorie - Date
						if($select->BlocOrder == "A-C-D") {
							// Affichage conditionné de l'auteur
							if($select->AuthorOK == true) {
								foreach($AuthorOK as $author) {
									$authorURL = get_author_posts_url($author->ID, $author->user_nicename);
									$output .= '<span class="WPauthorSearch">'.__('par ','wp-advanced-search').'<a href="'.esc_url($authorURL).'">'.$author->display_name.'</a></span>'."\n";
								}
							}
							// Affichage conditionné de la catégorie
							if($select->CategoryOK == true) {
								if($nbCategory > 0) {
									$output .= '<span class="WPcategorySearch">'.__('dans ','wp-advanced-search')."\n";
								}
								$counter = 0;
								foreach($CategoryOK as $ctg) {
									$categoryID = get_cat_ID($ctg->name);
									$categoryURL = get_category_link($categoryID);
									$output .= '<a href="'.esc_url($categoryURL).'">'.$ctg->name.'</a>';
									if($nbCategory > 1 && $counter < ($nbCategory-1)) {
										$output .= ", \n";
									}
									$counter++;
								}
								if($nbCategory > 0) {
									$output .= '</span>'."\n";
								}
							}
							// Affichage conditionné de la date
							if($select->DateOK == true) {
								$dateInfo = mysql2date($select->formatageDate, $key['post_date']);
								$output .= '<span class="WPdateSearch">'.__('le ','wp-advanced-search').$dateInfo.'</span>'."\n";
							}
						} else // Ordre : Auteur - Date - Catégorie
						if($select->BlocOrder == "A-D-C") {
							// Affichage conditionné de l'auteur
							if($select->AuthorOK == true) {
								foreach($AuthorOK as $author) {
									$authorURL = get_author_posts_url($author->ID, $author->user_nicename);
									$output .= '<span class="WPauthorSearch">'.__('par ','wp-advanced-search').'<a href="'.esc_url($authorURL).'">'.$author->display_name.'</a></span>'."\n";
								}
							}
							// Affichage conditionné de la date
							if($select->DateOK == true) {
								$dateInfo = mysql2date($select->formatageDate, $key['post_date']);
								$output .= '<span class="WPdateSearch">'.__('le ','wp-advanced-search').$dateInfo.'</span>'."\n";
							}
							// Affichage conditionné de la catégorie
							if($select->CategoryOK == true) {
								if($nbCategory > 0) {
									$output .= '<span class="WPcategorySearch">'.__('dans ','wp-advanced-search')."\n";
								}
								$counter = 0;
								foreach($CategoryOK as $ctg) {
									$categoryID = get_cat_ID($ctg->name);
									$categoryURL = get_category_link($categoryID);
									$output .= '<a href="'.esc_url($categoryURL).'">'.$ctg->name.'</a>';
									if($nbCategory > 1 && $counter < ($nbCategory-1)) {
										$output .= ", \n";
									}
									$counter++;
								}
								if($nbCategory > 0) {
									$output .= '</span>'."\n";
								}
							}
						} else // Ordre : Catégorie - Date - Auteur
						if($select->BlocOrder == "C-D-A") {
							// Affichage conditionné de la catégorie
							if($select->CategoryOK == true) {
								if($nbCategory > 0) {
									$output .= '<span class="WPcategorySearch">'.__('dans ','wp-advanced-search')."\n";
								}
								$counter = 0;
								foreach($CategoryOK as $ctg) {
									$categoryID = get_cat_ID($ctg->name);
									$categoryURL = get_category_link($categoryID);
									$output .= '<a href="'.esc_url($categoryURL).'">'.$ctg->name.'</a>';
									if($nbCategory > 1 && $counter < ($nbCategory-1)) {
										$output .= ", \n";
									}
									$counter++;
								}
								if($nbCategory > 0) {
									$output .= '</span>'."\n";
								}
							}
							// Affichage conditionné de la date
							if($select->DateOK == true) {
								$dateInfo = mysql2date($select->formatageDate, $key['post_date']);
								$output .= '<span class="WPdateSearch">'.__('le ','wp-advanced-search').$dateInfo.'</span>'."\n";
							}
							// Affichage conditionné de l'auteur
							if($select->AuthorOK == true) {
								foreach($AuthorOK as $author) {
									$authorURL = get_author_posts_url($author->ID, $author->user_nicename);
									$output .= '<span class="WPauthorSearch">'.__('par ','wp-advanced-search').'<a href="'.esc_url($authorURL).'">'.$author->display_name.'</a></span>'."\n";
								}
							}
						} else // Ordre : Catégorie - Auteur - Date
						if($select->BlocOrder == "C-A-D") {
							// Affichage conditionné de la catégorie
							if($select->CategoryOK == true) {
								if($nbCategory > 0) {
									$output .= '<span class="WPcategorySearch">'.__('dans ','wp-advanced-search')."\n";
								}
								$counter = 0;
								foreach($CategoryOK as $ctg) {
									$categoryID = get_cat_ID($ctg->name);
									$categoryURL = get_category_link($categoryID);
									$output .= '<a href="'.esc_url($categoryURL).'">'.$ctg->name.'</a>';
									if($nbCategory > 1 && $counter < ($nbCategory-1)) {
										$output .= ", \n";
									}
									$counter++;
								}
								if($nbCategory > 0) {
									$output .= '</span>'."\n";
								}
							}
							// Affichage conditionné de l'auteur
							if($select->AuthorOK == true) {
								foreach($AuthorOK as $author) {
									$authorURL = get_author_posts_url($author->ID, $author->user_nicename);
									$output .= '<span class="WPauthorSearch">'.__('par ','wp-advanced-search').'<a href="'.esc_url($authorURL).'">'.$author->display_name.'</a></span>'."\n";
								}
							}
							// Affichage conditionné de la date
							if($select->DateOK == true) {
								$dateInfo = mysql2date($select->formatageDate, $key['post_date']);
								$output .= '<span class="WPdateSearch">'.__('le ','wp-advanced-search').$dateInfo.'</span>'."\n";
							}
						}
							
							// Affichage conditionné des commentaires
							if($select->CommentOK == true) {
								if($key['comment_count'] == 0) {
									$output .= '<span class="WPcommentSearch"><a href="'.get_permalink($key['ID']).'#comments">'.__('Aucun commentaire','wp-advanced-search').'</a></span>'."\n";
								} else if($key['comment_count'] == 1) {
									$output .= '<span class="WPcommentSearch"><a href="'.get_permalink($key['ID']).'#comments">'.$key['comment_count'].' '.__('commentaire','wp-advanced-search').'</a></span>'."\n";
								} else {
									$output .= '<span class="WPcommentSearch"><a href="'.get_permalink($key['ID']).'#comments">'.$key['comment_count'].' '.__('commentaires','wp-advanced-search').'</a></span>'."\n";
								}
							}

					$output .= '</p>'."\n";
					
					// Affichage conditionné de l'article, de l'extrait et de l'image à la Une
					if(($select->ArticleOK == "excerpt" || $select->ArticleOK == "excerptmore" || $select->ArticleOK == "article") && $select->ImageOK == true) {
						$output .= '<div class="WPBlockContent">'."\n";
						
						$output .= get_the_post_thumbnail($key['ID'],'thumbnail');
						
						if($select->ArticleOK == "excerpt") {
							$output .= '<div class="WPtextSearch">'."\n";
							$output .= $key['post_excerpt'];
							$output .= '</div>'."\n";
						} else if($select->ArticleOK == "excerptmore") {
							$output .= '<div class="WPtextSearch">'."\n";
							$output .= $key['post_excerpt'];
							$output .= '<p class="WPReadMoreSearch"><a href="'.get_permalink($key['ID']).'">'.__('Lire la suite...','wp-advanced-search').'</a></p>'."\n";
							$output .= '</div>'."\n";							
						} else {
							$output .= '<div class="WPtextSearch">'.$key['post_content'].'</div>'."\n";
						}
						$output .= '<div class="clearBlock"></div>'."\n";
						$output .= '</div>'."\n";
					
					// Affichage conditionné de l'image à la Une sans titre ou extrait (déconseillé)
					} else if(($select->ArticleOK == "excerpt" || $select->ArticleOK == "excerptmore" || $select->ArticleOK == "article") && $select->ImageOK == false) {
						$output .= '<div class="WPBlockContent">'."\n";
						
						if($select->ArticleOK == "excerpt") {
							$output .= '<div class="WPtextSearch">'."\n";
							$output .= $key['post_excerpt'];
							$output .= '</div>'."\n";
						} else if($select->ArticleOK == "excerptmore") {
							$output .= '<div class="WPtextSearch">'."\n";
							$output .= $key['post_excerpt'];
							$output .= '<p class="WPReadMoreSearch"><a href="'.get_permalink($key['ID']).'">'.__('Lire la suite...','wp-advanced-search').'</a></p>'."\n";
							$output .= '</div>'."\n";							
						} else {
							$output .= '<div class="WPtextSearch">'.$key['post_content'].'</div>'."\n";
						}
						$output .= '<div class="clearBlock"></div>'."\n";
						$output .= '</div>';					
					
					// Affichage conditionné de l'image à la Une sans titre ou extrait (déconseillé)
					} else if($select->ArticleOK == "aucun" && $select->ImageOK == true) {
						$output .= '<div class="WPBlockContent">'."\n";
						$output .= get_the_post_thumbnail($key['ID'],'thumbnail');
						$output .= '<div class="clearBlock"></div>'."\n";
						$output .= '</div>'."\n";
					}

					// Style perso en "n" columns
					if($select->Style == "twocol" || $select->Style == "threecol") {
						if($select->Style == "twocol") {
							$denominateur = 2;
						}
						if($select->Style == "threecol") {
							$denominateur = 3;
						}
						
						if(($nb % $denominateur) == 0) {
							$output .= "<div class=\"clearBlock\"></div>\n";
						}
					}
					
					$output .= "</div>\n";
					
					// Style perso en "n" columns
					if($select->Style == "twocol" || $select->Style == "threecol") {
						if($select->Style == "twocol") {
							$denominateur = 2;
						}
						if($select->Style == "threecol") {
							$denominateur = 3;
						}
						
						if(($nb % $denominateur) == 0) {
							$output .= "<div class=\"clearBlock\"></div>\n";
						}
					}
				}
				// Utilisation ou non du surlignage
				if($select->strongWords != 'aucun') {
					$strong = new surlignageMot($words, $output, $select->strongWords, $select->exactSearch, $select->typeSearch);
					$output = $strong->contenu;
				}
			}
			$outputEnd = "<div class=\"clearBlock\"></div>\n";
			$outputEnd.= "</div>\n"; // Fin de BlockSearch
			
			// Ajoute le texte du trigger si l'option est active
			if($select->paginationType == "trigger" && $select->paginationActive == true) {
				$outputEnd .= '<div id="loadMore">'.$select->paginationText.'</div>';
			}
			// Ajoute le texte du trigger si l'option est active
			if($select->paginationType == "infinite" && $select->paginationActive == true) {
				$outputEnd .= '<div id="loadMoreIS"><img src="'.plugins_url("img/loadingGrey.gif", __FILE__ ).'" alt="" /></div>';
			}
			
			// Retourne les résultats complets du moteur de recherche
			echo $outputBeg.$output.$outputEnd;
		} // Fin de la fonction callback d'affichage