The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
#
# Simple CGI interface to module Search::Circa::Indexer
# Copyright 2000 A.Barbet alian@alianwebserver.com.  All rights reserved.
# Take a look in admin.htm
# $Date: 2002/08/17 22:28:43 $
#

use strict;
use CGI qw/:standard :html3 :netscape escape unescape/;
use CGI::Carp qw/fatalsToBrowser/;
use lib '/path/to/circa';
use CircaConf;
use Search::Circa::Indexer;
use Cwd;

$|=1;

my $masque        = $CircaConf::TemplateDir."admin.htm";
my $masqueClients = $CircaConf::TemplateDir; # rep ou deposer les masques
my $importDir     = $CircaConf::export;
my $indexor = new Search::Circa::Indexer;
#$indexor->proxy("http://192.168.100.70:3128");

my $cgi = new CGI;
print header,$indexor->start_classic_html($cgi);
#if (defined $ENV{'MOD_PERL'}) {print "Mode mod_perl<br>\n";}
#else {print "Mode cgi<br>\n";}
if (!$indexor->connect($CircaConf::User,
			     $CircaConf::Password,
			     $CircaConf::Database,
			     $CircaConf::Host)) 
  {die "Erreur à la connection MySQL:$DBI::errstr\n";}

# Drop table
if (param('drop')) 
  {$indexor->drop_table_circa; print h1("Tables supprimées"); }

# Drop compte
if (param('dropSite')) 
  { $indexor->drop_table_circa_id(param('id')); print h1("Comte supprimé"); }

# Create table
if (param('create')) 
  {$indexor->create_table_circa; print h1("Tables créées"); }

# Add site
if (param('url'))
  {
  $indexor->addSite(param('url'),param('email'),param('titre'),
		    param('categorieAuto'),$cgi,$masqueClients);
  print h1("Site ajouté");
  }
# export data
if (param('export')) {$indexor->export(undef,$importDir);}
# import data
if (param('import')) {$indexor->import_data(undef,$importDir);}
# Add local site
if (param('local_url'))
  {
  $indexor->addLocalSite(
    param('local_url'),
    param('email'),
    param('titre'),
    param('local_file'),
    param('url_racine'),
    param('local_file_site'),
    param('categorieAuto'),
    $cgi,
    $masqueClients);
  print h1("Site ajouté");
  }

# Read url not parsed
if (param('parse_new'))
  {
  my ($nbIndexe,$nbAjoute,$nbWords,$nbWordsGood) 
    = $indexor->parse_new_url(param('id'));
  print "$nbIndexe pages indexées, $nbAjoute pages ajoutées, ",
  "$nbWordsGood mots indexés, $nbWords mots lus\n";
  }

# Update index
if (param('update')) 
  {$indexor->update(param('nb_jours'),param('id'));}

my @l = (0,1);
my %tab=(0=>'Non',1=>'Oui');
my $list = $cgi->scrolling_list(-'name'=>'categorieAuto',
                           -'values'=>\@l,
                           -'size'=>1,
                           -'labels'=>\%tab);
# Liste des variables à substituer dans le template
my %vars = 
  (
   'liste_site'=> $indexor->get_liste_site($cgi) 
   || "You need to create circa table",
   'categories'=>$list
  );
# Affichage du resultat
print $indexor->fill_template($masque,\%vars),end_html;

# Close connection
$indexor->close;