hidding hidden & isurl constraints into MARC subfield structure
authortipaul <tipaul>
Fri, 28 May 2004 08:24:14 +0000 (08:24 +0000)
committertipaul <tipaul>
Fri, 28 May 2004 08:24:14 +0000 (08:24 +0000)
C4/Biblio.pm
C4/SearchMarc.pm
admin/marc_subfields_structure.pl

index 41bbc18..be06332 100644 (file)
@@ -239,7 +239,7 @@ sub MARCgettagslib {
                $res->{$tag}->{mandatory}=$mandatory;
        }
 
-       $sth=$dbh->prepare("select tagfield,tagsubfield,$libfield as lib,tab, mandatory, repeatable,authorised_value,thesaurus_category,value_builder,kohafield,seealso from marc_subfield_structure where itemtype=? order by tagfield,tagsubfield");
+       $sth=$dbh->prepare("select tagfield,tagsubfield,$libfield as lib,tab, mandatory, repeatable,authorised_value,thesaurus_category,value_builder,kohafield,seealso,hidden,isurl from marc_subfield_structure where itemtype=? order by tagfield,tagsubfield");
        $sth->execute($itemtype);
 
        my $subfield;
@@ -248,7 +248,9 @@ sub MARCgettagslib {
        my $value_builder;
        my $kohafield;
        my $seealso;
-       while ( ($tag, $subfield, $lib, $tab, $mandatory, $repeatable,$authorised_value,$thesaurus_category,$value_builder,$kohafield,$seealso) = $sth->fetchrow) {
+       my $hidden;
+       my $isurl;
+       while ( ($tag, $subfield, $lib, $tab, $mandatory, $repeatable,$authorised_value,$thesaurus_category,$value_builder,$kohafield,$seealso,$hidden,$isurl) = $sth->fetchrow) {
                $res->{$tag}->{$subfield}->{lib}=$lib;
                $res->{$tag}->{$subfield}->{tab}=$tab;
                $res->{$tag}->{$subfield}->{mandatory}=$mandatory;
@@ -258,6 +260,8 @@ sub MARCgettagslib {
                $res->{$tag}->{$subfield}->{value_builder}=$value_builder;
                $res->{$tag}->{$subfield}->{kohafield}=$kohafield;
                $res->{$tag}->{$subfield}->{seealso}=$seealso;
+               $res->{$tag}->{$subfield}->{hidden}=$hidden;
+               $res->{$tag}->{$subfield}->{isurl}=$isurl;
        }
        return $res;
 }
@@ -2199,6 +2203,9 @@ Paul POULAIN paul.poulain@free.fr
 
 # $Id$
 # $Log$
+# Revision 1.90  2004/05/28 08:25:53  tipaul
+# hidding hidden & isurl constraints into MARC subfield structure
+#
 # Revision 1.89  2004/05/27 21:47:21  rangi
 # Fix for bug 787
 #
index 4721601..9200a1f 100644 (file)
@@ -219,58 +219,62 @@ sub catalogsearch {
 
        # we have bibid list. Now, loads title and author from [offset] to [offset]+[length]
        my $counter = $offset;
-       $sth = $dbh->prepare("SELECT biblio.biblionumber,author, title, items.holdingbranch, items.itemcallnumber, bibid
-                                                       FROM biblio, marc_biblio left join items on items.biblionumber = biblio.biblionumber
+       $sth = $dbh->prepare("SELECT biblio.*, biblioitems.*, items.*
+                                                       FROM biblio, marc_biblio 
+                                                       LEFT JOIN items on items.biblionumber = biblio.biblionumber
+                                                       LEFT JOIN biblioitems on biblio.biblionumber = biblioitems.biblionumber
                                                        WHERE biblio.biblionumber = marc_biblio.biblionumber AND bibid = ?
                                                        GROUP BY items.biblionumber, items.holdingbranch, items.itemcallnumber");
        my @finalresult = ();
        my @CNresults=();
        my $oldbiblionumber=0;
        my $totalitems=0;
-       my ($biblionumber,$author,$title,$holdingbranch, $itemcallnumber, $bibid);
+       my $oldline;
+#      my ($biblionumber,$author,$title,$holdingbranch, $itemcallnumber, $bibid);
        my ($oldbibid, $oldauthor, $oldtitle,$oldbiblionumber);
        while (($counter <= $#result) && ($counter <= ($offset + $length))) {
                $sth->execute($result[$counter]);
-               while (($biblionumber,$author,$title,$holdingbranch, $itemcallnumber, $bibid) = $sth->fetchrow) {
-#                      warn "bibid : $oldbiblionumber ($biblionumber,$author,$title,$holdingbranch, $itemcallnumber, $bibid)";
+               while (my $line = $sth->fetchrow_hashref) {
                        # parse the result, putting holdingbranch & itemcallnumber in separate array
-                       # then author, title & 1st array in main array
-                       if ($oldbiblionumber && ($oldbiblionumber ne $biblionumber)) {
-                               my %line;
-                               $line{bibid}=$oldbibid;
-                               $line{author}=$oldauthor;
-                               $line{title}=$oldtitle;
-                               $line{totitem} = $totalitems;
-                               $line{biblionumber} = $oldbiblionumber;
+                       # then all other fields in the main array
+                       if ($oldbiblionumber && ($oldbiblionumber ne $line->{biblionumber})) {
+                               my %newline;
+                               %newline = %$oldline;
+                               $newline{totitem} = $totalitems;
+                               $newline{biblionumber} = $oldbiblionumber;
                                my @CNresults2= @CNresults;
-                               $line{CN} = \@CNresults2;
+                               $newline{CN} = \@CNresults2;
+                           $newline{'even'} = 1 if $counter % 2 == 0;
+                               $newline{'odd'} = 1 if $counter % 2 == 1;
                                @CNresults = ();
-                               push @finalresult, \%line;
+                               push @finalresult, \%newline;
                                $totalitems=0;
                        }
-                       $oldbibid = $bibid;
-                       $oldauthor = $author;
-                       $oldtitle = $title;
-                       $oldbiblionumber = $biblionumber;
-                       $totalitems++ if ($holdingbranch);
+                       $oldbiblionumber = $line->{biblionumber};
+                       $totalitems++ if ($line->{holdingbranch});
+                       $oldline = $line;
+                       # item callnumber & branch
                        my %lineCN;
-                       $lineCN{holdingbranch} = $holdingbranch;
-                       $lineCN{itemcallnumber} = $itemcallnumber;
+                       $lineCN{holdingbranch} = $line->{holdingbranch};
+                       $lineCN{itemcallnumber} = $line->{itemcallnumber};
                        push @CNresults,\%lineCN;
                }
                $counter++;
        }
 # add the last line, that is not reached byt the loop / if ($oldbiblionumber...)
-       my %line;
-       $line{bibid}=$oldbibid;
-       $line{author}=$oldauthor;
-       $line{title}=$oldtitle;
-       $line{totitem} = $totalitems;
-       $line{biblionumber} = $oldbiblionumber;
+       my %newline;
+       %newline = %$oldline;
+       $newline{totitem} = $totalitems;
+       $newline{biblionumber} = $oldbiblionumber;
        my @CNresults2= @CNresults;
-       $line{CN} = \@CNresults2;
+       $newline{CN} = \@CNresults2;
+       $newline{'even'} = 1 if $counter % 2 == 0;
+       $newline{'odd'} = 1 if $counter % 2 == 1;
        @CNresults = ();
-       push @finalresult, \%line;
+       my @CNresults2= @CNresults;
+       $newline{CN} = \@CNresults2;
+       @CNresults = ();
+       push @finalresult, \%newline;
        my $nbresults = $#result + 1;
        return (\@finalresult, $nbresults);
 }
index bc1b728..9688ab7 100755 (executable)
@@ -33,7 +33,7 @@ sub StringSearch  {
        $searchstring=~ s/\'/\\\'/g;
        my @data=split(' ',$searchstring);
        my $count=@data;
-       my $sth=$dbh->prepare("Select tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,thesaurus_category,value_builder from marc_subfield_structure where (tagfield like ? and itemtype=?) order by tagfield");
+       my $sth=$dbh->prepare("Select * from marc_subfield_structure where (tagfield like ? and itemtype=?) order by tagfield");
        $sth->execute("$searchstring%",$itemtype);
        my @results;
        my $cnt=0;
@@ -139,7 +139,7 @@ if ($op eq 'add_form') {
        closedir DIR;
 
        # build values list
-       my $sth=$dbh->prepare("select tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,thesaurus_category,value_builder from marc_subfield_structure where tagfield=? and itemtype=?"); # and tagsubfield='$tagsubfield'");
+       my $sth=$dbh->prepare("select * from marc_subfield_structure where tagfield=? and itemtype=?"); # and tagsubfield='$tagsubfield'");
        $sth->execute($tagfield,$itemtype);
        my @loop_data = ();
        my $toggle="white";
@@ -192,6 +192,8 @@ if ($op eq 'add_form') {
                                        );
                $row_data{repeatable} = CGI::checkbox("repeatable$i",$data->{'repeatable'}?'checked':'',1,'');
                $row_data{mandatory} = CGI::checkbox("mandatory$i",$data->{'mandatory'}?'checked':'',1,'');
+               $row_data{hidden} = CGI::checkbox("hidden$i",$data->{'hidden'}?'checked':'',1,'');
+               $row_data{isurl} = CGI::checkbox("isurl$i",$data->{'isurl'}?'checked':'',1,'');
                $row_data{bgcolor} = $toggle;
                push(@loop_data, \%row_data);
                $i++;
@@ -216,6 +218,8 @@ if ($op eq 'add_form') {
                $row_data{seealso} = "";
                $row_data{repeatable} = CGI::checkbox('repeatable','',1,'');
                $row_data{mandatory} = CGI::checkbox('mandatory','',1,'');
+               $row_data{hidden} = CGI::checkbox('hidden','',1,'');
+               $row_data{isurl} = CGI::checkbox('isurl','',1,'');
                $row_data{kohafield}= CGI::scrolling_list( -name=>'kohafield',
                                        -values=> \@kohafields,
                                        -default=> "",
@@ -249,8 +253,8 @@ if ($op eq 'add_form') {
 } elsif ($op eq 'add_validate') {
        my $dbh = C4::Context->dbh;
        $template->param(tagfield => "$input->param('tagfield')");
-       my $sth=$dbh->prepare("replace marc_subfield_structure (tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,thesaurus_category,value_builder,itemtype)
-                                                                       values (?,?,?,?,?,?,?,?,?,?,?,?,?)");
+       my $sth=$dbh->prepare("replace marc_subfield_structure (tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,thesaurus_category,value_builder,hidden,isurl,itemtype)
+                                                                       values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
        my @tagsubfield = $input->param('tagsubfield');
        my @liblibrarian        = $input->param('liblibrarian');
        my @libopac             = $input->param('libopac');
@@ -274,6 +278,8 @@ if ($op eq 'add_form') {
                my $authorised_value            =$authorised_values[$i];
                my $thesaurus_category          =$thesaurus_category[$i];
                my $value_builder=$value_builder[$i];
+               my $hidden = $input->param("hidden$i")?1:0;
+               my $isurl = $input->param("isurl$i")?1:0;
                if ($liblibrarian) {
                        unless (C4::Context->config('demo') eq 1) {
                                $sth->execute ($tagfield,
@@ -287,7 +293,11 @@ if ($op eq 'add_form') {
                                                                        $seealso,
                                                                        $authorised_value,
                                                                        $thesaurus_category,
-                                                                       $value_builder,$itemtype);
+                                                                       $value_builder,
+                                                                       $hidden,
+                                                                       $isurl,
+                                                                       $itemtype,
+                                                                       );
                        }
                }
        }
@@ -300,7 +310,7 @@ if ($op eq 'add_form') {
 # called by default form, used to confirm deletion of data in DB
 } elsif ($op eq 'delete_confirm') {
        my $dbh = C4::Context->dbh;
-       my $sth=$dbh->prepare("select tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,authorised_value,thesaurus_category,value_builder from marc_subfield_structure where tagfield=? and tagsubfield=? and itemtype=?");
+       my $sth=$dbh->prepare("select * from marc_subfield_structure where tagfield=? and tagsubfield=? and itemtype=?");
        $sth->execute($tagfield,$tagsubfield);
        my $data=$sth->fetchrow_hashref;
        $sth->finish;
@@ -349,8 +359,14 @@ if ($op eq 'add_form') {
                $row_data{authorised_value} = $results->[$i]{'authorised_value'};
                $row_data{thesaurus_category}   = $results->[$i]{'thesaurus_category'};
                $row_data{value_builder}        = $results->[$i]{'value_builder'};
+               $row_data{hidden}       = $results->[$i]{'hidden'};
+               $row_data{isurl}        = $results->[$i]{'isurl'};
                $row_data{delete} = "$script_name?op=delete_confirm&amp;tagfield=$tagfield&amp;tagsubfield=".$results->[$i]{'tagsubfield'}."&itemtype=$itemtype";
                $row_data{bgcolor} = $toggle;
+               if ($row_data{tab} eq -1) {
+                       $row_data{subfield_ignored} = 1;
+               }
+
                push(@loop_data, \%row_data);
        }
        $template->param(loop => \@loop_data);