diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index f6c9d35d77..b4a0d786a8 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -1327,9 +1327,17 @@ sub merge {
my $tag=$field->tag();
if ($auth_number==$mergefrom) {
my $field_to=MARC::Field->new(($tag_to?$tag_to:$tag),$field->indicator(1),$field->indicator(2),"9"=>$mergeto);
+ my $exclude='9';
foreach my $subfield (@record_to) {
$field_to->add_subfields($subfield->[0] =>$subfield->[1]);
+ $exclude.= $subfield->[0];
}
+ $exclude='['.$exclude.']';
+# add subfields in $field not included in @record_to
+ my @restore= grep {$_->[0]!~/$exclude/} $field->subfields();
+ foreach my $subfield (@restore) {
+ $field_to->add_subfields($subfield->[0] =>$subfield->[1]);
+ }
$marcrecord->delete_field($field);
$marcrecord->insert_grouped_field($field_to);
$update=1;
diff --git a/C4/Circulation.pm b/C4/Circulation.pm
index 034a8d6d4b..644ab2749b 100644
--- a/C4/Circulation.pm
+++ b/C4/Circulation.pm
@@ -69,7 +69,6 @@ BEGIN {
&AddRenewal
&GetRenewCount
&GetItemIssue
- &GetOpenIssue
&GetItemIssues
&GetBorrowerIssues
&GetIssuingCharges
@@ -77,6 +76,7 @@ BEGIN {
&GetBranchBorrowerCircRule
&GetBranchItemRule
&GetBiblioIssues
+ &GetOpenIssue
&AnonymiseIssueHistory
);
@@ -904,7 +904,6 @@ sub AddIssue {
my ( $borrower, $barcode, $datedue, $cancelreserve, $issuedate, $sipmode) = @_;
my $dbh = C4::Context->dbh;
my $barcodecheck=CheckValidBarcode($barcode);
-
# $issuedate defaults to today.
if ( ! defined $issuedate ) {
$issuedate = strftime( "%Y-%m-%d", localtime );
diff --git a/C4/Creators/Batch.pm b/C4/Creators/Batch.pm
index cff7419f56..f54e3dad78 100644
--- a/C4/Creators/Batch.pm
+++ b/C4/Creators/Batch.pm
@@ -149,6 +149,7 @@ sub retrieve {
};
while (my $record = $sth->fetchrow_hashref) {
$self->{'branch_code'} = $record->{'branch_code'};
+ $self->{'creator'} = $record->{'creator'};
push (@{$self->{'items'}}, {$number_type => $record->{$number_type}, label_id => $record->{'label_id'}});
$record_flag = 1; # true if one or more rows were retrieved
}
diff --git a/C4/Creators/Layout.pm b/C4/Creators/Layout.pm
index a38f34765c..3281e15567 100644
--- a/C4/Creators/Layout.pm
+++ b/C4/Creators/Layout.pm
@@ -40,6 +40,8 @@ sub _check_params {
'format_string',
'layout_xml', # FIXME: all layouts should be stored in xml format to greatly simplify handling -chris_n
'creator',
+ 'units',
+ 'start_label',
);
if (scalar(@_) >1) {
my %given_params = @_;
@@ -68,6 +70,9 @@ sub new {
my $type = ref($invocant) || $invocant;
if (grep {$_ eq 'Labels'} @_) {
$self = {
+ layout_xml => '',
+ units => 'POINT',
+ start_label => 1,
barcode_type => 'CODE39',
printing_type => 'BAR',
layout_name => 'DEFAULT',
@@ -95,8 +100,6 @@ sub retrieve {
my %opts = @_;
my $type = ref($invocant) || $invocant;
my $query = "SELECT * FROM creator_layouts WHERE layout_id = ? AND creator = ?";
- #warn "QUERY: $query\n"; #XXX Remove
- #warn "PARAMS: layout_id=" . $opts{'layout_id'} . " creator=" . $opts{'creator'} . "\n"; #XXX Remove
my $sth = C4::Context->dbh->prepare($query);
$sth->execute($opts{'layout_id'}, $opts{'creator'});
if ($sth->err) {
@@ -221,7 +224,7 @@ sub get_text_wrap_cols {
my $string = '';
my $strwidth = 0;
my $col_count = 0;
- my $textlimit = $params{'label_width'} - ( 3 * $params{'left_text_margin'});
+ my $textlimit = $params{'label_width'} - (( 3 * $params{'left_text_margin'} ) || 13.5 );
while ($strwidth < $textlimit) {
$string .= '0';
diff --git a/C4/Creators/Profile.pm b/C4/Creators/Profile.pm
index aab0e27274..6b6e192a57 100644
--- a/C4/Creators/Profile.pm
+++ b/C4/Creators/Profile.pm
@@ -122,6 +122,7 @@ sub delete {
warn sprintf('Database returned the following error on attempted DELETE: %s', $sth->errstr);
return -1;
}
+ return 0;
}
sub save {
diff --git a/C4/Creators/Template.pm b/C4/Creators/Template.pm
index 0bbeadfa6e..8a7564c491 100644
--- a/C4/Creators/Template.pm
+++ b/C4/Creators/Template.pm
@@ -154,7 +154,7 @@ sub delete {
warn sprintf('%s : Cannot delete template as the creator type is invalid or non-existant.', $call_type) if !$query_params[1];
return -1;
}
- my $query = "DELETE FROM " . $opts{'table_name'} . " WHERE template_id = ? AND creator = ?";
+ my $query = "DELETE FROM creator_templates WHERE template_id = ? AND creator = ?";
my $sth = C4::Context->dbh->prepare($query);
$sth->execute(@query_params);
$self->{'template_stat'} = 0;
diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm
index 2571bb03ef..be093f0e47 100644
--- a/C4/ILSDI/Services.pm
+++ b/C4/ILSDI/Services.pm
@@ -213,7 +213,8 @@ sub GetRecords {
$biblioitem->{'issues'}->{'issue'} = $issues;
map { $biblioitem->{$_} = encode_entities( $biblioitem->{$_}, '&' ) } grep( !/marcxml/, keys %$biblioitem );
-
+
+ push @records, $biblioitem;
}
return { record => \@records };
@@ -249,7 +250,7 @@ sub GetAuthorityRecords {
foreach my $authid ( split( / /, $cgi->param('id') ) ) {
# Get the record as XML string, or error code
- my $record = GetAuthorityXML( $_ ) || "RecordNotFound";
+ my $record = GetAuthorityXML($authid) || "RecordNotFound";
$record =~ s/<\?xml(.*)\?>//go;
$records .= $record;
}
diff --git a/C4/Installer/PerlDependencies.pm b/C4/Installer/PerlDependencies.pm
index 19a84a024c..3ac49dc5d0 100644
--- a/C4/Installer/PerlDependencies.pm
+++ b/C4/Installer/PerlDependencies.pm
@@ -464,6 +464,11 @@ our $PERL_DEPS = {
'required' => '0',
'min_ver' => '0.97',
},
+ 'Business::ISBN' => {
+ 'usage' => 'Core',
+ 'required' => '0',
+ 'min_ver' => '2.05',
+ },
};
1;
diff --git a/C4/Koha.pm b/C4/Koha.pm
index cb93034d5c..ab9131a9fb 100644
--- a/C4/Koha.pm
+++ b/C4/Koha.pm
@@ -24,6 +24,7 @@ use C4::Context;
use C4::Output;
use URI::Split qw(uri_split);
use Memoize;
+use Business::ISBN;
use vars qw($VERSION @ISA @EXPORT $DEBUG);
@@ -597,6 +598,7 @@ sub _getImagesFromDirectory {
if ( opendir ( my $dh, $directoryname ) ) {
my @images = grep { /\.(gif|png)$/i } readdir( $dh );
closedir $dh;
+ @images = sort(@images);
return @images;
} else {
warn "unable to opendir $directoryname: $!";
@@ -1235,10 +1237,14 @@ sub GetNormalizedUPC {
}
# Normalizes and returns the first valid ISBN found in the record
+# ISBN13 are converted into ISBN10. This is required to get Amazon cover book.
sub GetNormalizedISBN {
my ($isbn,$record,$marcflavour) = @_;
my @fields;
if ($isbn) {
+ # Koha attempts to store multiple ISBNs in biblioitems.isbn, separated by " | "
+ # anything after " | " should be removed, along with the delimiter
+ $isbn =~ s/(.*)( \| )(.*)/$1/;
return _isbn_cleanup($isbn);
}
return undef unless $record;
@@ -1321,19 +1327,12 @@ sub _normalize_match_point {
}
sub _isbn_cleanup ($) {
- my $normalized_isbn = shift;
- $normalized_isbn =~ s/-//g;
- $normalized_isbn =~/([0-9x]{1,})/i;
- $normalized_isbn = $1;
- if (
- $normalized_isbn =~ /\b(\d{13})\b/ or
- $normalized_isbn =~ /\b(\d{12})\b/i or
- $normalized_isbn =~ /\b(\d{10})\b/ or
- $normalized_isbn =~ /\b(\d{9}X)\b/i
- ) {
- return $1;
- }
- return undef;
+ my $isbn = Business::ISBN->new( shift );
+ return undef unless $isbn;
+ $isbn = $isbn->as_isbn10 if $isbn->type eq 'ISBN13';
+ $isbn = $isbn->as_string;
+ $isbn =~ s/-//g;
+ return $isbn;
}
1;
diff --git a/C4/Labels/Label.pm b/C4/Labels/Label.pm
index ef5fa1534b..643753750f 100644
--- a/C4/Labels/Label.pm
+++ b/C4/Labels/Label.pm
@@ -470,6 +470,10 @@ sub draw_label_text {
return \@label_text;
}
+sub draw_guide_box {
+ return $_[0]->{'guidebox'};
+}
+
sub barcode {
my $self = shift;
my %params = @_;
diff --git a/C4/Letters.pm b/C4/Letters.pm
index 885ed5fb90..62b339aefb 100644
--- a/C4/Letters.pm
+++ b/C4/Letters.pm
@@ -275,7 +275,7 @@ sub SendAlerts {
# and parse borrower ...
my $innerletter = $letter;
- my $borinfo = GetMember( 'borrowernumber' => $_->{'borrowernumber'});
+ my $borinfo = C4::Members::GetMember('borrowernumber' => $_->{'borrowernumber'});
parseletter( $innerletter, 'borrowers', $_->{'borrowernumber'} );
# ... then send mail
diff --git a/C4/Members.pm b/C4/Members.pm
index cddbf414d0..4c1d37c49f 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -484,7 +484,7 @@ sub patronflags {
$flags{'NOTES'} = \%flaginfo;
}
my ( $odues, $itemsoverdue ) = checkoverdues($patroninformation->{'borrowernumber'});
- if ( $odues > 0 ) {
+ if ( $odues && $odues > 0 ) {
my %flaginfo;
$flaginfo{'message'} = "Yes";
$flaginfo{'itemlist'} = $itemsoverdue;
@@ -937,22 +937,16 @@ with the modified information
#'
sub UpdateGuarantees {
- my (%data) = @_;
+ my %data = shift;
my $dbh = C4::Context->dbh;
my ( $count, $guarantees ) = GetGuarantees( $data{'borrowernumber'} );
- for ( my $i = 0 ; $i < $count ; $i++ ) {
-
- # FIXME
- # It looks like the $i is only being returned to handle walking through
- # the array, which is probably better done as a foreach loop.
- #
+ foreach my $guarantee (@$guarantees){
my $guaquery = qq|UPDATE borrowers
- SET address='$data{'address'}',fax='$data{'fax'}',
- B_city='$data{'B_city'}',mobile='$data{'mobile'}',city='$data{'city'}',phone='$data{'phone'}'
- WHERE borrowernumber='$guarantees->[$i]->{'borrowernumber'}'
+ SET address=?,fax=?,B_city=?,mobile=?,city=?,phone=?
+ WHERE borrowernumber=?
|;
- my $sth3 = $dbh->prepare($guaquery);
- $sth3->execute;
+ my $sth = $dbh->prepare($guaquery);
+ $sth->execute($data{'address'},$data{'fax'},$data{'B_city'},$data{'mobile'},$data{'city'},$data{'phone'},$guarantee->{'borrowernumber'});
}
}
=head2 GetPendingIssues
diff --git a/C4/Patroncards/Patroncard.pm b/C4/Patroncards/Patroncard.pm
index 20939768bb..23cba15005 100644
--- a/C4/Patroncards/Patroncard.pm
+++ b/C4/Patroncards/Patroncard.pm
@@ -83,8 +83,8 @@ sub draw_text {
my ($self, $pdf, %params) = @_;
warn sprintf('No pdf object passed in.') and return -1 if !$pdf;
my @card_text = ();
+ return unless (ref($self->{'layout'}->{'text'}) eq 'ARRAY'); # just in case there is not text
my $text = [@{$self->{'layout'}->{'text'}}]; # make a copy of the arrayref *not* simply a pointer
- return unless (ref($text) eq 'ARRAY'); # just in case there is not text
while (scalar @$text) {
my $line = shift @$text;
my $parse_line = $line;
diff --git a/C4/Search.pm b/C4/Search.pm
index 8434886bc4..d36459a803 100644
--- a/C4/Search.pm
+++ b/C4/Search.pm
@@ -1426,12 +1426,11 @@ sub searchResults {
# loop through all of the records we've retrieved
for ( my $i = $offset ; $i <= $times - 1 ; $i++ ) {
my $marcrecord = MARC::File::USMARC::decode( $marcresults[$i] );
- if ($bibliotag<10){
- $fw = GetFrameworkCode($marcrecord->field($bibliotag)->data);
- }else{
- $fw = GetFrameworkCode($marcrecord->subfield($bibliotag,$bibliosubf));
- }
-
+ $fw = $scan
+ ? undef
+ : $bibliotag < 10
+ ? GetFrameworkCode($marcrecord->field($bibliotag)->data)
+ : GetFrameworkCode($marcrecord->subfield($bibliotag,$bibliosubf));
my $oldbiblio = TransformMarcToKoha( $dbh, $marcrecord, $fw );
$oldbiblio->{subtitle} = GetRecordValue('subtitle', $marcrecord, $fw);
$oldbiblio->{result_number} = $i + 1;
@@ -2573,7 +2572,7 @@ AND (authtypecode IS NOT NULL AND authtypecode<>\"\")|);
#There are no results, build authority record, add it to Authorities, get authid and add it to 9
###NOTICE : This is only valid if a subfield is linked to one and only one authtypecode
###NOTICE : This can be a problem. We should also look into other types and rejected forms.
- my $authtypedata=C4::AuthoritiesMarc->GetAuthType($data->{authtypecode});
+ my $authtypedata=C4::AuthoritiesMarc::GetAuthType($data->{authtypecode});
next unless $authtypedata;
my $marcrecordauth=MARC::Record->new();
my $authfield=MARC::Field->new($authtypedata->{auth_tag_to_report},'','',"a"=>"".$field->subfield('a'));
diff --git a/C4/Serials.pm b/C4/Serials.pm
index 032246c4e8..32e46becae 100644
--- a/C4/Serials.pm
+++ b/C4/Serials.pm
@@ -287,10 +287,10 @@ sub UpdateClaimdateIssues {
my $dbh = C4::Context->dbh;
$date = strftime( "%Y-%m-%d", localtime ) unless ($date);
my $query = "
- UPDATE serial SET claimdate=$date,status=7
- WHERE serialid in (" . join( ",", @$serialids ) . ")";
+ UPDATE serial SET claimdate = ?, status = 7
+ WHERE serialid in (" . join( ",", map { '?' } @$serialids ) . ")";
my $rq = $dbh->prepare($query);
- $rq->execute;
+ $rq->execute($date, @$serialids);
return $rq->rows;
}
@@ -2082,15 +2082,15 @@ returns a count of items from serial matching the subscriptionid
sub HasItems {
my ($subscriptionid) = @_;
my $dbh = C4::Context->dbh;
- my $query = qq|
+ my $query = q|
SELECT COUNT(serialitems.itemnumber)
FROM serial
LEFT JOIN serialitems USING(serialid)
- WHERE subscriptionid=? AND serialitems.serialid NOT NULL
+ WHERE subscriptionid=? AND serialitems.serialid IS NOT NULL
|;
my $sth=$dbh->prepare($query);
$sth->execute($subscriptionid);
- my ($countitems)=$sth->fetchrow;
+ my ($countitems)=$sth->fetchrow_array();
return $countitems;
}
diff --git a/C4/VirtualShelves.pm b/C4/VirtualShelves.pm
index fa599bd162..715cace268 100644
--- a/C4/VirtualShelves.pm
+++ b/C4/VirtualShelves.pm
@@ -40,7 +40,7 @@ BEGIN {
@ISA = qw(Exporter);
@EXPORT = qw(
&GetShelves &GetShelfContents &GetShelf
- &AddToShelf &AddToShelfFromBiblio &AddShelf
+ &AddToShelf &AddShelf
&ModShelf
&ShelfPossibleAction
&DelFromShelf &DelShelf
@@ -67,7 +67,7 @@ C4::VirtualShelves - Functions for manipulating Koha virtual virtualshelves
This module provides functions for manipulating virtual virtualshelves,
including creating and deleting virtualshelves, and adding and removing
-items to and from virtualshelves.
+bibs to and from virtualshelves.
=head1 FUNCTIONS
@@ -237,7 +237,7 @@ sub GetShelf ($) {
=head2 GetShelfContents
- $itemlist = &GetShelfContents($shelfnumber);
+ $biblist = &GetShelfContents($shelfnumber);
Looks up information about the contents of virtual virtualshelves number
C<$shelfnumber>. Sorted by a field in the biblio table. copyrightdate
@@ -331,8 +331,8 @@ sub AddShelf {
&AddToShelf($biblionumber, $shelfnumber);
-Adds item number C<$biblionumber> to virtual virtualshelves number
-C<$shelfnumber>, unless that item is already on that shelf.
+Adds bib number C<$biblionumber> to virtual virtualshelves number
+C<$shelfnumber>, unless that bib is already on that shelf.
=cut
@@ -364,42 +364,6 @@ sub AddToShelf {
$sth->execute( $shelfnumber );
}
-=head2 AddToShelfFromBiblio
-
- &AddToShelfFromBiblio($biblionumber, $shelfnumber)
-
-this function allow to add a virtual into the shelf number $shelfnumber
-from biblionumber.
-
-=cut
-
-sub AddToShelfFromBiblio {
- my ( $biblionumber, $shelfnumber ) = @_;
- return unless $biblionumber;
- my $query = qq(
- SELECT *
- FROM virtualshelfcontents
- WHERE shelfnumber=? AND biblionumber=?
- );
- my $sth = $dbh->prepare($query);
- $sth->execute( $shelfnumber, $biblionumber );
- unless ( $sth->rows ) {
- my $query =qq(
- INSERT INTO virtualshelfcontents
- (shelfnumber, biblionumber, flags)
- VALUES
- (?, ?, 0)
- );
- $sth = $dbh->prepare($query);
- $sth->execute( $shelfnumber, $biblionumber );
- $query = qq(UPDATE virtualshelves
- SET lastmodified = CURRENT_TIMESTAMP
- WHERE shelfnumber = ?);
- $sth = $dbh->prepare($query);
- $sth->execute( $shelfnumber );
- }
-}
-
=head2 ModShelf
ModShelf($shelfnumber, $hashref)
@@ -486,8 +450,8 @@ sub ShelfPossibleAction {
&DelFromShelf( $biblionumber, $shelfnumber);
-Removes item number C<$biblionumber> from virtual virtualshelves number
-C<$shelfnumber>. If the item wasn't on that virtualshelves to begin with,
+Removes bib number C<$biblionumber> from virtual virtualshelves number
+C<$shelfnumber>. If the bib wasn't on that virtualshelves to begin with,
nothing happens.
=cut
diff --git a/C4/VirtualShelves/Page.pm b/C4/VirtualShelves/Page.pm
index 73ca42db8f..9d158472b7 100644
--- a/C4/VirtualShelves/Page.pm
+++ b/C4/VirtualShelves/Page.pm
@@ -89,7 +89,8 @@ sub shelfpage ($$$$$) {
if ( $shelfnumber = $query->param('viewshelf') ) {
if ( ShelfPossibleAction( $loggedinuser, $shelfnumber, 'manage' ) ) {
if ( $barcode = $query->param('addbarcode') ) {
- if ( $item = GetItem( 0, $barcode ) ) {
+ $item = GetItem( 0, $barcode );
+ if (defined $item && $item->{'itemnumber'}){
$biblio = GetBiblioFromItemNumber( $item->{'itemnumber'} );
AddToShelf( $biblio->{'biblionumber'}, $shelfnumber )
or push @paramsloop, { duplicatebiblio => $barcode };
diff --git a/INSTALL.debian b/INSTALL.debian
index e90942b833..aa53f6a5c2 100644
--- a/INSTALL.debian
+++ b/INSTALL.debian
@@ -7,7 +7,7 @@ Some parts copyright 2010 Chris Nighswonger
Feedback/bug reports: Koha Developer's List:
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
-This document last modified: 19 May 2010
+This document last modified: October 8, 2010
Installation Instructions
=============================
@@ -19,9 +19,9 @@ as indicated or by running the command directly as root.
1.1 Install Debian Lenny via Businesscard CD
-See http://www.debian.org/releases/lenny/debian-installer/
+ See http://www.debian.org/releases/lenny/debian-installer/
-1.3 Set up Indexdata apt sources for Yaz and Zebra packages
+1.2 Set up Indexdata apt sources for Yaz and Zebra packages
Edit your /etc/apt/sources.list file and add the following:
@@ -31,30 +31,33 @@ Edit your /etc/apt/sources.list file and add the following:
The Index Data packages are signed with a key you can install as follows:
- $ wget http://ftp.indexdata.dk/debian/indexdata.asc
- $ sudo apt-key add indexdata.asc
+ $ wget -O- http://ftp.indexdata.dk/debian/indexdata.asc | sudo apt-key add -
-1.4 Get Koha
+Finally, update your apt sources:
+ $ sudo apt-get update
-1.4.1 Option A: Download Koha via Git (optional)
+1.3 Get Koha
+Choose one of these options:
+
+1.3.1 Option A: Download Koha via Git (optional)
$ sudo apt-get install git-core git-email
- $ git clone git://git.koha-community.org/pub/scm/koha.git kohaclone
- $ cd kohaclone
+ $ git clone git://git.koha-community.org/koha.git koha
+ $ cd koha
$ git checkout -b myinstall origin
Note: for more information about Git, please see the Koha Git Usage Guide:
http://wiki.koha-community.org/wiki/Version_Control_Using_Git
-1.4.2 Option B: Download Koha from http://download.koha-community.org
+1.3.2 Option B: Download Koha from http://download.koha-community.org
Find the latest Koha stable version on http://download.koha-community.org
and get it:
$ wget found on download.koha-community.org
-1.5 Install additional Debian dependencies
+1.4 Install additional Debian dependencies
IMPORTANT: You should only use CPAN for Perl dependencies which are NOT
available from the package maintainer. You have been warned!
@@ -64,20 +67,21 @@ Zebra and all Debian packaged Perl module required by Koha:
$ sudo install_misc/apt-get-debian-lenny.sh
-1.6 Install Perl dependencies that aren't packaged into Debian Lenny
+1.5 Install Perl dependencies that aren't packaged into Debian Lenny
sources
Run the following command:
- $ sudo cpan Algorithm::CheckDigits SMS::Send HTTP::OAI IPC::Cmd \\
- Memoize::Memcached PDF::API2::Simple PDF::Table Storable Test::More \\
- Locale::Currency::Format
+ $ sudo cpan Algorithm::CheckDigits SMS::Send HTTP::OAI IPC::Cmd \
+ Memoize::Memcached PDF::API2::Simple PDF::Table Storable Test::More \
+ Locale::Currency::Format DateTime Lingua::Stem::Snowball Text::CSV::Encoded \
+ UNIVERSAL::require YAML Authen::CAS::Client
Note: you may need to run CPAN initialization if you've not run cpan
before:
/etc/perl/CPAN/Config.pm initialized.
-
+
CPAN is the world-wide archive of perl resources. It consists of about
100 sites that all replicate the same contents all around the globe.
Many countries have at least one CPAN site already. The resources
@@ -94,23 +98,20 @@ When the configuration is completed CPAN will install the Perl modules.
2. Configuration of dependencies
-2.1 Update root MySQL password (if dselect didn't do it for you already)
+2.1 Create the Koha database
- $ sudo mysqladmin password
-
-2.2 Create the Koha database
-
- Create the database and user with associated privileges:
+ Create the database and user with associated privileges (information inside <> brackets is
+ data you assign specifically to your installation. Do not include the <>'s when entering the commands):
$ mysqladmin -uroot -p create
$ mysql -uroot -p
-
+
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 5.0.51a-24 (Debian)
-
+
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
-
+
mysql> grant all on .* to ''@'localhost' identified by '';
Query OK, 0 rows affected (0.00 sec)
@@ -119,37 +120,64 @@ When the configuration is completed CPAN will install the Perl modules.
mysql> quit
-2.3 Test your SAX Parser and correct where necessary
+You may want to document the database name, the database username, and the database password you just set.
+Step 3 will require them.
-You must be sure you're using the XML::LibXML SAX parser, not Expat or
-PurePerl, both of which have outstanding bugs with pre-composed characters.
+2.2 Test your SAX Parser and correct where necessary
+
+You must be sure you're using the XML::LibXML SAX parser, not Expat or
+PurePerl, both of which have outstanding bugs with pre-composed characters.
You can test your SAX parser by running:
$ cd koha
$ misc/sax_parser_print.pl
- You should see something like::
+You should see something like:
XML::LibXML::SAX::Parser=HASH(0x81fe220)
- If you're using PurePerl or Expat, you'll need to edit your
- ini file, typically located at:
+If you are configured to use PurePerl or Expat, the script will say you have a problem and
+you'll need to edit your ini file to correct it.
+
+The file is typically located at:
/etc/perl/XML/SAX/ParserDetails.ini
+The correct parser entry will need to be moved to the bottom of the file.
+The following is the entry you are looking for:
+
+ [XML::LibXML::SAX::Parser]
+ http://xml.org/sax/features/namespaces = 1
+
+2.3 Create your Koha system user (if you haven't created one already)
+
+ $ sudo adduser koha
+
+You can substitute any username for "koha," just be sure to write it down, you will need to know what it is in step 3.
3. Run the Koha installer
$ perl Makefile.PL
- ( answer questions )
+ ( answer questions )
$ make
$ make test
$ sudo make install
+3.1 Export the environment variables
+Make install will tell you what the proper path for these environment variables is.
+In case you missed it at the end of make install, here are some examples:
+
+Example (for standard install):
+ $ export KOHA_CONF=/etc/koha/koha-conf.xml
+ $ export PERL5LIB=/usr/share/koha/lib
+
+Example (for dev install. These paths are set during Makefile.PL.):
+ $ export KOHA_CONF=/path/to/your/koha-conf.xml
+ $ export PERL5LIB=/path/to/koha/lib
+
4. Configure and start Apache
$ sudo ln -s /etc/koha/koha-httpd.conf /etc/apache2/sites-available/koha
- (note that the path to koha-httpd.conf may be different depending on your
- installation choices)
+(note that the path to koha-httpd.conf may be different if you chose a dev install)
Add the following lines to /etc/apache2/ports.conf:
@@ -163,75 +191,98 @@ Run the following commands:
$ sudo apache2ctl restart
Note: you may still see the usual Apache default site if your VirtualHost
-configuration isn't correct. The command "sudo a2dissite default" may be a
-quick fix, but may have side-effects. See the Apache HTTPD manual section on
-virtual hosts for full instructions.
+ configuration isn't correct. If Koha is the only web application running on the server,
+ the command "sudo a2dissite default" may be a quick fix. For servers running other sites
+ alongside Koha, see the Apache HTTPD manual section on virtual hosts for full
+ instructions (http://httpd.apache.org/docs/2.0/vhosts/).
-5. Configure and start Zebra
+5. Run the Web Installer, populate the database, initial configuration of settings
+
+Point your browser to http://:8080/
+
+Note: is (usually) the IP of your server, or localhost (if you are connecting
+ from the same machine Koha is installed on. You can verify the location by checking
+ the VirtualHost settings for both the opac and intranet virtual hosts in koha-httpd.conf
+
+Koha will redirect you to the Web Installer where you can continue the setup. You will be prompted to enter in your DATABASE username and password. It is through this interface
+that
+you can install the sample data for libraries, patrons, and much more.
+
+Be aware that removing sample data at a later time (when you may want to take the
+server into production) may not be easy, and if your intent is to take this
+install from testing to production, go with minimal sample data (no patrons or bibliographic records).
+
+6. Configure and start Zebra
Note: it's recommended that you daemonize the Zebra process and add it to your
-startup profile. For a non-production test/development installation, running
-Zebra from the command line can be useful. Pick from the two available options
-below, or roll your own :-)
+ startup profile. For a non-production test/development installation, running
+ Zebra from the command line can be useful. Pick one of the options below (or roll your own).
Note: it's also recommended that you create a Koha system user, which you will
-have specified during the install process. Alternatively, Zebra can be
-configured to run as the root user.
+ have specified during the install process. Alternatively, Zebra can be
+ configured to run as the root user.
-Option 1: run the Zebra processes from the command line:
+Option 1: run the Zebra processes from the command line (manual indexing):
-1.1 Zebra Search Server
+6.1.1 Zebra Search Server
This process send responses to search requests sent by Koha or
Z39.50/SRU/SRW clients.
- $ sudo -u ${KOHA_USER} zebrasrv -f /etc/koha/koha-conf.xml
- (note that the path to koha-conf.xml may be different depending on your
- installation choices)
+ $ sudo -u zebrasrv -f /etc/koha/koha-conf.xml
+ (note that the path to koha-conf.xml may be different if you chose a dev install, and that
+ refers to the user you set up in step 2.3)
Note: the user you run Zebra as will be the only user with write permission
on the Zebra index; in development mode, you may wish to use your
system user.
-1.2 Zebra Indexer
+
+6.1.2 Zebra Indexer
Added/updated/deleted records in Koha MySQL database must be indexed
into Zebra. A specific script must be launched each time a bibliographic
or an authority record is edited.
- $ sudo -u ${KOHA_USER} misc/migration_tools/rebuild_zebra -z -b -a
- NOTE: This script should be run as the kohauser (the default is 'koha').
+ $ sudo -u misc/migration_tools/rebuild_zebra.pl -z -b -a
-Option 2: run automatically Zebra process as a daemon:
+Note: This script should be run as the kohauser (the default is 'koha', but
+this is the user you set up in step 2.3).
-Note that references to $SCRIPT_DIR refer to the directory where
-Koha's command-line scripts are installed, e.g., /usr/share/koha/bin.
+Option 2: run the Zebra process as a daemon (automatic indexing):
-1.1 Zebra Search Server
+Note: References to refer to the directory where
+ Koha's command-line scripts are installed, the path
+ is /usr/share/koha/bin/ by default in a standard install.
- $ sudo ln -s ${SCRIPT_DIR}/koha-zebra-ctl.sh /etc/init.d/koha-zebra-daemon
- (Note: ${SCRIPT_DIR} is /usr/share/koha/bin/ by default in a standard install)
+6.2.1 Zebra Search Server
+
+ $ sudo ln -s /koha-zebra-ctl.sh /etc/init.d/koha-zebra-daemon
+ (Note: is /usr/share/koha/bin/ by default in a standard install)
$ sudo update-rc.d koha-zebra-daemon defaults
- ( Note: see man chkconfig(8) on other distros )
- $ sudo ${SCRIPT_DIR}/koha-zebra-ctl.sh start
+ $ sudo /koha-zebra-ctl.sh start
+ (Note: is /usr/share/koha/bin/ by default in a standard install)
-1.2 Zebra Indexer
-Add an entry in Koha user crontab to scheduled added/updated/deleted records
-indexing by Zebra with this command:
+6.2.2 Zebra Indexer
- /misc/migration_tools/rebuild_zebra -z -b -a
+Add an entry in Koha user crontab to process scheduled added/updated/deleted records
+indexing by Zebra. cronjobs/crontab.example contains examples for these cron jobs (and many more).
-See check misc/cronjobs/crontab.example for usage examples.
-NOTE: This job should be setup under the kohauser (the default is 'koha').
+NOTE: The cronjobs should be setup under the kohauser (the default is 'koha', but
+this is the user you set up in step 2.3).
-6. Run the Web Installer, populate the database, initial configuration of settings
+Edit the crontab for the koha user by running
+ $ sudo -u crontab -e
- Point your browser to http://:8080/
+For Zebra indexing, you are looking for the example that begins with
+
+ # ZEBRA INDEX UPDATES with -z option, incremental index updates throughout the day
+ # for both authorities and bibs
+
+It may be easiest to copy/paste the example into your own crontab and modify as necessary.
- It should redirect you to the Web Installer where you can continue the setup.
- You can install the sample data for libraries, patrons, etc. via the Web Installer
7. What next?
@@ -256,12 +307,12 @@ Authority data in MARC21 format
$ misc/migration_tools/rebuild_zebra.pl -b -w
Once the indexing has completed, you will be able to search for records in your system.
- NOTE: This script should be run as the kohauser (the default is 'koha').
+ NOTE: This script should be run as the kohauser (the default is 'koha', this is the user we set up in step 2.3).
7.3 Schedule regular index updates
You need to run rebuild_zebra.pl -b -a -z as a regular cron job in orde to pick up new bibs
and items as you add them. Check misc/cronjobs/crontab.example for usage examples. See 7.0 above.
- NOTE: This job should be setup under the kohauser (the default is 'koha').
+ NOTE: This job should be setup under the kohauser (the default is 'koha', this is the user we set up in step 2.3).
7.4 To enable public Z39.50/SRU servers, you'll need to edit your koha-conf.xml and
change the options to listen on a TCP port; then restart the zebra daemon.
@@ -318,3 +369,4 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
+
diff --git a/INSTALL.ubuntu b/INSTALL.ubuntu
index 771a8424f8..9b654fa602 100644
--- a/INSTALL.ubuntu
+++ b/INSTALL.ubuntu
@@ -156,6 +156,8 @@ When the configuration is completed CPAN will install the Perl modules.
/etc/perl/XML/SAX/ParserDetails.ini
+ You will need to move the entire section for '[XML::LibXML::SAX::Parser]' to the bottom of the ini file.
+
2.4 Install DBD::mysql Perl module
In order to handle UTF-8 correctly, Koha requires at least version 4.004
diff --git a/INSTALL.ubuntu.lucid b/INSTALL.ubuntu.lucid
new file mode 100644
index 0000000000..7ad39da9f1
--- /dev/null
+++ b/INSTALL.ubuntu.lucid
@@ -0,0 +1,358 @@
+=============================
+Installation Guide for Installing Koha on Ubuntu Lucid Lynx (10.04 LTS) with MySQL 5
+=============================
+
+Copyright (C) 2007, 2008 LibLime (http://liblime.com)
+Some parts copyright 2010 Chris Nighswonger
+
+Original author: Joshua Ferraro
+Modified for Ubuntu by: Chris Nighswonger (cnighswonger AT foundations DOT edu)
+
+Feedback/bug reports: Koha Developer's List:
+http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
+
+This document last modified: 11 Sep 2010
+
+Installation Instructions
+=============================
+
+All commands can be performed as a system user with sudo privileges,
+as indicated or by running the command directly as root.
+
+1. Prepare System and Install Dependencies
+
+1.1 Install Ubuntu Lucid Lynx via CD
+
+See http://www.ubuntu.com/getubuntu/download
+
+1.2 Set up your locale
+
+Your locale should be set to UTF-8, as should Apache2 and MySQL 5.
+This step is VERY IMPORTANT for a UNICODE compliant system. Please
+read over the following document carefully:
+
+http://wiki.koha.org/doku.php?id=encodingscratchpad
+
+You can verify your system locale by typing the following command:
+
+ $ locale
+
+IMPORTANT: You _MUST_ follow all the steps outlined there for
+ Apache2, MySQL 5, etc. BEFORE you install Koha.
+
+1.3 Get Koha
+
+1.3.1 Option A: Download Koha via Git (optional)
+
+ $ sudo apt-get install git-core git-email
+ $ git clone git://git.koha-community.org/pub/scm/koha.git kohaclone
+ $ cd kohaclone
+ $ git checkout -b myinstall origin
+
+Note: for more information about Git, please see the Koha Git Usage Guide:
+
+ http://wiki.koha-community.org/wiki/Version_Control_Using_Git
+
+1.3.2 Option B: Download Koha from http://download.koha-community.org
+
+ $ wget http://download.koha-community.org/koha-3.02.00.tar.gz
+ ( Note: use the latest stable version)
+
+1.4 Install additional Ubuntu dependencies
+
+IMPORTANT: You should only use CPAN for Perl dependencies which are NOT
+ available from the package maintainer. You have been warned!
+
+Using the ubuntu.packages file included in the Koha source tree,
+run the following:
+
+ $ sudo dpkg --set-selections < install_misc/ubuntu.packages
+
+Now start dselect (you may need to 'sudo apt-get install dselect'):
+
+ $ sudo dselect
+
+Choose [I]nstall and accept packages to be installed (hit return)
+
+(may take a while)
+
+Choose [C]onfigure, [R]emove and [Q]uit until dselect has completed.
+
+Note: If you are installing on an older version of Ubuntu, not all of the
+ packages listed in ubuntu.packages may be available as packages. You
+ will want to verify which ones are installed and which ones not.
+ This can be done by running the following command:
+
+ $ install_misc/ubuntu-pkg-check.sh | grep none
+
+When tracking down any "(none)" results, note that sometimes Ubuntu does the
+right thing and installs a later, differently named version of the package in
+place. To see if this is happening, it is useful to run a command like:
+
+ $ dpkg --get-selections | grep [base_package_name]
+
+1.5 Install Perl dependencies that aren't packaged into Ubuntu Lucid Lynx
+sources
+
+Run the following command:
+
+ $ sudo cpan HTTP::OAI Locale::Currency::Format Memoize::Memcached \
+ PDF::API2::Simple Storable Text::CSV::Encoded
+
+Note: you may need to run CPAN initialization if you've not run cpan
+before:
+
+ /etc/perl/CPAN/Config.pm initialized.
+
+ CPAN is the world-wide archive of perl resources. It consists of about
+ 100 sites that all replicate the same contents all around the globe.
+ Many countries have at least one CPAN site already. The resources
+ found on CPAN are easily accessible with the CPAN.pm module. If you
+ want to use CPAN.pm, you have to configure it properly.
+
+ If you do not want to enter a dialog now, you can answer 'no' to this
+ question and I'll try to autoconfigure. (Note: you can revisit this
+ dialog anytime later by typing 'o conf init' at the cpan prompt.)
+
+ Are you ready for manual configuration? [yes]
+
+When the configuration is completed CPAN will install the Perl modules.
+
+2. Configuration of dependencies
+
+2.1 Update root MySQL password (if dselect didn't do it for you already)
+
+ $ sudo mysqladmin password
+
+2.2 Create the Koha database
+
+ Create the database and user with associated privileges:
+
+ $ mysqladmin -uroot -p create
+ $ mysql -uroot -p
+
+ Welcome to the MySQL monitor. Commands end with ; or \g.
+ Your MySQL connection id is 22
+ Server version: 5.0.32-Debian_7etch3-log Debian etch distribution
+
+ Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
+
+ mysql> grant all on .* to ''@'localhost' identified by '';
+ Query OK, 0 rows affected (0.00 sec)
+
+ mysql> flush privileges;
+ Query OK, 0 rows affected (0.00 sec)
+
+ mysql> quit
+
+2.3 Test your SAX Parser and correct where necessary
+
+ You must be sure you're using the XML::LibXML SAX parser, not Expat or
+ PurePerl, both of which have outstanding bugs with pre-composed
+ characters. You can test your SAX parser by running:
+
+ $ cd koha
+ $ misc/sax_parser_print.pl
+
+ You should see something like::
+
+ XML::LibXML::SAX::Parser=HASH(0x81fe220)
+
+ If you're using PurePerl or Expat, you'll need to edit your
+ ini file, typically located at:
+
+ /etc/perl/XML/SAX/ParserDetails.ini
+
+ You will need to move the entire section for '[XML::LibXML::SAX::Parser]'
+ to the bottom of the ini file.
+
+3. Run the Koha installer
+
+ $ perl Makefile.PL
+ ( answer questions )
+ $ make
+ $ make test
+ $ sudo make install
+
+4. Configure and start Apache
+ $ sudo ln -s /etc/koha/koha-httpd.conf /etc/apache2/sites-available/koha
+ (note that the path to koha-httpd.conf may be different depending on your
+ installation choices)
+
+Add the following lines to /etc/apache2/ports.conf:
+
+ Listen 80
+ Listen 8080
+
+If not running named virtual hosts (The default koha installation does not use
+named virtual hosts.), comment out the following line:
+
+ NameVirtualHost *:80
+
+Run the following commands:
+
+ $ sudo a2enmod rewrite
+ $ sudo a2ensite koha
+ $ sudo apache2ctl restart
+
+Note: you may still see the usual Apache default site if your VirtualHost
+configuration isn't correct. The command "sudo a2dissite default" may be a
+quick fix, but may have side-effects. See the Apache HTTPD manual section on
+virtual hosts for full instructions.
+
+5. Configure and start Zebra
+
+Note: it's recommended that you daemonize the Zebra process and add it to your
+startup profile. For a non-production test/development installation, running
+Zebra from the command line can be useful. Pick from the two available options
+below, or roll your own :-)
+
+Note: it's also recommended that you create a Koha system user, which you will
+have specified during the install process. Alternatively, Zebra can be
+configured to run as the root user.
+
+To add a user do:
+
+ $ sudo adduser koha
+
+Option 1: run the Zebra processes from the command line:
+
+1.1 Zebra Search Server
+
+This process send responses to search requests sent by Koha or
+Z39.50/SRU/SRW clients.
+
+ $ sudo -u ${KOHA_USER} zebrasrv -f /etc/koha/koha-conf.xml
+ (note that the path to koha-conf.xml may be different depending on your
+ installation choices)
+
+Note: the user you run Zebra as will be the only user with write permission
+ on the Zebra index; in development mode, you may wish to use your
+ system user.
+
+1.2 Zebra Indexer
+
+Added/updated/deleted records in Koha MySQL database must be indexed
+into Zebra. A specific script must be launched each time a bibliographic
+or an authority record is edited.
+
+ $ sudo -u ${KOHA_USER} misc/migration_tools/rebuild_zebra -z -b -a
+ NOTE: This script should be run as the kohauser (the default is 'koha').
+
+Option 2: run the Zebra process as a daemon, and add to startup process:
+
+Note that references to $SCRIPT_DIR refer to the directory where
+Koha's command-line scripts are installed, e.g., /usr/share/koha/bin.
+
+1.1 Zebra Search Server
+
+ $ sudo ln -s ${SCRIPT_DIR}/koha-zebra-ctl.sh /etc/init.d/koha-zebra-daemon
+ (Note: ${SCRIPT_DIR} is /usr/share/koha/bin/ by default in a standard install)
+ $ sudo update-rc.d koha-zebra-daemon defaults
+ ( Note: see man chkconfig(8) on other distros )
+
+ $ sudo ${SCRIPT_DIR}/koha-zebra-ctl.sh start
+
+1.2 Zebra Indexer
+
+Add an entry in Koha user crontab to scheduled added/updated/deleted records
+indexing by Zebra with this command:
+
+ /misc/migration_tools/rebuild_zebra -z -b -a
+
+See check misc/cronjobs/crontab.example for usage examples.
+NOTE: This job should be setup under the kohauser (the default is 'koha').
+
+6. Run the Web Installer, populate the database, initial configuration of settings
+
+ Point your browser to http://:8080/
+
+ It should redirect you to the Web Installer where you can continue the setup.
+ You can install the sample data for libraries, patrons, etc. via the Web Installer
+
+7. What next?
+
+ Once the installer has completed, you can import and index MARC records from the
+ command line thusly (Note: you can also use the 'Stage MARC records for import' from
+ the Tools area of Koha's Staff Client to import a batch of MARC records):
+
+ $ export KOHA_CONF=/usr/share/koha/etc/koha-conf.xml
+ (note: use the correct path to your koha-conf.xml)
+
+7.1 Import:
+ Bibliographic data in MARC21 format
+ $ misc/migration_tools/bulkmarcimport.pl -file /path/to/marc.iso2709
+ Authority data in MARC21 format
+ $ misc/migration_tools/bulkauthimport.pl -file /path/to/auth.iso2709
+
+7.2 Fast Index:
+ $ misc/migration_tools/rebuild_zebra.pl -b -w
+
+ Once the indexing has completed, you will be able to search for records in your system.
+ NOTE: This script should be run as the kohauser (the default is 'koha').
+
+7.3 Schedule regular index updates
+
+ You need to run rebuild_zebra.pl -b -a -z as a regular cron job in orde to pick up new bibs
+ and items as you add them. Check misc/cronjobs/crontab.example for usage examples. See 7.0 above.
+ NOTE: This job should be setup under the kohauser (the default is 'koha').
+
+7.4 To enable public Z39.50/SRU servers, you'll need to edit your koha-conf.xml and
+ change the options to listen on a TCP port; then restart the zebra daemon.
+
+UPGRADE
+=======
+If you are upgrading from a previous installation of Koha 3, you can
+use the following:
+
+ perl Makefile.PL --prev-install-log /path/to/koha-install-log
+ make
+ make test
+ sudo make upgrade
+
+Uninstall Instructions
+=============================
+1) Stop Services:
+ $ sudo a2dissite koha
+ $ sudo rm /etc/apache2/sites-available/koha
+ $ sudo apache2ctl restart
+
+ $ sudo update-rc.d koha-zebra-daemon remove
+ $ sudo rm /etc/init.d/koha-zebra-daemon
+
+2) Remove Database and Indexes
+
+ # MySQL
+ $ mysql -u -p
+ > drop database koha;
+
+ # Zebra Indexes
+ $ zebraidx -c /etc/zebradb/zebra-biblios.cfg -g iso2709 -d biblios init
+ $ zebraidx -c /etc/zebradb/zebra-authorities.cfg -g iso2709 -d authorities init
+
+3) Remove Koha Install Directories and Configuration Files
+ Don't forget about any crontab entries
+
+Tested on the following operating environments
+==============================================
+- Ubuntu Jaunty Jackalope 9.04
+
+Installer Bug reports
+=====================
+Please log any installer bug reports at http://bugs.koha-community.org
+
+Other Notes
+=====================
+This file is part of Koha
+
+Koha is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+
+Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+You should have received a copy of the GNU General Public License along
+with Koha; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
diff --git a/acqui/addorder.pl b/acqui/addorder.pl
index 2ab5252bc6..94560c4eac 100755
--- a/acqui/addorder.pl
+++ b/acqui/addorder.pl
@@ -189,17 +189,18 @@ my $bibitemnum;
if ( $orderinfo->{quantity} ne '0' ) {
#TODO:check to see if biblio exists
unless ( $$orderinfo{biblionumber} ) {
-
#if it doesnt create it
my $record = TransformKohaToMarc(
{
"biblio.title" => "$$orderinfo{title}",
- "biblio.author" => "$$orderinfo{author}",
+ "biblio.author" => $$orderinfo{author} ? $$orderinfo{author} : "",
"biblio.seriestitle" => $$orderinfo{series} ? $$orderinfo{series} : "",
"biblioitems.isbn" => $$orderinfo{isbn} ? $$orderinfo{isbn} : "",
"biblioitems.publishercode" => $$orderinfo{publishercode} ? $$orderinfo{publishercode} : "",
"biblioitems.publicationyear" => $$orderinfo{publicationyear} ? $$orderinfo{publicationyear}: "",
+ "biblio.copyrightdate" => $$orderinfo{publicationyear} ? $$orderinfo{publicationyear}: "",
});
+
# create the record in catalogue, with framework ''
my ($biblionumber,$bibitemnum) = AddBiblio($record,'');
# change suggestion status if applicable
diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl
index a580ae778a..6c1045934e 100755
--- a/acqui/neworderempty.pl
+++ b/acqui/neworderempty.pl
@@ -340,7 +340,7 @@ $template->param(
orderexists => ( $new eq 'yes' ) ? 0 : 1,
title => $data->{'title'},
author => $data->{'author'},
- publicationyear => $data->{'publicationyear'},
+ publicationyear => $data->{'publicationyear'} ? $data->{'publicationyear'} : $data->{'copyrightdate'},
budget_loop => $budget_loop,
isbn => $data->{'isbn'},
seriestitle => $data->{'seriestitle'},
diff --git a/acqui/z3950_search.pl b/acqui/z3950_search.pl
index 444c893dc4..0215873c1e 100755
--- a/acqui/z3950_search.pl
+++ b/acqui/z3950_search.pl
@@ -54,6 +54,7 @@ my $author = $input->param('author');
my $isbn = $input->param('isbn');
my $issn = $input->param('issn');
my $lccn = $input->param('lccn');
+my $lccall = $input->param('lccall');
my $subject= $input->param('subject');
my $dewey = $input->param('dewey');
my $op = $input->param('op');
@@ -114,6 +115,7 @@ if ( $op ne "do_search" ) {
isbn => $isbn,
issn => $issn,
lccn => $lccn,
+ lccall => $lccall,
title => $title,
author => $author,
serverloop => $serverloop,
@@ -158,6 +160,10 @@ else {
$query .= " \@attr 1=9 $lccn ";
$nterms++;
}
+ if ($lccall) {
+ $query .= " \@attr 1=16 \@attr 2=3 \@attr 3=1 \@attr 4=1 \@attr 5=1 \@attr 6=1 \"$lccall\" ";
+ $nterms++;
+ }
for my $i (1..$nterms-1) {
$query = "\@and " . $query;
}
diff --git a/admin/preferences.pl b/admin/preferences.pl
index b5bcde8131..7fcf5fc647 100755
--- a/admin/preferences.pl
+++ b/admin/preferences.pl
@@ -266,7 +266,8 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
$lang = $template->param( 'lang' );
my $op = $input->param( 'op' ) || '';
my $tab = $input->param( 'tab' );
-$tab ||= 'local-use';
+$tab ||= 'acquisitions'; # Ideally this should be "local-use" but preferences.pl
+ # does not presently support local use preferences
my $highlighted;
diff --git a/admin/systempreferences.pl b/admin/systempreferences.pl
index 824b0582e5..411f434c45 100755
--- a/admin/systempreferences.pl
+++ b/admin/systempreferences.pl
@@ -801,7 +801,7 @@ if ( $op eq 'add_form' ) {
$row_data->{delete} = "$script_name?op=delete_confirm&searchfield=" . $results->[$i]{'variable'};
push( @loop_data, $row_data );
}
- $tab = ( $tab ? $tab : "Local Use" );
+ $tab = ( $tab ? $tab : "local-use" );
$template->param( loop => \@loop_data, $tab => 1 );
if ( $offset > 0 ) {
my $prevpage = $offset - $pagesize;
diff --git a/catalogue/detail.pl b/catalogue/detail.pl
index 85819c0455..4f6c23f6f0 100755
--- a/catalogue/detail.pl
+++ b/catalogue/detail.pl
@@ -106,7 +106,7 @@ my $dat = &GetBiblioData($biblionumber);
my $subscriptionsnumber = CountSubscriptionFromBiblionumber($biblionumber);
my @subscriptions = GetSubscriptions( $dat->{title}, $dat->{issn}, $biblionumber );
my @subs;
-$dat->{'serial'}=1 if $subscriptionsnumber;
+
foreach my $subscription (@subscriptions) {
my %cell;
my $serials_to_display;
@@ -212,7 +212,7 @@ $template->param(
itemdata_enumchron => $itemfields{enumchron},
itemdata_uri => $itemfields{uri},
itemdata_copynumber => $itemfields{copynumber},
- volinfo => $itemfields{enumchron} || $dat->{'serial'} ,
+ volinfo => $itemfields{enumchron},
z3950_search_params => C4::Search::z3950_search_args($dat),
C4::Search::enabled_staff_search_views,
);
diff --git a/catalogue/labeledMARCdetail.pl b/catalogue/labeledMARCdetail.pl
index de67677fb2..e72a6d115d 100755
--- a/catalogue/labeledMARCdetail.pl
+++ b/catalogue/labeledMARCdetail.pl
@@ -25,6 +25,7 @@ use C4::Auth;
use C4::Context;
use C4::Output;
use C4::Biblio;
+use C4::Items;
use C4::Search; # enabled_staff_search_views
my $query = new CGI;
@@ -51,7 +52,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
}
);
-$template->param( count => 1, bibliotitle => $biblio->{title} );
+#count of item linked
+my $itemcount = GetItemsCount($biblionumber);
+$template->param( count => $itemcount,
+ bibliotitle => $biblio->{title}, );
#Getting the list of all frameworks
my $queryfwk =
diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
index ea4daf93e1..6a50b9c62a 100755
--- a/cataloguing/additem.pl
+++ b/cataloguing/additem.pl
@@ -33,6 +33,8 @@ use C4::Dates;
use MARC::File::XML;
+my $dbh = C4::Context->dbh;
+
sub find_value {
my ($tagfield,$insubfield,$record) = @_;
my $result;
@@ -69,8 +71,27 @@ sub set_item_default_location {
}
}
+# NOTE: This code is subject to change in the future with the implemenation of ajax based autobarcode code
+# NOTE: 'incremental' is the ONLY autoBarcode option available to those not using javascript
+sub _increment_barcode {
+ my ($record, $frameworkcode) = @_;
+ my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode);
+ unless ($record->field($tagfield)->subfield($tagsubfield)) {
+ my $sth_barcode = $dbh->prepare("select max(abs(barcode)) from items");
+ $sth_barcode->execute;
+ my ($newbarcode) = $sth_barcode->fetchrow;
+ $newbarcode++;
+ # OK, we have the new barcode, now create the entry in MARC record
+ my $fieldItem = $record->field($tagfield);
+ $record->delete_field($fieldItem);
+ $fieldItem->add_subfields($tagsubfield => $newbarcode);
+ $record->insert_fields_ordered($fieldItem);
+ }
+ return $record;
+}
+
+
my $input = new CGI;
-my $dbh = C4::Context->dbh;
my $error = $input->param('error');
my $biblionumber = $input->param('biblionumber');
my $itemnumber = $input->param('itemnumber');
@@ -126,22 +147,8 @@ if ($op eq "additem") {
my $add_multiple_copies_submit = $input->param('add_multiple_copies_submit');
my $number_of_copies = $input->param('number_of_copies');
- # if autoBarcode is set to 'incremental', calculate barcode...
- # NOTE: This code is subject to change in 3.2 with the implemenation of ajax based autobarcode code
- # NOTE: 'incremental' is the ONLY autoBarcode option available to those not using javascript
if (C4::Context->preference('autoBarcode') eq 'incremental') {
- my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode);
- unless ($record->field($tagfield)->subfield($tagsubfield)) {
- my $sth_barcode = $dbh->prepare("select max(abs(barcode)) from items");
- $sth_barcode->execute;
- my ($newbarcode) = $sth_barcode->fetchrow;
- $newbarcode++;
- # OK, we have the new barcode, now create the entry in MARC record
- my $fieldItem = $record->field($tagfield);
- $record->delete_field($fieldItem);
- $fieldItem->add_subfields($tagsubfield => $newbarcode);
- $record->insert_fields_ordered($fieldItem);
- }
+ $record = _increment_barcode($record, $frameworkcode);
}
my $addedolditem = TransformMarcToKoha($dbh,$record);
@@ -164,22 +171,18 @@ if ($op eq "additem") {
# If we have to add & duplicate
if ($add_duplicate_submit) {
-
- # We try to get the next barcode
- use C4::Barcodes;
- my $barcodeobj = C4::Barcodes->new;
- my $barcodevalue = $barcodeobj->next_value($addedolditem->{'barcode'}) if $barcodeobj;
- my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode);
- if ($record->field($tagfield)->subfield($tagsubfield)) {
- # If we got the next codebar value, we put it in the record
- if ($barcodevalue) {
- $record->field($tagfield)->update($tagsubfield => $barcodevalue);
- # If not, we delete the recently inserted barcode from the record (so the user can input a barcode himself)
- } else {
- $record->field($tagfield)->update($tagsubfield => '');
- }
- }
$itemrecord = $record;
+ if (C4::Context->preference('autoBarcode') eq 'incremental') {
+ $itemrecord = _increment_barcode($itemrecord, $frameworkcode);
+ }
+ else {
+ # we have to clear the barcode field in the duplicate item record to make way for the new one generated by the javascript plugin
+ my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode);
+ my $fieldItem = $itemrecord->field($tagfield);
+ $itemrecord->delete_field($fieldItem);
+ $fieldItem->delete_subfields($tagsubfield);
+ $itemrecord->insert_fields_ordered($fieldItem);
+ }
}
# If we have to add multiple copies
@@ -433,7 +436,10 @@ foreach my $tag (sort keys %{$tagslib}) {
foreach my $thisbranch (@$branches) {
push @authorised_values, $thisbranch->{value};
$authorised_lib{$thisbranch->{value}} = $thisbranch->{branchname};
- # $value = $thisbranch->{value} if $thisbranch->{selected};
+ # in edit item this is set to the data value otherwise use default
+ if ($op ne 'edititem' && $thisbranch->{selected} ) {
+ $value = $thisbranch->{value};
+ }
}
}
elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "itemtypes" ) {
diff --git a/cataloguing/value_builder/labs_theses.pl b/cataloguing/value_builder/labs_theses.pl
index 24ce1e189c..d4866495ed 100755
--- a/cataloguing/value_builder/labs_theses.pl
+++ b/cataloguing/value_builder/labs_theses.pl
@@ -108,7 +108,7 @@ sub plugin {
= get_template_and_user({template_name => "value_builder/labs_theses.tmpl",
query => $query,
type => 'intranet',
- authnotrequired => 1,
+ authnotrequired => 0,
debug => 1,
});
@@ -165,7 +165,7 @@ sub plugin {
= get_template_and_user({template_name => "value_builder/labs_theses.tmpl",
query => $query,
type => "intranet",
- authnotrequired => 1,
+ authnotrequired => 0,
});
$template->param(
diff --git a/cataloguing/value_builder/unimarc_field_4XX.pl b/cataloguing/value_builder/unimarc_field_4XX.pl
index 7eadc5d60e..84a620822f 100755
--- a/cataloguing/value_builder/unimarc_field_4XX.pl
+++ b/cataloguing/value_builder/unimarc_field_4XX.pl
@@ -345,7 +345,7 @@ sub plugin {
"cataloguing/value_builder/unimarc_field_4XX.tmpl",
query => $query,
type => 'intranet',
- authnotrequired => 1,
+ authnotrequired => 0,
debug => 1,
}
);
@@ -463,7 +463,7 @@ sub plugin {
"cataloguing/value_builder/unimarc_field_4XX.tmpl",
query => $query,
type => "intranet",
- authnotrequired => 1,
+ authnotrequired => 0,
}
);
diff --git a/cataloguing/z3950_search.pl b/cataloguing/z3950_search.pl
index cf9e7b2ff4..9b6c8f1d19 100755
--- a/cataloguing/z3950_search.pl
+++ b/cataloguing/z3950_search.pl
@@ -41,6 +41,7 @@ my $author = $input->param('author');
my $isbn = $input->param('isbn');
my $issn = $input->param('issn');
my $lccn = $input->param('lccn');
+my $lccall = $input->param('lccall');
my $subject = $input->param('subject');
my $dewey = $input->param('dewey');
my $controlnumber = $input->param('controlnumber');
@@ -88,6 +89,7 @@ if ( $op ne "do_search" ) {
isbn => $isbn,
issn => $issn,
lccn => $lccn,
+ lccall => $lccall,
title => $title,
author => $author,
controlnumber=> $controlnumber,
@@ -136,6 +138,10 @@ else {
$query .= " \@attr 1=9 $lccn ";
$nterms++;
}
+ if ($lccall) {
+ $query .= " \@attr 1=16 \@attr 2=3 \@attr 3=1 \@attr 4=1 \@attr 5=1 \@attr 6=1 \"$lccall\" ";
+ $nterms++;
+ }
if ($controlnumber) {
$query .= " \@attr 1=12 \"$controlnumber\" ";
$nterms++;
diff --git a/circ/returns.pl b/circ/returns.pl
index 261109962b..51ac9de563 100755
--- a/circ/returns.pl
+++ b/circ/returns.pl
@@ -554,16 +554,20 @@ $template->param(
soundon => C4::Context->preference("SoundOn"),
);
-my $itemnumber = GetItemnumberFromBarcode( $query->param('barcode') );
-if ( $itemnumber ) {
- my ( $holdingBranch, $collectionBranch ) = GetCollectionItemBranches( $itemnumber );
- if ( ! ( $holdingBranch eq $collectionBranch ) ) {
- $template->param(
- collectionItemNeedsTransferred => 1,
- collectionBranch => GetBranchName($collectionBranch),
- );
- }
-}
+### Comment out rotating collections for now to allow it a little more time to bake
+### for 3.4; in particular, must ensure that it doesn't fight with transfers required
+### to fill hold requests
+### -- Galen Charlton 2010-10-06
+#my $itemnumber = GetItemnumberFromBarcode( $query->param('barcode') );
+#if ( $itemnumber ) {
+# my ( $holdingBranch, $collectionBranch ) = GetCollectionItemBranches( $itemnumber );
+# if ( ! ( $holdingBranch eq $collectionBranch ) ) {
+# $template->param(
+# collectionItemNeedsTransferred => 1,
+# collectionBranch => GetBranchName($collectionBranch),
+# );
+# }
+#}
# actually print the page!
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/debian/build-git-snapshot b/debian/build-git-snapshot
index 4b63141a33..99475a6c30 100755
--- a/debian/build-git-snapshot
+++ b/debian/build-git-snapshot
@@ -46,7 +46,7 @@ reset_debian_changelog() {
build_package() {
git archive --format=tar --prefix="koha-$1/" HEAD |
gzip -9 > "../koha_$1.tar.gz"
- pdebuild
+ pdebuild $2
}
if ! everything_is_commited
@@ -55,6 +55,10 @@ then
fi
version="$(newversion)"
+if [ -n "$1" ]
+then
+ pdebuildopts="--buildresult $1"
+fi
adjust_debian_changelog "$version"
-build_package "$version"
+build_package "$version" "$pdebuildopts"
reset_debian_changelog
diff --git a/debian/control b/debian/control
index a43d12811b..72407936f7 100644
--- a/debian/control
+++ b/debian/control
@@ -9,6 +9,7 @@ Standards-Version: 3.8.4
Build-Depends: libalgorithm-checkdigits-perl,
libauthen-cas-client-perl,
libbiblio-endnotestyle-perl,
+ libbusiness-isbn-perl,
libcgi-pm-perl | perl-modules,
libcgi-session-perl,
libcgi-session-serialize-yaml-perl,
@@ -45,6 +46,7 @@ Build-Depends: libalgorithm-checkdigits-perl,
libmemoize-memcached-perl,
libmime-lite-perl,
libnet-ldap-perl,
+ libnet-server-perl,
libnet-z3950-zoom-perl,
libnumber-format-perl,
libpdf-api2-perl,
@@ -56,12 +58,12 @@ Build-Depends: libalgorithm-checkdigits-perl,
libscalar-list-utils-perl,
libschedule-at-perl,
libsms-send-perl,
- libtest-harness-perl | perl-modules,
libtest-simple-perl | perl-modules,
libtext-csv-encoded-perl,
libtext-csv-perl,
libtext-csv-xs-perl,
libtext-iconv-perl,
+ libuniversal-require-perl,
liburi-perl,
libwww-perl,
libxml-dumper-perl,
diff --git a/debian/control.in b/debian/control.in
index 37d16733a0..746e568a00 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -1,5 +1,5 @@
Source: koha
-Maintainer: Lars Wirzenius
+Maintainer: Robin Sheat
Section: web
Priority: optional
Standards-Version: 3.8.4
diff --git a/debian/koha-common.README.Debian b/debian/koha-common.README.Debian
index 42167eb5e2..ba831af848 100644
--- a/debian/koha-common.README.Debian
+++ b/debian/koha-common.README.Debian
@@ -33,6 +33,8 @@ The Debian packaging of Koha puts files in the following places:
* /etc/koha -- system configuration files
* /etc/cron.hourly/koha-common -- cron job
+* /etc/cron.daily/koha-common -- cron job
+* /etc/cron.d/koha-common -- cron job
* /usr/share/koha -- shared files (HTML templates, Perl code, etc)
Each Koha instance has files in the following places:
diff --git a/debian/koha-common.cron.d b/debian/koha-common.cron.d
index 715d1b06d2..cd7f3c207d 100644
--- a/debian/koha-common.cron.d
+++ b/debian/koha-common.cron.d
@@ -7,3 +7,4 @@ SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/5 * * * * root test -x /usr/sbin/koha-rebuild-zebra && koha-rebuild-zebra $(koha-list --enabled)
+*/15 * * * * root koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/process_message_queue.pl
diff --git a/debian/koha-common.cron.daily b/debian/koha-common.cron.daily
new file mode 100644
index 0000000000..059682e803
--- /dev/null
+++ b/debian/koha-common.cron.daily
@@ -0,0 +1,24 @@
+#!/bin/sh
+# /etc/cron.daily/koha-common -- Daily housekeeping tasks for all Kohas.
+# Copyright 2010 Catalyst IT, Ltd
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/overdue_notices.pl -t
+koha-foreach --enabled /usr/share/koha/bin/cronjobs/fines.pl
+koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/advance_notices.pl -c
+koha-foreach --enabled /usr/share/koha/bin/cronjobs/holds/cancel_expired_holds.pl >/dev/null 2>&1
+koha-foreach --enabled /usr/share/koha/bin/cronjobs/services_throttle.pl > /dev/null 2>&1
+koha-foreach --enabled /usr/share/koha/bin/cronjobs/cleanup_database.pl --sessions --zebraqueue 10
+koha-foreach --enabled --noemail /usr/share/koha/bin/cronjobs/cleanup_database.pl --mail
diff --git a/debian/koha-common.install b/debian/koha-common.install
index 986aa075e0..6ed2587982 100644
--- a/debian/koha-common.install
+++ b/debian/koha-common.install
@@ -3,7 +3,7 @@ debian/tmp/usr/* usr
debian/tmp/etc/koha/pazpar2
debian/tmp/etc/koha/zebradb/[!z]*
debian/templates/* etc/koha
-debian/koha-post-install-setup usr/sbin
+debian/koha-post-install-setup usr/sbin
debian/unavailable.html usr/share/koha/intranet/htdocs
debian/unavailable.html usr/share/koha/opac/htdocs
debian/templates/* etc/koha
@@ -12,6 +12,8 @@ debian/scripts/koha-create-dirs usr/sbin
debian/scripts/koha-disable usr/sbin
debian/scripts/koha-dump usr/sbin
debian/scripts/koha-dump-defaults usr/sbin
+debian/scripts/koha-email-disable usr/sbin
+debian/scripts/koha-email-enable usr/sbin
debian/scripts/koha-enable usr/sbin
debian/scripts/koha-foreach usr/sbin
debian/scripts/koha-list usr/sbin
diff --git a/debian/scripts/koha-create b/debian/scripts/koha-create
index 43e7c4ed3b..672c841de6 100755
--- a/debian/scripts/koha-create
+++ b/debian/scripts/koha-create
@@ -117,6 +117,7 @@ then
fi
adduser --no-create-home --disabled-login \
--gecos "Koha instance $username" \
+ --home "/var/lib/koha/$name" \
--quiet "$username"
# Create the site-specific directories.
@@ -233,3 +234,9 @@ if [ "$op" = request ]
then
koha-disable "$name"
fi
+
+echo <.
+
+set -e
+
+if [ "$#" = 0 ]
+then
+ echo "Disables the email for a koha instance." 1>&2
+ echo "Usage: $0 instancename..." 1>&2
+ exit 1
+fi
+libdir=/var/lib/koha
+for name in "$@"
+do
+ if [ ! -d $libdir/$name ]
+ then
+ echo "$0: no koha instance \"$name\"" 1>&2
+ continue
+ fi
+ rm -f $libdir/$name/email.enabled
+done
diff --git a/debian/scripts/koha-email-enable b/debian/scripts/koha-email-enable
new file mode 100755
index 0000000000..da63589ea0
--- /dev/null
+++ b/debian/scripts/koha-email-enable
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# koha-email-enable -- turn on the email for a Koha instance
+# Copyright 2010 Catalyst IT, Ltd
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+set -e
+
+if [ "$#" = 0 ]
+then
+ echo "Enables email for a koha instance." 1>&2
+ echo "Usage: $0 instancename..." 1>&2
+ exit 1
+fi
+libdir=/var/lib/koha
+for name in "$@"
+do
+ if [ ! -d $libdir/$name ]
+ then
+ echo "$0: no koha instance \"$name\"" 1>&2
+ continue
+ fi
+ touch $libdir/$name/email.enabled
+done
diff --git a/debian/scripts/koha-enable b/debian/scripts/koha-enable
old mode 100644
new mode 100755
diff --git a/debian/scripts/koha-foreach b/debian/scripts/koha-foreach
index 80152bc831..9cf150d811 100755
--- a/debian/scripts/koha-foreach
+++ b/debian/scripts/koha-foreach
@@ -18,15 +18,18 @@
set -e
-
listopts=""
-if [ "$1" = --enabled ]
-then
- listopts="--enabled"
+while [ ! -z "$1" ]
+do
+ case "$1" in
+ --email) listopts="$listopts --email";;
+ --noemail) listopts="$listopts --noemail";;
+ --enabled) listopts="$listopts --enabled";;
+ *) break;;
+ esac
shift
-fi
-
-
+done
+
for name in $(koha-list $listopts)
do
sudo -u "$name-koha" \
diff --git a/debian/scripts/koha-list b/debian/scripts/koha-list
index af810ae40b..1e19f1afc4 100755
--- a/debian/scripts/koha-list
+++ b/debian/scripts/koha-list
@@ -29,19 +29,46 @@ is_enabled() {
fi
}
-all=yes
-if [ "$1" = --enabled ]
-then
+help() {
+ echo < (1) biblioitems --> (N) items
+
+Vai su htpp://www.koha.it/ per conoscere il legame
+tra le colonne in MySQL e tags presenti nei record.
+
diff --git a/installer/data/mysql/it-IT/necessari/auth_val.sql b/installer/data/mysql/it-IT/necessari/auth_val.sql
new file mode 100644
index 0000000000..01a2e8f105
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/auth_val.sql
@@ -0,0 +1,110 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+-- Reasons for acceptance or rejection of suggestions in acquisitions
+INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('SUGGEST','BSELL','Bestseller');
+INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('SUGGEST','SCD','Copia a scaffale danneggiata');
+INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('SUGGEST','LCL','Copia della biblioteca persa');
+INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('SUGGEST','AVILL','Disponibile via prestito ILL');
+
+-- availability statuses
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOST','0','Non persa');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOST','2','Lungo ritardo (persa)');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOST','1','Persa');
+INSERT INTO `authorised_values` (category, authorised_value, lib ) VALUES ('LOST','3','Persa e pagata da');
+INSERT INTO `authorised_values` (category, authorised_value, lib )VALUES ('LOST','4','Mancante');
+
+-- damaged status of an item
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('DAMAGED','0','Non danneggiata');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('DAMAGED','1','Danneggiata');
+
+-- location qualification for an item, departments are linked by default to items.location
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOC','FIC','Fiction');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOC','CHILD','Area bambini');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOC','DISPLAY','A scaffale aperto');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOC','NEW','Scaffale novità');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOC','STAFF','Ufficio staff');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOC','GEN','Sezione generale');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOC','AV','Audiovideo');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('LOC','REF','Strumenti di reference');
+
+-- collection codes for an item
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('CCODE','FIC','Fiction');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('CCODE','REF','Strumenti di reference');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('CCODE','NFIC','Non Fiction');
+
+-- withdrawn status of an item, linked to items.wthdrawn
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('WITHDRAWN','0','Non ritirata');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('WITHDRAWN','1','Ritirata dalla circolazione');
+
+-- loanability status of an item, linked to items.notforloan
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('NOT_LOAN','-1','Ordinato');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('NOT_LOAN','0','Per il prestito');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('NOT_LOAN','1','Non per il prestito');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('NOT_LOAN','2','Uso interno');
+
+-- restricted status of an item, linked to items.restricted
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('RESTRICTED','0','Nessuna restrizione');
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('RESTRICTED','1','Accesso limitato');
+
+-- manual invoice types
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('MANUAL_INV','Costo fotocopie','.25');
+
+-- custom borrower notes
+INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('BOR_NOTES','ADDR','Indirizzo (Nota)');
+
+-- Qualifiche per gli autori
+
+INSERT INTO `authorised_values` (`category`, `authorised_value`, `lib`) VALUES
+('qualif', '570', 'Altro'),
+('qualif', '205', 'Collaboratore'),
+('qualif', '210', 'Commentatore'),
+('qualif', '571', 'Coordinatore'),
+('qualif', '573', 'Diffusore'),
+('qualif', '651', 'Direttore editoriale'),
+('qualif', '650', 'Editore'),
+('qualif', '440', 'Illustratore'),
+('qualif', '075', 'Postfatore'),
+('qualif', '080', 'Prefatore'),
+('qualif', '574', 'Presentatore'),
+('qualif', '710', 'Redattore'),
+('qualif', '575', 'Responsabile'),
+('qualif', '730', 'Traduttore'),
+('qualif', '020', 'Chiosatore'),
+('qualif', '723', 'Sponsor'),
+('qualif', '675', 'Recensore'),
+('qualif', '600', 'Fotografo'),
+('qualif', '370', 'Film editor'),
+('qualif', '673', 'Direttore'),
+('qualif', '605', 'Presentatore'),
+('qualif', '557', 'Organizzatore del congresso'),
+('qualif', '340', 'Editor'),
+('qualif', '727', 'Relatore di tesi'),
+('qualif', '220', 'Compilatore'),
+('qualif', '395', 'Fondatore'),
+('qualif', '100', 'Autore dell''opere che è stata adattata'),
+('qualif', '230', 'Compositore'),
+('qualif', '520', 'Paroliere'),
+('qualif', '295', 'Istituzione garante della tesi'),
+('qualif', '010', 'Adattarore');
+
+-- Codici dei Paesi (COUNTRY)
+INSERT INTO `authorised_values` (`category`, `authorised_value`, `lib`) VALUES
+('COUNTRY', 'IT', 'Italia'),
+('COUNTRY', 'US', 'Stati Uniti'),
+('COUNTRY', 'GB', 'Regno Unito - UK '),
+('COUNTRY', 'DE', 'Germania'),
+('COUNTRY', 'FR', 'Francia'),
+('COUNTRY', 'VA', 'Vaticano'),
+('COUNTRY', 'CN', 'Cina'),
+('COUNTRY', 'IN', 'India');
+
+-- Codici delle lingue (LANG)
+INSERT INTO `authorised_values` (`category`, `authorised_value`, `lib`) VALUES
+('LANG', 'ita', 'italiano'),
+('LANG', 'eng', 'inglese'),
+('LANG', 'ger', 'tedesco'),
+('LANG', 'fre', 'francese'),
+('LANG', 'lat', 'latino');
+
+SET FOREIGN_KEY_CHECKS=1;
+
diff --git a/installer/data/mysql/it-IT/necessari/auth_val.txt b/installer/data/mysql/it-IT/necessari/auth_val.txt
new file mode 100644
index 0000000000..c7276f092e
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/auth_val.txt
@@ -0,0 +1 @@
+Alcuni valori come le sezioni della biblioteca, lo stato delle copie perse, ecc. sono impostati di default. Possono essere modificati in qualsiasi momento dopo l'installazione.
diff --git a/installer/data/mysql/it-IT/necessari/class_sources.sql b/installer/data/mysql/it-IT/necessari/class_sources.sql
new file mode 100644
index 0000000000..880610289c
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/class_sources.sql
@@ -0,0 +1,37 @@
+--
+-- Default classification sources and filing rules
+-- for Koha.
+--
+-- Copyright (C) 2007 LiblimeA
+--
+-- This file is part of Koha.
+--
+-- Koha is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+-- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License along with
+-- Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+-- Suite 330, Boston, MA 02111-1307 USA
+SET FOREIGN_KEY_CHECKS=0;
+
+-- class sorting (filing) rules
+INSERT INTO `class_sort_rules` (`class_sort_rule`, `description`, `sort_routine`) VALUES
+ ('dewey', 'Regole di default per CDD', 'Dewey'),
+ ('lcc', 'Regole di default per LCC', 'LCC'),
+ ('generic', 'Regole generiche per la collocazione con classificazione', 'Generic');
+
+
+-- classification schemes or sources
+INSERT INTO `class_sources` (`cn_source`, `description`, `used`, `class_sort_rule`) VALUES
+ ('ddc', 'Classificazione decimale Dewey', 1, 'dewey'),
+ ('lcc', 'Classificazione della Library of Congress', 1, 'lcc'),
+ ('udc', 'Classificazione Decimale Universale', 0, 'generic'),
+ ('z', 'Altro sistema di classificazione', 0, 'generic');
+
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
diff --git a/installer/data/mysql/it-IT/necessari/class_sources.txt b/installer/data/mysql/it-IT/necessari/class_sources.txt
new file mode 100644
index 0000000000..140209147a
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/class_sources.txt
@@ -0,0 +1 @@
+Schemi di classificazione impostati di default e regole per l'inserimento.
diff --git a/installer/data/mysql/it-IT/necessari/message_transport_types.sql b/installer/data/mysql/it-IT/necessari/message_transport_types.sql
new file mode 100644
index 0000000000..d4967d3c36
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/message_transport_types.sql
@@ -0,0 +1,11 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO message_transport_types
+(message_transport_type)
+values
+('email'),
+('print'),
+('sms'),
+('feed');
+
+SET FOREIGN_KEY_CHECKS=1;
diff --git a/installer/data/mysql/it-IT/necessari/message_transport_types.txt b/installer/data/mysql/it-IT/necessari/message_transport_types.txt
new file mode 100644
index 0000000000..51f390f3ee
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/message_transport_types.txt
@@ -0,0 +1,2 @@
+Definisce come avviene di il trasporto del messaggio, se via
+email, stampa, sms, feed rss.
diff --git a/installer/data/mysql/it-IT/necessari/notices.sql b/installer/data/mysql/it-IT/necessari/notices.sql
new file mode 100644
index 0000000000..64e2564cd9
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/notices.sql
@@ -0,0 +1,14 @@
+INSERT INTO `letter` (module, code, name, title, content)
+VALUES ('circulation','ODUE','Overdue Notice','Item Overdue','Dear <> <>,\n\nAccording to our current records, you have items that are overdue.Your library does not charge late fines, but please return or renew them at the branch below as soon as possible.\n\n<>\n<>\n<> <>\nPhone: <>\nFax: <>\nEmail: <>\n\nIf you have registered a password with the library, and you have a renewal available, you may renew online. If an item becomes more than 30 days overdue, you will be unable to use your library card until the item is returned.\n\nThe following item(s) is/are currently overdue:\n\n"<>" by <>, <>, Barcode: <> Fine: GBP\n\nThank-you for your prompt attention to this matter.\n\n<> Staff\n'),
+('claimacquisition','ACQCLAIM','Acquisition Claim','Item Not Received','<>\r\n<>\r\n<>\r\n<>\r\n<>\r\n<>\r\n\r\nOrdernumber <> (<>) (<> ordered) ($<> each) has not been received.'),
+('serial','RLIST','Routing List','Serial is now available','<> <>,\r\n\r\nThe following issue is now available:\r\n\r\n<>, <> (<>)\r\n\r\nPlease pick it up at your convenience.'),
+('members','ACCTDETAILS','Account Details Template - DEFAULT','Your new Koha account details.','Hello <> <> <>.\r\n\r\nYour new Koha account details are:\r\n\r\nUser: <>\r\nPassword: <>\r\n\r\nIf you have any problems or questions regarding your account, please contact your Koha Administrator.\r\n\r\nThank you,\r\nKoha Administrator\r\nkohaadmin@yoursite.org'),
+('circulation','DUE','Item Due Reminder','Item Due Reminder','Dear <> <>,\r\n\r\nThe following item is now due:\r\n\r\n<>, <> (<>)'),
+('circulation','DUEDGST','Item Due Reminder (Digest)','Item Due Reminder','You have <> items due'),
+('circulation','PREDUE','Advance Notice of Item Due','Advance Notice of Item Due','Dear <> <>,\r\n\r\nThe following item will be due soon:\r\n\r\n<>, <> (<>)'),
+('circulation','PREDUEDGST','Advance Notice of Item Due (Digest)','Advance Notice of Item Due','You have <> items due soon'),
+('reserves', 'HOLD', 'Hold Available for Pickup', 'Hold Available for Pickup at <>', 'Dear <> <>,\r\n\r\nYou have a hold available for pickup as of <>:\r\n\r\nTitle: <>\r\nAuthor: <>\r\nCopy: <>\r\nLocation: <>\r\n<>\r\n<>\r\n<>\r\n<> <>'),
+('reserves', 'HOLD_PRINT', 'Hold Available for Pickup (print notice)', 'Hold Available for Pickup (print notice)', '<>\r\n<>\r\n<>\r\n\r\n\r\nChange Service Requested\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<> <>\r\n<>\r\n<> <>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<> <> <>\r\n\r\nYou have a hold available for pickup as of <>:\r\n\r\nTitle: <>\r\nAuthor: <>\r\nCopy: <>\r\n'),
+('circulation','CHECKIN','Item Check-in (Digest)','Check-ins','The following items have been checked in:\r\n----\r\n<>\r\n----\r\nThank you.'),
+('circulation','CHECKOUT','Item Check-out (Digest)','Checkouts','The following items have been checked out:\r\n----\r\n<>\r\n----\r\nThank you for visiting <>.'),
+('reserves', 'HOLDPLACED', 'Hold Placed on Item', 'Hold Placed on Item','A hold has been placed on the following item : <> (<>) by the user <> <> (<>).');
diff --git a/installer/data/mysql/it-IT/necessari/notices.txt b/installer/data/mysql/it-IT/necessari/notices.txt
new file mode 100644
index 0000000000..1dc84643f4
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/notices.txt
@@ -0,0 +1 @@
+Notifiche
diff --git a/installer/data/mysql/it-IT/necessari/parameters.sql b/installer/data/mysql/it-IT/necessari/parameters.sql
new file mode 100644
index 0000000000..1319f33f70
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/parameters.sql
@@ -0,0 +1,8 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `currency` (currency, rate, symbol) VALUES
+('USD', 1.4, '$'),
+('GBP', .8, '£'),
+('EUR', 1, '€');
+
+SET FOREIGN_KEY_CHECKS=1;
diff --git a/installer/data/mysql/it-IT/necessari/parameters.txt b/installer/data/mysql/it-IT/necessari/parameters.txt
new file mode 100644
index 0000000000..7b2073f5aa
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/parameters.txt
@@ -0,0 +1 @@
+Definzioni di campi per le monete principali
diff --git a/installer/data/mysql/it-IT/necessari/patron_categories.sql b/installer/data/mysql/it-IT/necessari/patron_categories.sql
new file mode 100644
index 0000000000..bd36b1886f
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/patron_categories.sql
@@ -0,0 +1,26 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `categories` (`categorycode`, `description`, `enrolmentperiod`, `upperagelimit`, `dateofbirthrequired`, `finetype`, `bulk`, `enrolmentfee`, `overduenoticerequired`, `issuelimit`, `reservefee`, `category_type`) VALUES
+
+-- Adult Patrons
+('PT','Utente',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','A'),
+('ST','Studente',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','A'),
+
+-- Children
+('K','Bambino',99,17,5,NULL,NULL,'0.000000',1,NULL,'0.000000','C'),
+('J','Ragazzo',99,17,5,NULL,NULL,'0.000000',1,NULL,'0.000000','C'),
+('YA','Adolescente',99,17,5,NULL,NULL,'0.000000',1,NULL,'0.000000','C'),
+
+-- Professionals
+('T','Insegnante',99,999,18,NULL,NULL,'0.000000',0,NULL,'0.000000','P'),
+('B','Board',99,17,5,NULL,NULL,'0.000000',1,NULL,'0.000000','P'),
+
+-- Institutional
+('IL','Prestito Interbibliotecario',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','I'),
+('SC','Scuola',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','I'),
+('L','Biblioteca',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','I'),
+
+-- Staff
+('S','Staff',99,999,18,NULL,NULL,'0.000000',0,NULL,'0.000000','S');
+
+SET FOREIGN_KEY_CHECKS=1;
diff --git a/installer/data/mysql/it-IT/necessari/patron_categories.txt b/installer/data/mysql/it-IT/necessari/patron_categories.txt
new file mode 100644
index 0000000000..0b469ec9ee
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/patron_categories.txt
@@ -0,0 +1,24 @@
+Esempio di tipi utente e categorie:
+
+Tipo: Categorie:
+
+Adult - tipologie automatiche
+ PT - Utente
+ ST - Studente
+
+Child - utente con un garante
+ K - Bambino
+ J - Ragazzo
+ YA - Adolescente
+
+Organization - un'istituzione, non una persona fisica
+ ILL - Prestito interbibliotecario
+ SC - Scuola
+ L - Biblioteca
+
+Professional - membro di un'organizzazione (l'organizzazione ne è il garante)
+ T - Insegnante
+ S - Staff
+ B - Board
+
+I tipi sono normalmente codificati, ma è possibile aggiungere/modificare/cancellare le categorie dopo l'installazione dal modulo amministrativo.
diff --git a/installer/data/mysql/it-IT/necessari/sample_holidays.sql b/installer/data/mysql/it-IT/necessari/sample_holidays.sql
new file mode 100644
index 0000000000..67640a94a7
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_holidays.sql
@@ -0,0 +1,8 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `repeatable_holidays` VALUES
+(2,'',0,NULL,NULL,'','Domenica'),
+(3,'',NULL,1,1,'','Nuovo anno'),
+(4,'',NULL,25,12,'','Natale');
+
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
diff --git a/installer/data/mysql/it-IT/necessari/sample_holidays.txt b/installer/data/mysql/it-IT/necessari/sample_holidays.txt
new file mode 100644
index 0000000000..44ac7c77c5
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_holidays.txt
@@ -0,0 +1,4 @@
+Esempio vacanze:
+ Domenica
+ Natale
+ Nuovo anno
diff --git a/installer/data/mysql/it-IT/necessari/sample_itemtypes.sql b/installer/data/mysql/it-IT/necessari/sample_itemtypes.sql
new file mode 100644
index 0000000000..2ab0746d6a
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_itemtypes.sql
@@ -0,0 +1,12 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `itemtypes` VALUES ('BK', 'Libro',5,0,0,'bridge/book.gif','');
+INSERT INTO `itemtypes` VALUES ('MX', 'Materiale misto',5,0,0,'bridge/kit.gif','');
+INSERT INTO `itemtypes` VALUES ('CF', 'Computer Files',5,0,0,'bridge/computer_file.gif','');
+INSERT INTO `itemtypes` VALUES ('MP', 'Mappe',5,0,0,'bridge/map.gif','');
+INSERT INTO `itemtypes` VALUES ('VM', 'Audiovisivi',5,0,1,'bridge/dvd.gif','');
+INSERT INTO `itemtypes` VALUES ('MU', 'Musica',5,0,0,'bridge/sound.gif','');
+INSERT INTO `itemtypes` VALUES ('CR', 'Periodici',5,0,0,'bridge/periodical.gif','');
+INSERT INTO `itemtypes` VALUES ('REF', 'Reference',0,0,1,'','');
+
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
diff --git a/installer/data/mysql/it-IT/necessari/sample_itemtypes.txt b/installer/data/mysql/it-IT/necessari/sample_itemtypes.txt
new file mode 100644
index 0000000000..89128a992c
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_itemtypes.txt
@@ -0,0 +1 @@
+Una serie di tipi di copia (item types), materiali e codici di collezione.
diff --git a/installer/data/mysql/it-IT/necessari/sample_news.sql b/installer/data/mysql/it-IT/necessari/sample_news.sql
new file mode 100644
index 0000000000..5f6263e0fa
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_news.sql
@@ -0,0 +1,22 @@
+-- phpMyAdmin SQL Dump
+-- version 2.9.1.1-Debian-13
+-- http://www.phpmyadmin.net
+--
+-- Host: localhost
+-- Generato il: 04 Feb, 2010 at 10:58 AM
+-- Versione MySQL: 5.0.32
+-- Versione PHP: 5.2.0-8+etch16
+--
+-- Database: 'koha'
+--
+
+--
+-- Dump dei dati per la tabella 'opac_news'
+--
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO opac_news (idnew, title, new, lang, timestamp, expirationdate, number) VALUES
+(1, 'Benvenuto in Koha', '
Koha è un gestionale di biblioteca (ILS) completo e Open Source. Sviluppato inzialmente in New Zealand da Katipo Communications Ltd e messo in linea per la prima volta nel gennaio 2000 per il Horowhenua Library Trust, Koha è ora mantenuto da un gruppo di aziende di servizi e dipendenti di biblioteca distribuiti in tutto il mondo.
', 'koha', '2007-10-29 00:00:00', '2099-01-10', 1),
+(2, 'Cosa c''è di nuovo ?', '
Ora che hai installato cosa, qual''è il passo successivo ? Qui alcuni suggerimenti:
\r\n', 'koha', '2007-10-29 00:00:00', '2099-01-10', 2);
+
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
diff --git a/installer/data/mysql/it-IT/necessari/sample_news.txt b/installer/data/mysql/it-IT/necessari/sample_news.txt
new file mode 100644
index 0000000000..de61f921ee
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_news.txt
@@ -0,0 +1 @@
+Esempi di news (utili per formattare l'output delle home page).
diff --git a/installer/data/mysql/it-IT/necessari/sample_notices_message_attributes.sql b/installer/data/mysql/it-IT/necessari/sample_notices_message_attributes.sql
new file mode 100644
index 0000000000..aec38b5694
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_notices_message_attributes.sql
@@ -0,0 +1,12 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+insert into `message_attributes`
+(`message_attribute_id`, message_name, `takes_days`)
+values
+(1, 'Copia scaduta', 0),
+(2, 'Avviso preventivo', 1),
+(4, 'Prenotazione compilata', 0),
+(5, 'Check In', 0),
+(6, 'Check Out', 0);
+
+SET FOREIGN_KEY_CHECKS=1;
diff --git a/installer/data/mysql/it-IT/necessari/sample_notices_message_attributes.txt b/installer/data/mysql/it-IT/necessari/sample_notices_message_attributes.txt
new file mode 100644
index 0000000000..98d1f4d6d0
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_notices_message_attributes.txt
@@ -0,0 +1,2 @@
+Definisce i messaggi di default per le copie scadute, gli avvisi e gli eventi in arrivo.
+
diff --git a/installer/data/mysql/it-IT/necessari/sample_notices_message_transports.sql b/installer/data/mysql/it-IT/necessari/sample_notices_message_transports.sql
new file mode 100644
index 0000000000..c1b1f29570
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_notices_message_transports.sql
@@ -0,0 +1,23 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+insert into `message_transports`
+(`message_attribute_id`, `message_transport_type`, `is_digest`, `letter_module`, `letter_code`)
+values
+(1, 'email', 0, 'circulation', 'DUE'),
+(1, 'email', 1, 'circulation', 'DUEDGST'),
+(2, 'email', 0, 'circulation', 'PREDUE'),
+(2, 'email', 1, 'circulation', 'PREDUEDGST'),
+(3, 'email', 0, 'circulation', 'EVENT'),
+(4, 'email', 0, 'reserves', 'HOLD'),
+(1, 'sms', 0, 'circulation', 'DUE'),
+(1, 'sms', 1, 'circulation', 'DUEDGST'),
+(2, 'sms', 0, 'circulation', 'PREDUE'),
+(2, 'sms', 1, 'circulation', 'PREDUEDGST'),
+(3, 'sms', 0, 'circulation', 'EVENT'),
+(4, 'sms', 0, 'reserves', 'HOLD'),
+(5, 'email', 0, 'circulation', 'CHECKIN'),
+(5, 'sms', 0, 'circulation', 'CHECKIN'),
+(6, 'email', 0, 'circulation', 'CHECKOUT'),
+(6, 'sms', 0, 'circulation', 'CHECKOUT');
+
+SET FOREIGN_KEY_CHECKS=1;
diff --git a/installer/data/mysql/it-IT/necessari/sample_notices_message_transports.txt b/installer/data/mysql/it-IT/necessari/sample_notices_message_transports.txt
new file mode 100644
index 0000000000..e44b6d0647
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sample_notices_message_transports.txt
@@ -0,0 +1 @@
+Definisce i metodi di trasporto di default dei messaggi, via e-mail o SMS.
diff --git a/installer/data/mysql/it-IT/necessari/stopwords.sql b/installer/data/mysql/it-IT/necessari/stopwords.sql
new file mode 100644
index 0000000000..8f348a2e46
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/stopwords.sql
@@ -0,0 +1,194 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `stopwords` (`word`) VALUES
+('a'),
+('about'),
+('ad'),
+('after'),
+('ai'),
+('al'),
+('all'),
+('alla'),
+('alle'),
+('allo'),
+('also'),
+('an'),
+('and'),
+('another'),
+('any'),
+('are'),
+('as'),
+('at'),
+('b'),
+('back'),
+('be'),
+('because'),
+('been'),
+('being'),
+('but'),
+('by'),
+('c'),
+('can'),
+('ci'),
+('col'),
+('con'),
+('could'),
+('d'),
+('da'),
+('dagli'),
+('dai'),
+('dal'),
+('dall'),
+('dalla'),
+('dalle'),
+('dallo'),
+('de'),
+('degli'),
+('dei'),
+('del'),
+('dell'),
+('della'),
+('delle'),
+('dello'),
+('di'),
+('did'),
+('do'),
+('e'),
+('each'),
+('ed'),
+('end'),
+('et'),
+('even'),
+('f'),
+('for'),
+('fra'),
+('from'),
+('g'),
+('get'),
+('gli'),
+('go'),
+('h'),
+('had'),
+('have'),
+('he'),
+('her'),
+('here'),
+('his'),
+('how'),
+('however'),
+('i'),
+('if'),
+('il'),
+('in'),
+('into'),
+('is'),
+('it'),
+('j'),
+('just'),
+('k'),
+('l'),
+('la'),
+('le'),
+('lo'),
+('m'),
+('may'),
+('me'),
+('mi'),
+('might'),
+('more'),
+('much'),
+('must'),
+('my'),
+('n'),
+('ne'),
+('negli'),
+('nel'),
+('nell'),
+('nella'),
+('nello'),
+('no'),
+('non'),
+('not'),
+('o'),
+('of'),
+('off'),
+('on'),
+('only'),
+('oppure'),
+('or'),
+('other'),
+('our'),
+('out'),
+('over'),
+('p'),
+('per'),
+('q'),
+('r'),
+('s'),
+('saw'),
+('si'),
+('since'),
+('should'),
+('so'),
+('some'),
+('still'),
+('su'),
+('such'),
+('sugli'),
+('sui'),
+('sul'),
+('sull'),
+('sulla'),
+('sulle'),
+('t'),
+('te'),
+('than'),
+('that'),
+('the'),
+('their'),
+('them'),
+('then'),
+('there'),
+('these'),
+('they'),
+('this'),
+('those'),
+('ti'),
+('to'),
+('too'),
+('tra'),
+('try'),
+('two'),
+('u'),
+('un'),
+('una'),
+('under'),
+('uno'),
+('up'),
+('upon'),
+('us'),
+('v'),
+('vi'),
+('was'),
+('we'),
+('were'),
+('what'),
+('when'),
+('where'),
+('whether'),
+('which'),
+('while'),
+('who'),
+('why'),
+('will'),
+('with'),
+('within'),
+('without'),
+('would'),
+('x'),
+('y'),
+('you'),
+('your'),
+('z');
+
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
diff --git a/installer/data/mysql/it-IT/necessari/stopwords.txt b/installer/data/mysql/it-IT/necessari/stopwords.txt
new file mode 100644
index 0000000000..3f5fe86288
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/stopwords.txt
@@ -0,0 +1 @@
+Stopword. Possono essere modificate dopo l'installazione.
diff --git a/installer/data/mysql/it-IT/necessari/subtag_registry.sql b/installer/data/mysql/it-IT/necessari/subtag_registry.sql
new file mode 100644
index 0000000000..b19af909dd
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/subtag_registry.sql
@@ -0,0 +1,726 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+-- http://www.w3.org/International/articles/language-tags/
+
+-- BIDI Stuff, Arabic and Hebrew
+INSERT INTO language_script_bidi(rfc4646_subtag,bidi)
+VALUES( 'Arab', 'rtl');
+INSERT INTO language_script_bidi(rfc4646_subtag,bidi)
+VALUES( 'Hebr', 'rtl');
+
+-- Default mappings between script and language subcodes
+INSERT INTO language_script_mapping(language_subtag,script_subtag)
+VALUES( 'ar', 'Arab');
+INSERT INTO language_script_mapping(language_subtag,script_subtag)
+VALUES( 'he', 'Hebr');
+
+-- EXTENSIONS
+-- Interface (i)
+-- SELECT * FROM language_subtag_registry WHERE type='i';
+-- OPAC
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'opac', 'i', 'OPAC','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'opac', 'i', 'en', 'OPAC');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'opac', 'i', 'fr', 'OPAC');
+
+-- Staff Client
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'intranet', 'i', 'Staff Client','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'intranet', 'i', 'en', 'Staff Client');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'intranet', 'i', 'fr', '????');
+
+-- Theme (t)
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'prog', 't', 'Prog','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'prog', 't', 'en', 'Prog');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'prog', 't', 'fr', 'Prog');
+
+-- LANGUAGES
+
+-- Arabic
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'ar', 'language', 'Arabic','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'ar','ara');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'ar', 'language', 'ar', 'العربية');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ar', 'language', 'en', 'Arabic');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ar', 'language', 'fr', 'Arabe');
+
+-- Armenian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'hy', 'language', 'Armenian','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'hy','hy');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'hy', 'language', 'hy', 'Հայերէն');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'hy', 'language', 'en', 'Armenian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'hy', 'language', 'fr', 'Armenian');
+
+-- Bulgarian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'bg', 'language', 'Bulgarian','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'bg','bul');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'bg', 'language', 'bg', 'Български');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'bg', 'language', 'en', 'Bulgarian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'bg', 'language', 'fr', 'Bulgare');
+
+-- Chinese
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'zh', 'language', 'Chinese','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'zh','chi');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'zh', 'language', 'zh', '中文');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'zh', 'language', 'en', 'Chinese');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'zh', 'language', 'fr', 'Chinois');
+
+-- Czech
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'cs', 'language', 'Czech','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'cs','cze');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'cs', 'language', 'cs', 'čeština');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'cs', 'language', 'en', 'Czech');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'cs', 'language', 'fr', 'Tchèque');
+
+-- Danish
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'da', 'language', 'Danish','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'da','dan');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'da', 'language', 'da', 'Dænsk');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'da', 'language', 'en', 'Danish');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'da', 'language', 'fr', 'Danois');
+
+-- Dutch, Flemish
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'nl', 'language', 'Dutch','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'nl','dut');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'nl', 'language', 'nl', 'nedərlɑns');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'nl', 'language', 'en', 'Dutch');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'nl', 'language', 'fr', 'Néerlandais');
+
+-- English
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'en', 'language', 'English','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'en','en');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'en', 'language', 'en', 'English');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'en', 'language', 'fr', 'Anglais');
+
+-- English
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'fi', 'language', 'Finnish','2005-10-16' );
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'fi', 'language', 'fi', 'suomi');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'fi', 'language', 'en', 'Finnish');
+
+-- French
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'fr', 'language', 'French','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'fr','fr');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'fr', 'language', 'en', 'French');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'fr', 'language', 'fr', 'Français');
+
+-- INSERT INTO language_descriptions(subtag, type, lang, description)
+-- VALUES( 'fr-CA', 'language', 'fr-CA', 'français');
+
+-- Lao
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'lo', 'language', 'Lao','2005-10-16' );
+
+-- INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+-- VALUES( 'lo','nor'); ???
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'lo', 'language', 'lo', 'ພາສາລາວ');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'lo', 'language', 'en', 'Lao');
+
+-- German
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'de', 'language', 'German','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'de','ger');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'de', 'language', 'de', 'Deutsch');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'de', 'language', 'en', 'German');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'de', 'language', 'fr', 'Allemand');
+
+-- Greek
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'el', 'language', 'Greek, Modern [1453- ]','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'el','gre');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'el', 'language', 'el', 'ελληνικά');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'el', 'language', 'en', 'Greek, Modern [1453- ]');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'el', 'language', 'fr', 'Grec Moderne (Après 1453)');
+
+-- Hebrew
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'he', 'language', 'Hebrew','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'he','heb');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'he', 'language', 'he', 'עברית');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'he', 'language', 'en', 'Hebrew');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'he', 'language', 'fr', 'Hébreu');
+
+-- Hindi
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'hi', 'language', 'Hindi','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'hi','hin');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'hi', 'language', 'hi', 'हिन्दी');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'hi', 'language', 'en', 'Hindi');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'hi', 'language', 'fr', 'Hindi');
+
+-- Hungarian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'hu', 'language', 'Hungarian','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'hu','hun');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'hu', 'language', 'hu', 'Magyar');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'hu', 'language', 'en', 'Hungarian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'hu', 'language', 'fr', 'Hongrois');
+
+-- Indonesian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'id', 'language', 'Indonesian','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'id','ind');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'id', 'language', 'id', 'Bahasa Indonesia');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'id', 'language', 'en', 'Indonesian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'id', 'language', 'fr', 'Indonésien');
+
+-- Italian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'it', 'language', 'Italian','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'it','ind');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'it', 'language', 'it', 'Italiano');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'it', 'language', 'en', 'Italian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'it', 'language', 'fr', 'Italien');
+
+-- Japanese
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'ja', 'language', 'Japanese','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'ja','jpn');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ja', 'language', 'ja', '日本語');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ja', 'language', 'en', 'Japanese');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ja', 'language', 'fr', 'Japonais');
+
+-- Korean
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'ko', 'language', 'Korean','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'ko','kor');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ko', 'language', 'ko', '한국어');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ko', 'language', 'en', 'Korean');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ko', 'language', 'fr', 'Coréen');
+
+-- Latin
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'la', 'language', 'Latin','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'la','lat');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'la', 'language', 'la', 'Latina');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'la', 'language', 'en', 'Latin');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'la', 'language', 'fr', 'Latin');
+
+-- Galacian
+
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'gl', 'language', 'Galician','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'gl','glg');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'gl', 'language', 'gl', 'Galego');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'gl', 'language', 'en', 'Galician');
+
+-- Norwegian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'nb', 'language', 'Norwegian','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'nb','nor');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'nb', 'language', 'nb', 'Norsk');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'nb', 'language', 'en', 'Norwegian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'nb', 'language', 'fr', 'Norvégien');
+
+-- Persian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'fa', 'language', 'Persian','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'fa','per');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'fa', 'language', 'fa', 'فارسى');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'fa', 'language', 'en', 'Persian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'fa', 'language', 'fr', 'Persan');
+
+-- Polish
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'pl', 'language', 'Polish','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'pl','pol');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'pl', 'language', 'pl', 'Polski');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'pl', 'language', 'en', 'Polish');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'pl', 'language', 'fr', 'Polonais');
+
+-- Portuguese
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'pt', 'language', 'Portuguese','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'pt','por');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'pt', 'language', 'pt', 'Português');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'pt', 'language', 'en', 'Portuguese');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'pt', 'language', 'fr', 'Portugais');
+
+-- Romanian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'ro', 'language', 'Romanian','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'ro','rum');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ro', 'language', 'ro', 'Română');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ro', 'language', 'en', 'Romanian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ro', 'language', 'fr', 'Roumain');
+
+-- Russian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'ru', 'language', 'Russian','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'ru','rus');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ru', 'language', 'ru', 'Русский');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ru', 'language', 'en', 'Russian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ru', 'language', 'fr', 'Russe');
+
+-- Serbian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'sr', 'language', 'Serbian','2005-10-16' );
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'sr', 'language', 'sr', 'српски');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'sr', 'language', 'en', 'Serbian');
+
+-- Spanish, Castilian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'es', 'language', 'Spanish','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'es','spa');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'es', 'language', 'es', 'Español');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'es', 'language', 'en', 'Spanish');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'es', 'language', 'fr', 'Espagnol');
+
+-- Swedish
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'sv', 'language', 'Swedish','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'sv','swe');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'sv', 'language', 'sv', 'Svenska');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'sv', 'language', 'en', 'Swedish');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'sv', 'language', 'fr', 'Suédois');
+
+-- Tetum
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'tet', 'language', 'Tetum','2005-10-16' );
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'tet', 'language', 'tet', 'tetun');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'tet', 'language', 'en', 'Tetum');
+
+-- Thai
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'th', 'language', 'Thai','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'th','tha');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'th', 'language', 'th', 'ภาษาไทย');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'th', 'language', 'en', 'Thai');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'th', 'language', 'fr', 'Thaï');
+
+-- Turkish
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'tr', 'language', 'Turkish','2005-10-16' );
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'tr','tur');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'tr', 'language', 'tr', 'Türkçe');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'tr', 'language', 'en', 'Turkish');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'tr', 'language', 'fr', 'Turc');
+
+
+-- Ukranian
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'uk', 'language', 'Ukranian','2005-10-16');
+
+INSERT INTO language_rfc4646_to_iso639(rfc4646_subtag,iso639_2_code)
+VALUES( 'uk','ukr');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'uk', 'language', 'uk', 'Українська');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'uk', 'language', 'en', 'Ukranian');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'uk', 'language', 'fr', 'Ukrainien');
+
+-- English
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'ur', 'language', 'Urdu','2005-10-16' );
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ur', 'language', 'en', 'Urdu');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'ur', 'language', 'ur', 'اردو');
+
+-- SCRIPTS
+-- Arabic
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'Arab', 'script', 'Arabic','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'Arab','script', 'Arab', 'العربية');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Arab', 'script','en', 'Arabic');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Arab', 'script','fr', 'Arabic');
+
+-- Cyrillic
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'Cyrl', 'script', 'Cyrillic','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'Cyrl', 'script', 'Cyrl', '????');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Cyrl', 'script', 'en', 'Cyrillic');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Cyrl', 'script', 'fr', 'Cyrillic');
+
+-- Greek
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'Grek', 'script', 'Greek','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'Grek', 'script', 'Grek', '????');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Grek', 'script', 'en', 'Greek');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Grek', 'script', 'fr', 'Greek');
+
+-- Han - Simplified
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'Hans', 'script', 'Han (Simplified variant)','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'Hans', 'script', 'Hans', 'Han (Simplified variant)');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Hans', 'script', 'en', 'Han (Simplified variant)');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Hans', 'script', 'fr', 'Han (Simplified variant)');
+
+-- Han - Traditional
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'Hant', 'script', 'Han (Traditional variant)','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'Hant', 'script', 'Hant', 'Han (Traditional variant)');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Hant', 'script', 'en', 'Han (Traditional variant)');
+
+-- Hebrew
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'Hebr', 'script', 'Hebrew','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'Hebr', 'script', 'Hebr', 'Hebrew');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Hebr', 'script', 'en', 'Hebrew');
+
+-- Lao
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'Laoo', 'script', 'Lao','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'Laoo', 'script', 'lo', 'Lao');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'Laoo', 'script', 'en', 'Lao');
+
+-- REGIONS
+-- Canada
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'CA', 'region', 'Canada','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'CA', 'region', 'en', 'Canada');
+
+-- Denmark
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'DK', 'region', 'Denmark','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'DK', 'region', 'dk', 'Danmark');
+
+-- France
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'FR', 'region', 'France','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES ( 'FR', 'region', 'fr', 'France');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'FR', 'region', 'en', 'France');
+
+-- New Zealand
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'NZ', 'region', 'New Zealand','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'NZ', 'region', 'en', 'New Zealand');
+
+-- United Kingdom
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'GB', 'region', 'United Kingdom','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'GB', 'region', 'en', 'United Kingdom');
+
+-- United States
+INSERT INTO language_subtag_registry( subtag, type, description, added)
+VALUES ( 'US', 'region', 'United States','2005-10-16');
+
+INSERT INTO language_descriptions(subtag, type, lang, description)
+VALUES( 'US', 'region', 'en', 'United States');
+
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
diff --git a/installer/data/mysql/it-IT/necessari/subtag_registry.txt b/installer/data/mysql/it-IT/necessari/subtag_registry.txt
new file mode 100644
index 0000000000..5dc9d530c6
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/subtag_registry.txt
@@ -0,0 +1,5 @@
+Supporto I18N di Koha
+
+Gestione lingue scritte da destra (Arabo ed Ebraico).
+Collegamenti predefinti tra alfabeti e codici di lingua ISO
+Estensioni delle lingue
diff --git a/installer/data/mysql/it-IT/necessari/sysprefs.sql b/installer/data/mysql/it-IT/necessari/sysprefs.sql
new file mode 100644
index 0000000000..ae247c3e73
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/sysprefs.sql
@@ -0,0 +1,282 @@
+/*
+SQLyog Enterprise - MySQL GUI
+MySQL - 5.0.51a-24+lenny2+spu1
+*********************************************************************
+*/
+/*!40101 SET NAMES utf8 */;
+
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('acquisitions','normal','simple|normal','Scegliere Normal, per le acquisizioni basate su un budget o Simple per acquisizioni dati bibliografici','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AddPatronLists','categorycode','categorycode|category_type','Permette all’utente di scegliere da quale lista prendere i dati quando aggiunge un nuovo utente.','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('advancedMARCeditor','0','','Se su ON, nel MARC editor non verranno visualizzati i campi/sottocampi delle descrizioni.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AdvancedSearchTypes','itemtypes','itemtypes|ccode','Selezionare quale set di campi comprenderà la ricerca avanzata per tipo.','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowHoldsOnDamagedItems','1','','Permette l\'inserimento di richieste di prenotazione su copie danneggiate','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowNotForLoanOverride','0','','Se ON, abilita il bibliotecario a poter scegliere di dare in prestito un documento normalmente escluso.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowOnShelfHolds','1','','Permette di inserire prenotazioni su documenti non in prestito.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowRenewalLimitOverride','1','','Se On, permette che i limiti ai rinnovi possano essere superati dal bibliotecario nel modulo della circolazione','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonAssocTag','','','See: http://aws.amazon.com','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonCoverImages','0','','Se ON, visualizza nell’interfaccia del bibliotecario l’immagine della copertina presa dal Web Service di Amazon','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonEnabled','0','','Attiva i contenuti speciali di Amazon Content - se abilitato, DEVI impostare anche AWSAccessKeyID e AmazonAssocTag e messo ON per l\'attivazione generale di Amazon (OPACAmazonContent)','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonLocale','US','US|CA|DE|FR|JP|UK','Usalo per definire il tuo specifico Amazon.com Web Services','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonReviews','0','','Visualizza Amazon reviews sull\'interfaccia dello staff.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonSimilarItems','0','','Messa su ON attiva l\' Amazon Similar Items feature - Devi settare i valori in AWSAccessKeyID e in AmazonAssocTag per usarla','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AnonSuggestions','0','','Imposta un utente anonimo per abilitare i suggerimenti d\'acquisto da utenti non registrati.','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AuthDisplayHierarchy','0','','Se ON attiva la gestione gerarchica dell\'authority. Da usare solo con thesaurus','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('authoritysep','--','10','Carattere usato nella visualizzazione come separatore della lista delle authority. Normalmente è --','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('autoBarcode','annual','incremental|annual|hbyymmincr|OFF','Da usare per impostare la generazione automatica dei barcode: incremental per la tipologia 1, 2, 3; annuale per 2007-0001, 2007-0002; hbyymmincr per HB08010001 dove HB sta per Home Branch (sottobiblioteca predefinita)','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AutoEmailOpacUser','0','','Quando viene creato un account, invia notifica via email all\'utente con i dettagli del nuovo account.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AutoEmailPrimaryAddress','email','email|emailpro|B_email|cardnumber|OFF','Definisce l\'indirizzo email di default dove saranno spedite le email con i dettagli degli account.','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AutoLocation','0','','Se è Attivo, l\'autenticazione via IP è attiva, viene bloccato l\'accesso allo staff client da IP non autorizzati.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AutomaticItemReturn','1','','Se ON, Koha automaticamente trasferirà la copia ritornata dal prestito alla sottobiblioteca di appartenenza','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('autoMemberNum','1','','Se ON, il numero utente è calcolato automaticamente.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AWSAccessKeyID','','','Vedi: http://aws.amazon.com','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AWSPrivateKey','','','Vedi: http://aws.amazon.com. Che questo valore è obbligatorio dal 2009/08/15 se vuoi avere i contenuti extra in aggiunta alle copertine da Amazon.','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BakerTaylorBookstoreURL','','','URL template per i \"My Libary Bookstore\" links. A questo valore viene premesso \"https://\" e poi viene aggiunto il valore di \"key\". Comprende il tuo hostname e il \"Parent Number\". Non mettere nulla se non usi la funzionalità. Esempio: ocls.mylibrarybookstore.com/MLB/actions/searchHandler.do?nextPage=bookDetails&parentNum=10923&key=','');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BakerTaylorEnabled','0','','Attiva o disattiva tutte le richieste a Baker & Taylor features.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BakerTaylorPassword','','','Passwoe per il Content Cafe di Baker & Taylor (contenuto esterno)','Free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BakerTaylorUsername','','','UserName per il Content Cafe di Baker & Taylor (contenuto esterno)','Free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BiblioAddsAuthorities','1','','Se ON, aggiungendo un nuovo record bibliografico il sistema controlla se ci sono i records di authority corrispondenti per i campi collegati con l’authority. Se non ci sono, gli equivalenti rcords di autority sono creati al volo.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BiblioDefaultView','normal','normal|marc|isbd','Per scegliere la visualizzazione di default della scheda dettagliata nel catalogo; scegliere tra normal, marc o isbd.','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BorrowerMandatoryField','city|surname|cardnumber','','Per decidere quali campi sono obbligatori nell\'account di un utente.','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('borrowerRelationship','father|mother','','Definisce la relazione valida tra garante e garanzia (separali con | o ,)','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BorrowersLog','0','','Se ON, logga le azioni di modifica/creazione/cancellazione sui dati utente.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('BorrowersTitles','Sig|Sig.ra|Sig.na','','Definisce i titoli appropriati per gli utenti','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('canreservefromotherbranches','1','','Con attivata la modalità sottobiblioteche indipendenti, un utente da una biblioteca può prenotare un documento di un’altra biblioteca.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('CataloguingLog','0','','Se ON, logga le azioni di modifica, creazione e cancellazione sui record bibliografici. ATTENZIONE: questa feature consuma molto spazio.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('checkdigit','none','none|katipo','Se ON, abilita i controlli sulle tessere utenti: gli stili di controllo tra cui scegliere sono none o \"Katipo\".','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('CircAutocompl','1','','Se ON, si abilita l\'autocompletamento per l\'inserimento dei dati nella circolazione ','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('CircControl','ItemHomeLibrary','PickupLibrary|PatronLibrary|ItemHomeLibrary','Specifica la biblioteca che definisce le politiche di prestito; se ItemLoanLibrary si userà la sottobiblioteca collegata alla copia. Se PatronLibrary la sottobiblioteca a cui e’ iscritto l’utente; se PickupLibrary la sottobiblioteca dove si prende la copia','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('dateformat','metric','metric|us|iso','Definisce il formato data (ovvero us mm/gg/aaaa, metric gg/mm/aaaa o ISO aaaa/mm/gg)','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('DebugLevel','2','0|1|2','Definisce il livello delle informazioni di debug da mandare al browser qualora dovessero verificarsi degli errori (in produzione impostare sempre il valore 0): 0=nessuno 1=medio 2=massimo','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('DefaultClassificationSource','ddc','','Per indicare il sistema di classificazione usato di default dalla bilbioteca. Ad es. Dewey, LCC, ecc.','ClassSources');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('defaultSortField','relevance','relevance|popularity|call_number|pubdate|acqdate|title|author','Specifica il campo usato di default per l\'ordinamento','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('defaultSortOrder','asc','asc|dsc|az|za','Specifica l\'ordinamento dato di default','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('delimiter',';',';|tabulation|,|/||#||','Definisce il carattere usato come separatore di default per l\'esportazione dei report.','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('dontmerge','1',NULL,'If ON, la modifica di un authority record non si propaga a tutti i record bibliografici collegati, chiedi al tuo system administrator di configurare il cron job merge_authorities.pl per fare i questi update di notte','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('emailLibrarianWhenHoldIsPlaced','0','','Se ON, viene inviata un\'email al bibliotecario quando si inserisce una prenotazione.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('EnhancedMessagingPreferences','0','','Se ON, permette agli utenti di scegliere se ricevere messaggi addizionali su copie da restituire o comunque vicino alla data di restituzione.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('expandedSearchOption','0','','Se ON, la ricerca avanzata si espanderà di default','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ExtendedPatronAttributes','0','','Per usare l\'ID e gli attributi in modo esteso','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('finesCalendar','noFinesWhenClosed','ignoreCalendar|noFinesWhenClosed','Per specificare se usare il calendario per calcolare date di scadenza e multe','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('FinesLog','0','','Se ON, logga le multe.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('finesMode','test','off|test|production','Scegli il funzionamento delle multe. \'off\', \'test\' (vengono solo mandate delle mail alla biblioteca) o \'production\' (le multe accumulate vengono inviate all’utente). Il modo ‘production richiede il cronjob accruefines.','Choice');
+-- insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('FrameworksLoaded','auth_val.sql|authority_framework.sql|class_sources.sql|message_transport_types.sql|notices.sql|parameters.sql|patron_categories.sql|sample_holidays.sql|sample_itemtypes.sql|sample_labels.sql|sample_news.sql|sample_notices_message_attributes.sql|sample_notices_message_transports.sql|stopwords.sql|subtag_registry.sql|sysprefs.sql|unimarc_framework.sql|userflags.sql|userpermissions.sql',NULL,'Frameworks loaded through webinstaller','choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('FRBRizeEditions','1','','Se ON, Koha farà delle richieste a uno o più ISBN web services per trovare gli ISBN associabili e li visualizzarà in un tab \'Edizioni\' nella visualizzazione dettagliata','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('gist','0','','Valore predefinito per la Goods and Services tax (l\'IVA) calcolato non in %, ma in forma numerica (0.12 for 12%), impostare a 0 per disabilitarla.','Float');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('globalDueDate','','10','Se impostata forza un’unica data di scadenza per tutti i prestiti','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('GoogleJackets','1','','Se ON, visualizza le copertine usando Google Books','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('hidelostitems','0','','Se ON, viene disabilitata la visualizzazione nell\'OPAC delle copie perse.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('hide_marc','0','','Se su ON, disabilita la visualizzazione dei campi del MARC, codici di sottocampi e indicatori (mostra ancora i dati)','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('holdCancelLength','','','Specifica dopo quanti giorni una prenotazione è cancellata.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('HomeOrHoldingBranch','holdingbranch','holdingbranch|homebranch','Se IndependantBranches e\' settata su ON, allora il sitema legge questa variabile. Se questa variabile e\' sul valore \'homebranch\' quando arriva una copia di un\'altra biblioteca si puo\' registare la restituzione dove la copia e\' arrivata. Se invece vale \'holdingbranch\', allora non si puo fare la restituzione ma solo prenderla e inviarla alla biblioteca di appartenenza; là verrà fatta la restituzione ','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('IndependantBranches','0','','Se è ON, aumenta il livello di sicurezza tra le biblioteche','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('insecure','0','','Se è su ON, tutte le richieste di autenticazioni vengono aggirate. Attenzione!','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('IntranetBiblioDefaultView','normal','','Visualizzazione di default in intranet dei records bibliografici','');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('intranetcolorstylesheet','','50','Definisce il colore da usare nello staff client','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('IntranetmainUserblock','','70|10','Per aggiungere un block HTML che sarà visualizzato nella home page della intranet.','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('IntranetNav','','70|10','Usare tab HTML per aggiungere link nella barra sinistra di navigazione dello Staff Client','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('intranetreadinghistory','1','','Se ON, si abilita per tutti gli utenti lo storico dei documenti richiesti.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('intranetstylesheet','','50','Inserire qui un URL completo da usare come foglio di stile alternativo per il layout della Intranet','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('intranetuserjs','','70|10','Imposta il javascript da includere nella intranet.','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('intranet_includes','includes','','Definisci il nome della dir in cui mettere gli includes per i templates di Koha. Il valore di default è ‘includes’. Se vuoi personalizzare gli includes per cambiare come appare l’Opac, crea una tua dir e inserisci qui il nome da te scelto.','Free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ISBD','#200||{200a}{. 200c}{ : 200e}{200d}{ / 200f}{ ; 200g}{. 200h}{. 200i}|\r\n#210|. – |{210a}{ : 210c}{, 210d}|\r\n#215|. – |{215a}{ ; 215d}|\r\n#225|. – |{(225a}{ ; 225v)}|\r\n#010|. – |{ISBN 010a}|','70|10','Parametri per la visualizzazione ISBD','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('IssueLog','0','','Se ON, logga le attività di prestito.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('IssuingInProcess','0','','Se ON, disattiva le multe se l’utente prendendo un prestito farebbe dei debiti con la biblioteca.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('item-level_itypes','1','','Se ON, abilita la gestione della circolazione a livello di copia, usado le tipologie di copia (Itemtype) e le regole di prestito (Issuing Rules)','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('itemBarcodeInputFilter','whitespace','whitespace|T-prefix|cuecat','Se configurata, permette di definire un filtro su quanto legge il lettore di barcode','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('itemcallnumber','676a','','Il campo/sottocampo MARC usato per calcolare la stringa di collocazione (per la Dewey sarebbe 082ab o 092ab; LOC 050ab o 090ab) potrebbe essere 852hi da un record MARC21 Holding.','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('KohaAdminEmailAddress','koha@cilea.it','','Definisce l’indirizzo email dove vengono spedite le richieste di modifica utente. ','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('kohaspsuggest','','','Per tener traccia delle query di ricerca,per attivarla va definito l\'host:dbname:user:pass','');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('LabelMARCView','standard','standard|economical','Per definire la modalità di visualizzazione di un record MARC','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('language','en,it-IT','','Per impostare la lingua di default dello staff client.','Languages');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('LetterLog','0','','Se ON, logga tutti gli avvisi spediti.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('libraryAddress','','','L\'indirizzo da usare per riecevute, ritardi, ecc se differente dall\'indirizzo \"fisico\" della biblioteca','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('LibraryName','','','Definisce il nome della della biblioteca così come sarà visualizzato nell\'OPAC.','');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('marc','1','','Attiva il controllo del MARC','YesNo');
+-- insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('marcflavour','UNIMARC','MARC21|UNIMARC','Define global MARC flavor (MARC21 or UNIMARC) used for character encoding','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MARCOrgCode','0','','Il MARC Organization Code - http://www.loc.gov/marc/organizations/orgshome.html','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MaxFine','9999','','Multa massima che un utente potrebbe avere per un singolo ritardo.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxItemsInSearchResults','20','','Specifica il numero massimo di copie visualizzate nelle pagine di risultati','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxoutstanding','5','','Definisci il numero massimo di operazioni in corso (prestiti+prenotazioni) dopo il quale si blocca la possibilità di fare prenotazioni','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxreserves','2','','Definisce il numero massimo di prenotazioni che un utente può effettuare.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('memberofinstitution','0','','Se ON, gli utenti possono essere linkati alle istituzioni.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MergeAuthoritiesOnUpdate','1','','Se ON, aggiornando le authorities saranno automaticamente aggiornati anche i record bibliografici','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MIME','EXCEL','EXCEL|OPENOFFICE.ORG','Definisce l’applicazione usata di default per esportare i dati dei report','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('minPasswordLength','3','','Specifica la lunghezza minima della password sia per l\'utente che per lo staff','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('noissuescharge','5','','Definisce l’ammontare massimo di multa che un utente può raggiungere prima di venir sospeso dal prestito','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('noItemTypeImages','0','','Se Attivo, disabilita le immagini relative al tipo documento','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('NotifyBorrowerDeparture','30','','Definisce quanti giorni prima lo staff della circolazione è avvisato della scadenza dell’account di un utente.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('NoZebra','0','','Se ON, l’indicizzazione con il software ZEBRA è non attiva. Con ON le ricerche avvengono su MySQL. Semplica il settaggio ma le ricerche sono più lente. ATTENZIONE: usando la funzionalità NoZebra su collezioni anche modeste la ricerca è veramente lenta.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('NoZebraIndexes','\'title\' => \'200a,200c,200d,200e,225a,225d,225e,225f,225h,225i,225v,500*,501*,503*,510*,512*,513*,514*,515*,516*,517*,518*,519*,520*,530*,531*,532*,540*,541*,545*,604t,610t,605a\',\r\n\'author\' => \'200f,600a,601a,604a,700a,700b,700c,700d,700a,701b,701c,701d,702a,702b,702c,702d,710a,710b,710c,710d,711a,711b,711c,711d,712a,712b,712c,712d\',\r\n\'isbn\' => \'010a\',\r\n\'issn\' => \'011a\',\r\n\'biblionumber => \'0909\',\r\n\'itemtype\' => \'200b\',\r\n\'language\' => \'101a\',\r\n\'publisher\' => \'210c\',\r\n\'date\' => \'210d\',\r\n\'note\' => \r\n\'300a,301a,302a,303a,304a,305a,306az,307a,308a,309a,310a,311a,312a,313a,314a,315a,316a,317a,318a,319a,320a,321a,322a,323a,324a,325a,326a,327a,328a,330a,332a,333a,336a,337a,345a\',\r\n\'Koha-Auth-Number\' => \'6009,6019,6029,6039,6049,6059,6069,6109,7009,7019,7029,7109,7119,7129\',\r\n \'subject\' => \'600*,601*,606*,610*\',\r\n \'dewey\' => \'676a\',\r\n \'homebranch\' => \'995a,995b\',\r\n \'lcn\' => \'995k\'','70|10','Inserire qui l’hash perl che definisce gli indici per l’opzione NoZebra. Ad esempio: \'nome1\' => \'200a,500*\',\'nome2\' => \'...\'','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('numSearchResults','20','','Specifica il numero massimo di documenti da visualizzare nella pagina dei risultati.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OAI-PMH','0','','Se è su ON, è attivato il server OAI-PMH.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OAI-PMH:archiveID','KOHA-OAI-TEST','','Identificativo archivio OAI-PMH','Free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OAI-PMH:MaxCount','50','','OAI-PMH: numero massimo di records possibili in risposta alle query ListRecords e ListIdentifiers','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OAI-PMH:Set','SET,Experimental set\r\nSET:SUBSET,Experimental subset','30|10','Set OAI-PMH messi a disposizione, il nome del set è seguito da una virgola e da una breve descrizione, ciascun set è intervallato da una linea','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OCLCAffiliateID','','','Da usare con FRBRizeEditions e XISBN. Puoi chiedere il necessario AffiliateID qui: http://www.worldcat.org/wcpa/do/AffiliateUserServices?method=initSelfRegister','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACAmazonCoverImages','0','','Se ON, visualizza nell’Opac l’immagine della copertina presa dal Web Service di Amazon','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACAmazonEnabled','0','','Attiva Amazon nell\'OPAC','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACAmazonSimilarItems','0','','Se ON attiva la Amazon Similar Items - Devi avere settato AWSAccessKeyID e AmazonAssocTag','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacAuthorities','0','','Se ON, si attiva il link alla ricerca voci di autorità nell\'OPAC.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACBaseURL','','','Specifica l’URL dell’OPAC, es. opac.mylibrary.com ; http:// è aggiunto in automatico da KOHA.','Free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacbookbag','1','','Se ON, abilita la visualizzazione del carrello.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacBrowser','0','','Se ON, abilita la ricerca soggetti sull\'OPAC (è necessario impostare misc/cronjob/sbuild_browser_and_cloud.pl)','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacCloud','0','','Se ON, sull\'Opac apparirà la nuvola di soggetti','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opaccolorstylesheet','colors.css','','Per definire il colore da usare nell\'OPAC','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opaccredits','','70|10','Per impostare i credits HTML in fondo alla pagina dell\'OPAC','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACdefaultSortField','relevance','relevance|popularity|call_number|pubdate|acqdate|title|author','Specifica il campo usato di default per l\'ordinamento','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACdefaultSortOrder','asc','asc|dsc|za|az','Specifica l\'ordine di default ','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACDisplayExtendedSubInfo','1','','Se ON, nell\'Opac vengono visualizzate altre informazioni, oltre a quelle di base, nella pagina dei dettaglio di ogni utente registrato','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACFRBRizeEditions','1','','Se ON, Koha farà delle richieste a uno o più ISBN web services per trovare gli ISBN associabili e li visualizzarà in un tab \'Edizioni\' nella visualizzazione dettagliata','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacheader','','70|10','Inserire qui HTML da includere come header nell\'OPAC','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacHighlightedWords','1','','Se impostato, le parole cercate nell\'OPAC vengono poi evidenziate ','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACItemHolds','1','','Consente agli utenti dell\'OPAC di inserire prenotazioni su specifici documenti. Se INATTIVO, gli utenti possono solo richiedere la copia dopo che è tornata ad essere disponibile.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACItemsResultsDisplay','statuses','statuses|itemdetails','statuses : mostra solo lo status dei documenti presenti nella lista del risultato. itemdisplay : mostra tutti i dati della collocazione di tali documenti (sottobiblioteca+collocazione) così come appaiono nell\'interfaccia dello staff','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opaclanguages','en,it-IT','','Per impostare la lingua di default dell\'OPAC.','Languages');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opaclanguagesdisplay','1','','Se su ON, consente di visualizzare nell\'OPAC la funzione Modifica Lingua','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opaclayoutstylesheet','','','Inserire qui il nome del foglio di stile (CSS) da usare nell\'OPAC','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacMaintenance','0','','Se Attivo, abilita l\'avviso di manutenzione nell\'OPAC.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacMainUserBlock','
Benvenuto !!
','70|10','Inserire qui una stringa in HTML personalizzata che comparirà nell’area principale della prima pagina dell’OPAC.','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacNav','Links importanti qui.','70|10','Usare tag HTML per aggiungere link nella barra di navigazione dell\'OPAC posta a sinistra. ','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACnumSearchResults','20','','Specifica il numero massimo di risposte da visualizzare nella pagina dei risultati ','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacPasswordChange','1','','Se ON, abilita l\'utente alla modifica della password nell\'OPAC (disabiltare la funzione quando è usato LDAP auth)','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacreadinghistory','1','','Se ON, si abilita la visualizzazione dello storico circolazione utente nell\'OPAC','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacRenewalAllowed','0','','Se ON, gli utenti possono rinnovare i propri prestiti direttamente dal proprio account OPAC','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACShelfBrowser','0','','Abilita/disabilita una ricerca per scaffale (Shelf Browser) nella pagina dettagli documento. ATTENZIONE: questa feature consuma molte risorse nelle collezioni molto grandi.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacsmallimage','','','Inserire un URL completo a un immagine per sostituire il logo KOHA di default ','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacstylesheet','','','Inserire un URL completo qualora si volesse usare nell\'OPAC un foglio di stile alternativo','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACSubscriptionDisplay','economical','economical|off|full','Definisci come visualizzare le informazione degli utenti nell\'OPAC','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacSuppression','0','','Se messa ad ON si attiva la feature Opac Suppression, chiedi al tuo sistemista ulteriori dettagli per configurarla al meglio','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacthemes','prog','','Definisce il tema corrente per l\'interfaccia dell\'OPAC.','Themes');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacTopissue','1','','Se ON, abilita il link al documento più richiesto nell\'OPAC. Attenzione: questa è una feature SPERIMENTALE, la sua attivazione potrebbe sovraccaricare il server.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACURLOpenInNewWindow','1','','Se ON, gli URL nell\'OPAC si aprono in una nuova finestra.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACUserCSS','','','Per aggiungere un CSS da inserire nell\'OPAC tra tag <>.','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacuserjs','','70|20','Definisce il javascript per includerlo nell\'OPAC','Textarea');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacuserlogin','1','','Abilita o disabilita la visualizzazione del login utente.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACViewOthersSuggestions','0','','Se ON, permette di visualizzare nell\'OPAC tutti i suggerimenti d\'acquisto.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('patronimages','jpg','','Per impostare il formato immagine per le foto degli utenti','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('PatronsPerPage','20','20','Numero di utenti visualizzati di default per pagina','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('previousIssuesDefaultSortOrder','asc','asc|desc','Specifica l’ordine dei prestiti precedenti nella pagina di circolazione','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('printcirculationslips','1','','Se ON, abilita la stampa delle ricevute del prestito','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryAutoTruncate','1','','Se ON, è abilitato il troncamento delle query di default','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryFuzzy','0','','Se ON, abilita le opzioni di ricerca fuzzy','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryRemoveStopwords','0','','Se ON, le stopword definite dal bibliotecario saranno tolte dalle ricerche','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryStemming','0','','Se ON, abilita le ricerche con lo stemming (uso di forme variabili)','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryWeightFields','0','','Se ON, abilita le opzioni di ricerca per dare uno peso diverso ai vari campi. Opzione sperimentale','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RandomizeHoldsQueueWeight','0','','Se ON, la coda delle prenotazione nella circolazione avrà un ordine casuale per tutte le collocazioni o solo per quelle collocazioni specificate sotto StaticHoldsQueueWeight, se impostato.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ReceiveBackIssues','5','','Numero di periodici precedenti da visualizzare quando si guarda il dettaglio di una sottoscrizione','');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RenewalPeriodBase','date_due','date_due|now','Per impostare se la data di rinnovo deve essere conteggiata a partire dalla data di scadenza del prestito o a partire dal momento in cui l’utente ne chiede il rinnovo.','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RenewSerialAddsSuggestion','0','','Se ON, puoi aggiungere un nuovo suggerimento durante il rinnovo di un periodico','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RequestOnOpac','1','','Se ON, si abilitano gli utenti globalmente a inserire prenotazione nell\'OPAC','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ReservesMaxPickUpDelay','7','','Definisce il massimo ritardo consentito per poter prendere un documento prenotato.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ReservesNeedReturns','0','','Se ON, una prenotazione messa su una copia disponibile a scaffale deve passare al check della circolazione per essere posta nello status \'In Attesa\' sull\'Opac. Altrimenti se OFF, quando un utente mette una prenotazione su una specifica copia della sua biblioteca, allora la copia acquisce subito lo status \'In Attesa\' sull\'Opac','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ReturnBeforeExpiry','1','','Se su ON, la durata del prestito sarà anticipata se la data di rientro prevista è successiva alla scadenza della tessera dell\'utente.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ReturnLog','1','','Se su ON, abilita i log delle restituzioni dal prestito.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('reviewson','1','','Se ON, abilita la possibilità per gli utenti a inserire recensioni di record bibliografici nell\'OPAC.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RoutingSerials','1','','Se ON, il serial routing è attivato.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('SearchMyLibraryFirst','0','','Se ON, le ricerche in OPAC restituiranno risultati limitatamente alla biblioteca impostata di default dell’utente se questi si è loggato.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('SessionStorage','mysql','mysql|Pg|tmp','Per usare un database o un file temporaneo per l\'archiviazione dei dati della sessione.','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('singleBranchMode','0','','Operando in modalità biblioteca singola, si nasconde nell\'OPAC la selezione delle sottobiblioteche.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('SMSSendDriver','','','Imposta quale driver SMS::Send usare per inviare sms.','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('sortbynonfiling','0','','Ordina i risultati della ricerca usando anche i caratteri non significativi del record (sconsigliato)','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('SpecifyDueDate','1','','Definisce se visulizzare o meno il form “Specifica la data di scadenza” nel modulo della circolazione.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('staffClientBaseURL','','','Specifica l\'URL dello staff client.','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('StaticHoldsQueueWeight','0','','Per specificare una lista delle collocazioni della biblioteca separate da una virgola. Questa lista di collocazioni in fase di elaborazione delle prenotazioni sarà ordinata secondo i valori attribuiti loro – in alternativa, se è anche stato impostata la voce RandomizeHoldsQueueWeight, la lista sarà ordinata in modo casuale.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('SubscriptionHistory','simplified','simplified|full','Define the display preference for serials issue history in OPAC','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('SubscriptionLog','1','','Se su ON, abilita i log degli abbonamenti','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('suggestion','1','','Se ON, abilita nell\'OPAC la funzionalità suggerimenti utente.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TagsEnabled','1','','Se ON abilita le varie funzionalità basate sui Tags. Se OFF disabilita tutte le funzionalità legate ai Tags.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TagsExternalDictionary','','','Percorso sul server all\'eseguibileto ispell, da usare per configurare $Lingua::Ispell::path. Questo dizionario è usato come \"whitelist\" di parole usabile nei Tags.','');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TagsInputOnDetail','1','','Permentti agli utenti di inserire Tags dalla pagina dei dettagli.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TagsInputOnList','0','','Permentti agli utenti di inserire Tags dai risultati di ricerca.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TagsModeration','1','','Se ON, i Tags devono essere approvati prima di essere visibili.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TagsShowOnDetail','10','','Numero di Tags da visualaizzare sulla pagina di dettaglio. 0 vale come off.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TagsShowOnList','6','','Numero di Tags da visualizzare nei risultati di ricarca. 0 vale come off.','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('template','prog','','Definisce il template dell\'interfaccia staff.','Themes');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TemplateEncoding','utf-8','iso-8859-1|utf-8','Per definire la codifica dei caratteri di default.','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ThingISBN','1','','Usa con FRBRizeEditions. Se ON, Koha userà ilweb service ThingISBN per compilare il tab \'Editions\' sulla pagina dei dettagli.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('timeout','30600','','l timeout (in secondi) per ripetere l’autenticazione dopo un periodo di inattività','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('todaysIssuesDefaultSortOrder','desc','asc|desc','Specifica l\'ordinamento dei fascicoli del giorno nella pagina della circolazione','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('TransfersMaxDaysWarning','3','','Per definire il numero dei giorni massimi prima di sospettare la presenza di problemi per un trasferimento.','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('uppercasesurnames','0','','Se ON, i cognomi sono automaticamente convertiti in lettere maiuscole nel form d’iscrizione degli utenti.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('URLLinkText','URLLinkText','','Testo da visualizzare come link nell\'OPAC','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('useDaysMode','Calendar','Calendar|Days|Datedue','Scegliere il metodo per calcolare la data di restituzione: seleziona Calendar per usare il modulo con le festività e Days per ignorare i giorni festivi.','Choice');
+-- insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('Version','3.0006005',NULL,'The Koha database version. WARNING: Do not change this value manually, it is maintained by the webinstaller',NULL);
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('viewISBD','1','','Se ON permette la vista in formato ISBD dei records bibliografici','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('viewLabeledMARC','0','','Se ON permette la vista con le etichette MARC dei records bibliografichi','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('viewMARC','1','','Se ON permette la vista \'MARC\' dei records bibliografici','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('virtualshelves','1','','Se ON, abilita la gestione delle liste','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('WebBasedSelfCheck','0','','Se su ON, abilita l\'autoprestito su web.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('XISBN','1','','Usa con FRBRizeEditions. Se ON, Koha useà il wb service OCLC xISBN per popolare il tab \'Edizioni\' nella pagina dei dettagli. See: http://www.worldcat.org/affiliate/webservices/xisbn/app.jsp','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('XISBNDailyLimit','499','','Il web service xISBN Web è gratisi per entità non for profit se si unasno non più di 500 richieste al giorno','Integer');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('XSLTDetailsDisplay','0','','Abilita il controllo dei fogli di stile XLS sulla pagina dettagli nell’intranet','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('XSLTResultsDisplay','0','','Abilita il controllo dei fogli di stile XLS sulla pagina dei risultati nell’intranet.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACXSLTDetailsDisplay','0','','Abilita il controllo dei fogli di stile XLS sulla pagina dettagli nell’OPAC.','YesNo');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACXSLTResultsDisplay','0','','Abilita il controllo dei fogli di stile XLS sulla pagina dei risultati nell’OPAC.','YesNo');
+
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('yuipath','local','local|http://yui.yahooapis.com/2.5.1/build','Inserire qui il percorso alle biblioteche YUI, se si usa Koha offline scegliere la voce local','Choice');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('z3950AuthorAuthFields','701,702,700','','Definisce i campi dei record MARC per le Personal Name Authorities che andranno a riempire il biblio.author','free');
+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('z3950NormalizeAuthor','0','','Se ON, le Personal Name Authorities rimpiazzeranno gli autori nel biblio.author','YesNo');
---
+--- Add from eng
+---
+INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('AcqCreateItem','cataloguing','ordering|receiving|cataloguing','Define when the item is created : when ordering, when receiving, or in cataloguing module','Choice');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AllowAllMessageDeletion','0','Allow any Library to delete any message','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('AllowHoldDateInFuture','0','If set a date field is displayed on the Hold screen of the Staff Interface, allowing the hold date to be set in the future.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACAllowHoldDateInFuture','0','If set, along with the AllowHoldDateInFuture system preference, OPAC users can set the date of a hold to be in the future.','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AllowHoldPolicyOverride', '0', 'Allow staff to override hold policies when placing holds',NULL,'YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonDevKey', '', 'Voir : aws-portal.amazon.com/gp/aws/developer/registration/index.html', '', '');
+INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('AutoSelfCheckAllowed', '0', 'For corporate and special libraries which want web-based self-check available from any PC without the need for a manual staff login. Most libraries will want to leave this turned off. If on, requires self-check ID and password to be entered in AutoSelfCheckID and AutoSelfCheckPass sysprefs.', '', 'YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AutoSelfCheckID','','Staff ID with circulation rights to be used for automatic web-based self-check. Only applies if AutoSelfCheckAllowed syspref is turned on.','','free');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AutoSelfCheckPass','','Password to be used for automatic web-based self-check. Only applies if AutoSelfCheckAllowed syspref is turned on.','','free');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('soundon','0','Enable circulation sounds during checkin and checkout in the staff interface. Not supported by all web browsers yet.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Turn ON Babeltheque content - See babeltheque.com to subscribe to this service','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('BranchTransferLimitsType', 'itemtype', 'When using branch transfer limits, choose whether to limit by itemtype or collection code.','itemtype|ccode','Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('casAuthentication', '0', 'Enable or disable CAS authentication', '', 'YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('casLogout', '0', 'Does a logout from Koha should also log the user out of CAS?', '', 'YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('casServerUrl', 'https://localhost:8443/cas', 'URL of the cas server', '', 'Free');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ceilingDueDate','','If set, date due will not be past this date. Enter date according to the dateformat System Preference',NULL,'free');
+INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('CurrencyFormat','FR','US|FR','Determines the display format of currencies. eg: \'36000\' is displayed as \'360 000,00\' in \'FR\' or \'360,000.00\' in \'US\'.','Choice');
+INSERT INTO `systempreferences` ( `variable` , `value` , `options` , `explanation` , `type` ) VALUES ('DisplayClearScreenButton', '0', '', 'If set to ON, a clear screen button will appear on the circulation page.', 'YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('DisplayMultiPlaceHold','1','Display the ability to place multiple holds or not','','YesNo');
+INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('DisplayOPACiconsXSLT', '1', '', 'If ON, displays the format, audience, type icons in XSLT MARC21 results and display pages.', 'YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('EnableOpacSearchHistory', '1', 'Enable or disable opac search history', 'YesNo','');
+INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('FilterBeforeOverdueReport','0','Do not run overdue report until filter selected','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('hideBiblioNumber',0,'Si activé, le numéro de notice Koha est caché dans la page de détail de l''OPAC',NULL,'YesNo');
+INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('HidePatronName', '0', '', 'If this is switched on, patron''s cardnumber will be shown instead of their name on the holds and catalog screens', 'YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ILS-DI','0','Enables ILS-DI services at OPAC.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ILS-DI:Authorized_IPs','','.','Restricts usage of ILS-DI to some IPs','Free');
+INSERT INTO systempreferences VALUES ('ImageLimit',5,'','Limit images stored in the database by the Patron Card image manager to this number.','Integer');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsClientCode', '0', 'Client Code for using Syndetics Solutions content','','free');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsEnabled', '0', 'Turn on Syndetics Enhanced Content','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsCoverImages', '0', 'Display Cover Images from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsTOC', '0', 'Display Table of Content information from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsSummary', '0', 'Display Summary Information from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsEditions', '0', 'Display Editions from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsExcerpt', '0', 'Display Excerpts and first chapters on OPAC from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsReviews', '0', 'Display Reviews on OPAC from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsAuthorNotes', '0', 'Display Notes about the Author on OPAC from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsAwards', '0', 'Display Awards on OPAC from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsSeries', '0', 'Display Series information on OPAC from Syndetics','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsCoverImageSize', 'MC', 'Choose the size of the Syndetics Cover Image to display on the OPAC detail page, MC is Medium, LC is Large','MC|LC','Choice');
+INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('LibraryThingForLibrariesID','','See:http://librarything.com/forlibraries/','','free');
+INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('LibraryThingForLibrariesEnabled','0','Enable or Disable Library Thing for Libraries Features','','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('LibraryThingForLibrariesTabbedView','0','Put LibraryThingForLibraries Content in Tabs.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('intranetbookbag','1','If ON, enables display of Cart feature in the intranet','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('numReturnedItemsToShow','20','Number of returned items to show on the check-in page',NULL,'Integer');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OAI-PMH:ConfFile','','If empty, Koha OAI Server operates in normal mode, otherwise it operates in extended mode.',NULL,'File');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('OPACAmazonReviews', '0', 'Display Amazon readers reviews on OPAC','','YesNo');
+INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('OPACDisplayRequestPriority','0','','Show patrons the priority level on holds in the OPAC','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACFineNoRenewals','100','Fine limit above which user cannot renew books via OPAC','','Integer');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACFinesTab','1','If OFF the patron fines tab in the OPAC is disabled.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACSearchForTitleIn','
','Enter the HTML that will appear in the \'Search for this title in\' box on the detail page in the OPAC. Enter {TITLE}, {AUTHOR}, or {ISBN} in place of their respective variables in the URL. Leave blank to disable \'More Searches\' menu.','70|10','Textarea');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('RoutingListAddReserves','1','If ON the patrons on routing lists are automatically added to holds on the issue.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacSerialDefaultTab', 'subscriptions', 'Define the default tab for serials in OPAC.', 'holdings|serialcollection|subscriptions', 'Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACShowCheckoutName','0','Displays in the OPAC the name of patron who has checked out the material. WARNING: Most sites should leave this off. It is intended for corporate or special sites which need to track who has the item.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACPatronDetails','1','If OFF the patron details tab in the OPAC is disabled.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('OrderPdfFormat','pdfformat::layout3pages','Controls what script is used for printing (basketgroups)','','free');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('OrderPdfTemplate','','Uploads a PDF template to use for printing baskets','NULL','Upload');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OverdueNoticeBcc','','Email address to bcc outgoing overdue notices sent by email','','free');
+NSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OverduesBlockCirc','noblock','When checking out an item should overdues block checkout, generate a confirmation dialogue, or allow checkout','noblock|confirmation|block','Choice');
+INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('ShowPatronImageInWebBasedSelfCheck', '0', 'If ON, displays patron image when a patron uses web-based self-checkout', '', 'YesNo');
+INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('SpineLabelAutoPrint', '0', '', 'If this setting is turned on, a print dialog will automatically pop up for the quick spine label printer.', 'YesNo');
+INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('SpineLabelFormat', '', '30|10', 'This preference defines the format for the quick spine label printer. Just list the fields you would like to see in the order you would like to see them, surrounded by <>, for example .', 'Textarea');
+INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('SpineLabelShowPrintOnBibDetails', '0', '', 'If turned on, a "Print Label" link will appear for each item on the bib details page in the staff interface.', 'YesNo');
diff --git a/installer/data/mysql/it-IT/necessari/userflags.sql b/installer/data/mysql/it-IT/necessari/userflags.sql
new file mode 100644
index 0000000000..eaabb50dbf
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/userflags.sql
@@ -0,0 +1,21 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `userflags` VALUES(0,'superlibrarian','Accesso a tutte le funzioni bibliotecarie',0);
+INSERT INTO `userflags` VALUES(1,'circulate','Libri per la circolazione',0);
+INSERT INTO `userflags` VALUES(2,'catalogue','Visualizza il catalogo (interfaccia del bibliotecario)',0);
+INSERT INTO `userflags` VALUES(3,'parameters','Imposta i parametri di Koha',0);
+INSERT INTO `userflags` VALUES(4,'borrowers','Aggiungi o modifica gli utenti',0);
+INSERT INTO `userflags` VALUES(5,'permissions','Imposta i permessi utente',0);
+INSERT INTO `userflags` VALUES(6,'reserveforothers','Prenota i libri per gli utenti',0);
+INSERT INTO `userflags` VALUES(7,'borrow','Presta i libri',1);
+INSERT INTO `userflags` VALUES(9,'editcatalogue','Modifica il catalogo (modifica i dati bibliografici e titoli)',0);
+INSERT INTO `userflags` VALUES(10,'updatecharges','Aggiorna le tariffe del prestito',0);
+INSERT INTO `userflags` VALUES(11,'acquisition','Gestione delle acquisizioni e dei suggerimenti d\'acquisto',0);
+INSERT INTO `userflags` VALUES(12,'management','Imposta i parametri della gestione della biblioteca',0);
+INSERT INTO `userflags` VALUES(13,'tools','Usa i tools (export, import, barcodes )',0);
+INSERT INTO `userflags` VALUES(14,'editauthorities','autorizza la modifica delle authorities',0);
+INSERT INTO `userflags` VALUES(15,'serials','autorizza la gestione degli abbonamenti ai periodici',0);
+INSERT INTO `userflags` VALUES(16,'reports','autorizza accesso al modulo dei reports',0);
+INSERT INTO `userflags` VALUES(17,'staffaccess','modifica la login o i permessi degli staff users',0);
+
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
diff --git a/installer/data/mysql/it-IT/necessari/userflags.txt b/installer/data/mysql/it-IT/necessari/userflags.txt
new file mode 100644
index 0000000000..2326146281
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/userflags.txt
@@ -0,0 +1 @@
+Flags dei permessi all'utente staff.
diff --git a/installer/data/mysql/it-IT/necessari/userpermissions.sql b/installer/data/mysql/it-IT/necessari/userpermissions.sql
new file mode 100644
index 0000000000..63761df6e4
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/userpermissions.sql
@@ -0,0 +1,52 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO permissions (module_bit, code, description) VALUES
+ ( 1, 'circulate_remaining_permissions', 'Permessi rimanenti per la circolazione'),
+ ( 1, 'override_renewals', 'Sblocca i rinnovi bloccati'),
+ ( 6, 'place_holds', 'Fai prenotazioni per gli utenti'),
+ ( 6, 'modify_holds_priority', 'Modifica priorità prenotazioni'),
+ ( 9, 'edit_catalogue', 'Cataloga (crea/modifica dati bibliografici e di copia)'),
+ ( 9, 'fast_cataloging', 'Catalogazione veloce'),
+ ( 9, 'edit_items', 'Crea/modifica copie'),
+ (11, 'vendors_manage', 'Crea/modifica fornitori'),
+ (11, 'contracts_manage', 'Crea/modifica contratti'),
+ (11, 'period_manage', 'Gestisci scadenze budgets'),
+ (11, 'budget_manage', 'Crea/modifica budgets'),
+ (11, 'budget_modify', 'Modifica budget (non li crea ma modifica gli esistenti)'),
+ (11, 'planning_manage', 'Intervieni sulla pianificazione dei budgets'),
+ (11, 'order_manage', 'Gestisci ordini e raccoglitori'),
+ (11, 'group_manage', 'Gestisci ordini e raccoglitori raggruppati'),
+ (11, 'order_receive', 'Gestisci arrivi'),
+ (11, 'budget_add_del', 'Aggiungi e cancella budgets (senza modificarli)'),
+ (13, 'edit_news', 'Scrivi le news per l\'OPAC e per l\'interfaccia staff'),
+ (13, 'label_creator', 'Crea etichette da stampare e barcodes dal catalogo e dai dati degli utenti'),
+ (13, 'edit_calendar', 'Definisci i giorni di chiusura della biblioteca'),
+ (13, 'moderate_comments', 'Modera i commenti degli utenti'),
+ (13, 'edit_notices', 'Definisci gli avvisi'),
+ (13, 'edit_notice_status_triggers', 'Imposta il messaggio o lo stato degli avvisi per le copie in ritardo'),
+ (13, 'view_system_logs', 'Scorri i log di sistema'),
+ (13, 'inventory', 'Lavora sugli inventari (stocktaking) del tuo catalogo'),
+ (13, 'stage_marc_import', 'Opera sui Record MARC presenti nella zona di lavoro'),
+ (13, 'manage_staged_marc', 'Gestisci i record MARC in lavorazione, inclusi il completare e il cancellare gli import'),
+ (13, 'export_catalog', 'Esporta i dati bibliografici e di copia'),
+ (13, 'import_patrons', 'Importa i dati utente'),
+ (13, 'delete_anonymize_patrons', 'Cancella i vecchi prestiti e rendi anonimo lo storico della circolazione (canella in lettura lo storico utenti prestito)'),
+ (13, 'batch_upload_patron_images', 'Aggiorna le foto utente in modalità batch o al momento'),
+ (13, 'schedule_tasks', 'Schedula i task da far andare'),
+ (13, 'items_batchmod', 'Perform batch modification of items'),
+ (13, 'items_batchdel', 'Perform batch deletion of items'),
+ (13, 'manage_csv_profiles', 'Gestisci i profili CSV di export'),
+ (13, 'moderate_tags', 'Modera i tag inseriti dagli utenti'),
+ (13, 'rotating_collections', 'Gestisci le collezioni circolanti (rotating collections)'),
+ (15, 'check_expiration', 'Controlla la scadenza di una risora in continuazione'),
+ (15, 'claim_serials', 'Richiedi i fascicoli non arrivati'),
+ (15, 'create_subscription', 'Crea un nuovo abbonamento'),
+ (15, 'delete_subscription', 'Cancella un abbonamento esistente'),
+ (15, 'edit_subscription', 'Modifica un abbonamento esistente'),
+ (15, 'receive_serials', 'Ricevi fascicoli'),
+ (15, 'renew_subscription', 'Rinnova un abbonamento'),
+ (15, 'routing', 'Crea/Manipola liste di distribuzione dei fascicoli ( routing list)'),
+ (16, 'execute_reports', 'Esegui reports SQL'),
+ (16, 'create_reports', 'Crea reports SQL')
+;
+SET FOREIGN_KEY_CHECKS=1;
diff --git a/installer/data/mysql/it-IT/necessari/userpermissions.txt b/installer/data/mysql/it-IT/necessari/userpermissions.txt
new file mode 100644
index 0000000000..a3a0dd2974
--- /dev/null
+++ b/installer/data/mysql/it-IT/necessari/userpermissions.txt
@@ -0,0 +1 @@
+Autorizzazioni staff utenti dettagliate.
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index a0b5c4adaa..2bd4e219d5 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -2871,12 +2871,28 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
print "Upgrade to $DBversion done (adding basketgroups)\n";
SetVersion ($DBversion);
}
-
$DBversion = '3.01.00.077';
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
$dbh->do("SET FOREIGN_KEY_CHECKS=0 ");
+ # create a mapping table holding the info we need to match orders to budgets
+ $dbh->do('DROP TABLE IF EXISTS fundmapping');
+ $dbh->do(
+ q|CREATE TABLE fundmapping AS
+ SELECT aqorderbreakdown.ordernumber, branchcode, bookfundid, budgetdate, entrydate
+ FROM aqorderbreakdown JOIN aqorders ON aqorderbreakdown.ordernumber = aqorders.ordernumber|);
+ # match the new type of the corresponding field
+ $dbh->do('ALTER TABLE fundmapping modify column bookfundid varchar(30)');
+ # System did not ensure budgetdate was valid historically
+ $dbh->do(q|UPDATE fundmapping SET budgetdate = entrydate WHERE budgetdate = '0000-00-00' OR budgetdate IS NULL|);
+ # We save the map in fundmapping in case you need later processing
+ $dbh->do(q|ALTER TABLE fundmapping add column aqbudgetid integer|);
+ # these can speed processing up
+ $dbh->do(q|CREATE INDEX fundmaporder ON fundmapping (ordernumber)|);
+ $dbh->do(q|CREATE INDEX fundmapid ON fundmapping (bookfundid)|);
+
$dbh->do("DROP TABLE IF EXISTS `aqbudgetperiods` ");
+
$dbh->do(qq|
CREATE TABLE `aqbudgetperiods` (
`budget_period_id` int(11) NOT NULL auto_increment,
@@ -2995,10 +3011,31 @@ BUDGETDROPDATES
ADD COLUMN `budgetgroup_id` int(11) NOT NULL,
ADD COLUMN `sort1_authcat` varchar(10) default NULL,
ADD COLUMN `sort2_authcat` varchar(10) default NULL" );
+ # We need to map the orders to the budgets
+ # For Historic reasons this is more complex than it should be on occasions
+ my $budg_arr = $dbh->selectall_arrayref(
+ q|SELECT aqbudgets.budget_id, aqbudgets.budget_code, aqbudgetperiods.budget_period_startdate,
+ aqbudgetperiods.budget_period_enddate
+ FROM aqbudgets JOIN aqbudgetperiods ON aqbudgets.budget_period_id = aqbudgetperiods.budget_period_id
+ ORDER BY budget_code, budget_period_startdate|, { Slice => {} });
+ # We arbitarily order on start date, this means if you have overlapping periods the order will be
+ # linked to the latest matching budget YMMV
+ my $b_sth = $dbh->prepare(
+ 'UPDATE fundmapping set aqbudgetid = ? where bookfundid =? AND budgetdate >= ? AND budgetdate <= ?');
+ for my $b ( @{$budg_arr}) {
+ $b_sth->execute($b->{budget_id}, $b->{budget_code}, $b->{budget_period_startdate}, $b->{budget_period_enddate});
+ }
+ # move the budgetids to aqorders
+ $dbh->do(q|UPDATE aqorders, fundmapping SET aqorders.budget_id = fundmapping.aqbudgetid
+ WHERE aqorders.ordernumber = fundmapping.ordernumber AND fundmapping.aqbudgetid IS NOT NULL|);
+ # NB fundmapping is left as an accontants trail also if you have budgetids that werent set
+ # you can decide what to do with them
+ $dbh->do(
+ q|UPDATE aqorders, aqbudgets SET aqorders.budgetgroup_id = aqbudgets.budget_period_id
+ WHERE aqorders.budget_id = aqbudgets.budget_id|);
# cannot do until aqorderbreakdown removed
# $dbh->do("DROP TABLE aqbookfund ");
-
# $dbh->do("ALTER TABLE aqorders ADD FOREIGN KEY (`budget_id`) REFERENCES `aqbudgets` (`budget_id`) ON UPDATE CASCADE " ); ????
$dbh->do("SET FOREIGN_KEY_CHECKS=1 ");
@@ -3701,6 +3738,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
+$DBversion = '3.01.00.999';
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ print "Upgrade to $DBversion done (3.2.0 release candidate)\n";
+ SetVersion ($DBversion);
+}
+
+
=item DropAllForeignKeys($table)
Drop all foreign keys of the table $table
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
index eda798548e..228ebf35eb 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
@@ -87,7 +87,7 @@ function confirm_items_deletion() {
{ text: _("Attach Item"), url: "/cgi-bin/koha/cataloguing/moveitem.pl?biblionumber=" },
{ text: _("Edit as New (Duplicate)"), url: "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=&frameworkcode=&op=duplicate" },
{ text: _("Delete Record"), onclick: {fn: confirm_deletion },id:'disabled' },
- { text: _("Delete all Items"), onclick: {fn: confirm_items_deletion } }
+ { text: _("Delete all Items"), onclick: {fn: confirm_items_deletion },id:'disabled' }
];
var savemenu = [
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc
index 803184bdf7..d1b096e675 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc
@@ -67,7 +67,7 @@ YAHOO.util.Event.onContentReady("header_search", function() {