open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
my $xml = XML::Writer->new(OUTPUT => $fh, DATA_MODE => 1, DATA_INDENT => 2, );
$xml->xmlDecl('UTF-8');
+ $xml->startTag('document');
+
$xml->startTag('authorisedvalues');
my $query = "SELECT category,authorised_value,lib,lib_opac,imageurl FROM authorised_values WHERE category != 'ITEMTYPECAT'";
my $sth = $dbh->prepare($query);
$xml->endTag('value');
}
$xml->endTag('authorisedvalues');
+
+ $xml->startTag('categories');
+ $query = "SELECT category_name FROM authorised_value_categories WHERE category_name != 'ITEMTYPECAT'";
+ $sth = $dbh->prepare($query);
+ $sth->execute();
+ while (my @row = $sth->fetchrow_array) {
+ $xml->startTag('value');
+ $xml->dataElement('name', $row[0]);
+ $xml->endTag('value');
+ }
+ $xml->endTag('categories');
+
+ $xml->endTag('document');
$xml->end();
close $fh;
return;
my $sth = $dbh->prepare($query);
$sth->execute();
- foreach my $node ($dom->findnodes('//value')) {
+ $query = "DELETE FROM authorised_value_categories WHERE category_name != 'ITEMTYPECAT'";
+ $sth = $dbh->prepare($query);
+ $sth->execute();
+
+ foreach my $node ($dom->findnodes('/document/categories/value')) {
+ my $name = sql_str_not_null($node->findvalue('./name'));
+ $query = "INSERT INTO authorised_value_categories (category_name) VALUES ($name)";
+ $sth = $dbh->prepare($query);
+ $sth->execute();
+ }
+
+ foreach my $node ($dom->findnodes('/document/authorisedvalues/value')) {
my $category = sql_str($node->findvalue('./category'));
my $authorised_value = sql_str($node->findvalue('./authorised_value'));
my $lib = sql_str($node->findvalue('./lib'));