NAME

Circa::Search - provide functions to perform search on Circa, a www search engine running with Mysql

SYNOPSIS

 use Circa::Search;
 my $search = new Circa::Search;
 
 # Connection à MySQL
 if (!$search->connect_mysql("aliansql","pass","my_database","localhost")) 
	{die "Erreur à la connection MySQL:$DBI::errstr\n";}

 # Affichage d'un formulaire minimum
 print 	header,
 	$search->start_classic_html,
 	$search->default_form;
 
 # Interrogation du moteur
 # Sites trouves, liens pages suivantes, nb pages trouvees
 my ($resultat,$links,$indice) = $search->search('informatique internet',0,1);

DESCRIPTION

This is Circa::Search, a module who provide functions to perform search on Circa, a www search engine running with Mysql. Circa is for your Web site, or for a list of sites. It indexes like Altavista does. It can read, add and parse all url's found in a page. It add url and word to MySQL for use it at search.

Remarques sur la recherche:

- Accents are removed on search and when indexed
- Search are cas unsensitive (mmmh what my english ? ;-)

VERSION

$Revision: 1.5 $

port_mysql

Get or set the MySQL port

prefix_table

Get or set the prefix for table name for use Circa with more than one time on a same database

Méthodes publiques

connect_mysql($user,$password,$db)

Connecte l'application à MySQL. Retourne 1 si succes, 0 sinon

$user     : Utilisateur MySQL
$password : Mot de passe MySQL
$db       : Database MySQL
$server   : Adr IP du serveur MySQL

search($template,$mot,$first,$id,$langue,$url,$create,$update,$catego)

Fonction permettant d'effectuer une recherche par mot dans Circa

Paramètres :

$template : Masque HTML pour le resultat de chaque lien. Si undef, le masque par defaut
(defini en haut de ce module) sera utilise. La liste des variables définies au 
moment du eval sont : $indiceG,$titre,$description,$url,$facteur,$last_update,$langue
            
 Exemple de masque :
            
 '"<p>$indiceG - <a href=\"$url\">$titre</a> $description<br> 
  <font class=\"small\"><b>Url:</b> $url <b>Facteur:</b> $facteur
  <b>Last update:</b> $last_update </font></p>\n"'
            
$mot    : Séquence des mots recherchés tel que tapé par l'utilisateur
first   : Indice du premier site affiché dans le résultat
$id     : Id du site dans lequel effectué la recherche
$langue : Restriction par langue (facultatif)
$Url    : Restriction par url : les url trouvées commenceront par $Url (facultatif)
$create : Restriction par date inscription. Format YYYY-MM-JJ HH:MM:SS (facultatif)
$update : Restriction par date de mise à jour des pages. Format YYYY-MM-JJ HH:MM:SS (facultatif)
$catego : Restriction par categorie (facultatif)

Retourne ($resultat,$links,$indice)

$resultat : Buffer HTML contenant la liste des sites trouves formaté en fonction
            de $template et des mots present dans $mots
$links    : Liens vers les pages suivantes / precedentes
$indice   : Nombre de sites trouves

search_word($tab,$word,$idc,$langue,$Url,$create,$update,$categorie)

Construction de la requete SQL. Son exploitation est faite par search

$tab    : Reference du hash où mettre le resultat
$word   : Mot recherché
$id     : Id du site dans lequel effectué la recherche
$langue : Restriction par langue (facultatif)
$Url    : Restriction par url
$create : Restriction par date inscription
$update : Restriction par date de mise à jour des pages
$catego : Restriction par categorie

Retourne la reference du hash avec le resultat de la recherche sur le mot $word Le hash est constitué comme tel:

   $tab{$url}[0] : titre
   $tab{$url}[1] : description
   $tab{$url}[2] : facteur
   $tab{$url}[3] : langue
   $tab{$url}[4] : date de dernière modification
@{$$tab{$url}[5]}: liste des mots trouves pour cet url

categories_in_categorie($id,$idr,$template)

Fonction retournant la liste des categories de la categorie $id dans le site $idr

$id       : Id de la categorie de depart. Si undef, 0 est utilisé (Considéré comme le "Home")
$idr	   : Id du responsable
$template : Masque HTML pour le resultat de chaque lien. Si undef, le masque par defaut
            (defini en haut de ce module) sera utlise

Retourne ($resultat,$nom_categorie) :

$resultat : Buffer contenant la liste des sites formatées en ft de $template
$nom_categorie : Nom court de la categorie

sites_in_categorie($id,$idr,$template)

Fonction retournant la liste des pages de la categorie $id dans le site $idr

$id       : Id de la categorie de depart. Si undef, 0 est utilisé (Considéré comme le "Home")
$idr	   : Id du responsable 
$template : Masque HTML pour le resultat de chaque lien. Si undef, le masque par defaut
            (defini en haut de ce module) sera utlise

Retourne le buffer contenant la liste des sites formatées en ft de $template

getParent($id,$idr,%tab)

Rend la chaine correspondante à la catégorie $id avec ses rubriques parentes

get_link($no_page)

Retourne l'URL correspondant à la page no $no_page dans la recherche en cours

Retourne l'URL correspondant à la categorie no $no_categorie

start_classic_html

Affiche le debut de document (<head></head>)

fill_template($masque,$vars)

$masque : Chemin du template
$vars : hash des noms/valeurs à substituer dans le template

Rend le template avec ses variables substituées. Ex: si $$vars{age}=12, et que le fichier $masque contient la chaine:

J'ai <? $age ?> ans, 

la fonction rendra

J'ai 12 ans,

advanced_form($id)

Affiche un formulaire minimum pour effectuer une recherche sur Circa

default_form

Affiche un formulaire minimum pour effectuer une recherche sur Circa

get_liste_langue

Retourne le buffer HTML correspondant à la liste des langues disponibles

get_first($requete)

Retourne la premiere ligne du resultat de la requete $requete sous la forme d'un tableau

get_masque

get_name_site($id)

Retourne le nom du site dans la table responsable correspondant à l'id $id

get_liste_categorie_fils($id,$idr)

$id : Id de la categorie parent
$idr : Site selectionne

Retourne la liste des categories fils de $id dans le site $idr

AUTHOR

Alain BARBET alian@alianwebserver.com

1 POD Error

The following errors were encountered while parsing the POD:

Around line 52:

Non-ASCII character seen before =encoding in 'à'. Assuming CP1252