Koha-Contrib-Tamil
view release on metacpan or search on metacpan
lib/Koha/Contrib/Tamil/Koha.pm view on Meta::CPAN
package Koha::Contrib::Tamil::Koha;
#ABSTRACT: Class exposing info about a Koha instance.
$Koha::Contrib::Tamil::Koha::VERSION = '0.074';
use Moose;
use Modern::Perl;
use Carp;
use XML::Simple;
use DBI;
use ZOOM;
use MARC::Record;
use MARC::File::XML;
use YAML;
use Search::Elasticsearch;
has conf_file => ( is => 'rw', isa => 'Str' );
has dbh => ( is => 'rw' );
has conf => ( is => 'rw' );
has _zconn => ( is => 'rw', isa => 'HashRef' );
has es => ( is => 'rw' );
has es_index => ( is=> 'rw' );
has koha_version => ( is => 'rw', isa => 'Num', default => 0 );
sub BUILD {
my $self = shift;
# Use KOHA_CONF environment variable by default
$self->conf_file( $ENV{KOHA_CONF} ) unless $self->conf_file;
$self->conf( XMLin( $self->conf_file,
keyattr => ['id'], forcearray => ['listen', 'server', 'serverinfo'],
suppressempty => ' ') );
# Database Handler
my $c = $self->conf->{config};
$self->dbh( DBI->connect(
"DBI:" . $c->{db_scheme} .
":dbname=" . $c->{database} .
";host=" . $c->{hostname} .
";port=" . $c->{port},
$c->{user}, $c->{pass} )
) or carp $DBI::errstr;
if ( $c->{db_scheme} eq 'mysql' ) {
# Force utf8 communication between MySQL and koha
$self->dbh->{ mysql_enable_utf8 } = 1;
$self->dbh->do( "set NAMES 'utf8'" );
$self->dbh->{ mysql_auto_reconnect } = 1;
my $tz = $ENV{TZ};
($tz) and $self->dbh->do( qq(SET time_zone = "$tz") );
}
# Zebra connections
$self->_zconn( { biblio => undef, auth => undef } );
# ElasticSearch
if ( my $param = $c->{elasticsearch} ) {
my $es = Search::Elasticsearch->new( nodes => $param->{server} );
$self->es( $es );
$self->es_index( {
biblios => $param->{index_name} . '_biblios',
authorities => $param->{index_name} . '_authorities',
} );
}
my $version = C4::Context->preference('Version');
if ( $version =~ /^([0-9]{2})\.([0-9]{2})/ ) {
$version = "$1.$2";
$version += 0;
$self->koha_version($version);
if ($version < 22.11) {
require C4::Biblio;
}
else {
require Koha::Biblios;
}
}
}
sub zconn_reset {
my $self = shift;
my $zcs = $self->_zconn;
for my $server ( keys %$zcs ) {
my $zc = $zcs->{$server};
$zc->destroy() if $zc;
undef $zcs->{$server};
}
}
sub zconn {
my ($self, $server) = @_;
my $zc = $self->_zconn->{$server};
#return $zc if $zc && $zc->errcode() == 0 && $zc->_check();
return $zc if $zc;
#FIXME: à réactiver pour s'assurer que de nouvelles connexion ne sont
# créées inutilement.
#print "zconn: nouvelle connexion\n";
my $c = $self->conf;
my $name = $server eq 'biblio' ? 'biblioserver' : 'authorityserver';
( run in 3.260 seconds using v1.01-cache-2.11-cpan-6aa56a78535 )