road to 1.3.1 : viewing biblio MARC detail
authortipaul <tipaul>
Wed, 9 Oct 2002 15:45:59 +0000 (15:45 +0000)
committertipaul <tipaul>
Wed, 9 Oct 2002 15:45:59 +0000 (15:45 +0000)
MARCdetail.pl
koha-tmpl/intranet-tmpl/default/en/MARCdetailbiblioselect.tmpl [new file with mode: 0644]
koha-tmpl/intranet-tmpl/default/en/catalogue/MARCdetail.tmpl

index 3c90d3d..66020f3 100755 (executable)
@@ -43,39 +43,88 @@ my $template = gettemplate("catalogue/MARCdetail.tmpl",0);
 # fill arrays
 my @loop_data =();
 my $tag;
-for ($tag=0 ; $tag<=9 ; $tag++) {
-# marc array (tags and subfields)
-# loop each field having tag = $tag."XX"
-       my @fields = $record->field($tag."XX");
-               my @loop_data =();
+# loop through each tab 0 through 9
+for (my $tabloop = 0; $tabloop<=10;$tabloop++) {
+# loop through each tag
+       my @fields = $record->fields();
+       my @loop_data =();
        foreach my $field (@fields) {
                my @subf=$field->subfields;
                my $previous_tag = '';
                my @subfields_data;
 # loop through each subfield
                for my $i (0..$#subf) {
-# if we not exactly the same tag (XX can varry !), loop for "tag tittle".
-                       if ($previous_tag ne $field->tag()) {
-                               my %tag_data;
-                               $tag_data{tag}=$field->tag().' '. $tagslib->{$field->tag()}->{lib};
-                               $tag_data{subfield} = \@subfields_data;
-                               push (@loop_data, \%tag_data);
-                               $previous_tag = $field->tag();
-                       }
                        $previous_tag = $field->tag();
+                       next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  ne $tabloop);
                        my %subfield_data;
                        $subfield_data{marc_lib}=$tagslib->{$field->tag()}->{$subf[$i][0]}->{lib};
                        $subfield_data{marc_value}=$subf[$i][1];
                        $subfield_data{marc_tag}=$field->tag().$subf[$i][0];
                        push(@subfields_data, \%subfield_data);
                }
+               if ($#subfields_data>=0) {
+                       my %tag_data;
+                       $tag_data{tag}=$field->tag().' '. $tagslib->{$field->tag()}->{lib};
+                       $tag_data{subfield} = \@subfields_data;
+                       push (@loop_data, \%tag_data);
+               }
+       }
+       $template->param($tabloop."XX" =>\@loop_data);
+}
+# now, build item tab !
+# the main difference is that datas are in lines and not in columns : thus, we build the <th> first, then the values...
+# loop through each tag
+# warning : we may have differents number of columns in each row. Thus, we first build a hash, complete it if necessary
+# then construct template.
+my @fields = $record->fields();
+my %witness; #---- stores the list of subfields used at least once, with the "meaning" of the code
+my @big_array;
+warn "loop 1";
+foreach my $field (@fields) {
+       my @subf=$field->subfields;
+       my %this_row;
+# loop through each subfield
+       for my $i (0..$#subf) {
+               next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  ne 10);
+               $witness{$subf[$i][0]} = $tagslib->{$field->tag()}->{$subf[$i][0]}->{lib};
+               $this_row{$subf[$i][0]} =$subf[$i][1];
+       }
+       if (%this_row) {
+               push(@big_array, \%this_row);
        }
-       $template->param($tag."XX" =>\@loop_data);
+}
+#fill big_row with missing datas
+#warn "loop 2";
+foreach my $subfield_code  (keys(%witness)) {
+       for (my $i=0;$i<=$#big_array;$i++) {
+               $big_array[$i]{$subfield_code}="&nbsp;" unless ($big_array[$i]{$subfield_code});
+#              warn "filled : ".$big_array[$i]{$subfield_code};
+       }
+}
+# now, construct template !
+#warn "loop 3";
+my @item_value_loop;
+my @header_value_loop;
+for (my $i=0;$i<=$#big_array; $i++) {
+       my $items_data;
+       foreach my $subfield_code (keys(%witness)) {
+               $items_data .="<td>".$big_array[$i]{$subfield_code}."</td>";
+       }
+#      warn $items_data;
+       my %row_data;
+       $row_data{item_value} = $items_data;
+       push(@item_value_loop,\%row_data);
+}
+foreach my $subfield_code (keys(%witness)) {
+       my %header_value;
+       $header_value{header_value} = $witness{$subfield_code};
+       warn "$subfield_code => ".$witness{$subfield_code};
+       push(@header_value_loop, \%header_value);
 }
 
-# fill template with arrays
-$template->param(biblionumber => $biblionumber);
-#$template->param(marc =>\@loop_data);
-$template->param(bibid => $bibid);
+$template->param(item_loop => \@item_value_loop,
+                                               item_header_loop => \@header_value_loop,
+                                               biblionumber => $biblionumber,
+                                               bibid => $bibid);
 print "Content-Type: text/html\n\n", $template->output;
 
diff --git a/koha-tmpl/intranet-tmpl/default/en/MARCdetailbiblioselect.tmpl b/koha-tmpl/intranet-tmpl/default/en/MARCdetailbiblioselect.tmpl
new file mode 100644 (file)
index 0000000..57aeaa0
--- /dev/null
@@ -0,0 +1,10 @@
+<HTML>
+<HEAD>
+<title>MARCdetail</title>
+<body>
+<form action="MARCdetail.pl" method="post">
+biblionumber : <input type="text" name="bib">
+<input type="submit">
+</form>
+</body>
+</HTML>
\ No newline at end of file
index 8978850..e291d7a 100644 (file)
@@ -2,7 +2,7 @@
 
 <table width=100% cellspacing=0 cellpadding=5 border=1>
 <tr>
-       <td bgcolor="#cccc99" background="/images/background-mem.gif" colspan=2><b>MARC biblio : <TMPL_VAR name="bibid"></b></td>
+       <th colspan=2>MARC biblio : <TMPL_VAR name="bibid"></th>
 </tr>
 <tr>
        <td colspan=2>
@@ -18,7 +18,7 @@
                <td width=9% align="center"><a href="javascript:active(7)"><div  id="link7">7xx</div></a></td>
                <td width=9% align="center"><a href="javascript:active(8)"><div  id="link8">8xx</div></a></td>
                <td width=9% align="center"><a href="javascript:active(9)"><div  id="link9">9xx</div></a></td>
-               <td width=10% align="center"><a href="javascript:active(10)"><div  id="linkitem">Item</div></a></td>
+               <td width=10% align="center"><a href="javascript:active(10)"><div  id="link10">Item</div></a></td>
        </tr>
        </table>
        </td>
    <DIV name="0XX" id="0XX" style="position:absolute;left:100px;top:150px;visibility:visible">
     <table width=100% border=0>
        <TMPL_LOOP name="0XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-               <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-               <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width="10%">&nbsp;</td>
+               <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+               <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </tmpl_loop>
        </tmpl_loop>
     <DIV name="1XX" id="1XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=100% border=0>
        <TMPL_LOOP name="1XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-         <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-        <td width="40%"><TMPL_VAR name="marc_value"></a>
+               <td width="10%">&nbsp;</td>
+               <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+        <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
     <DIV name="2XX" id="2XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=100% border=0>
        <TMPL_LOOP name="2XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-               <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-               <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width="10%">&nbsp;</td>
+               <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+               <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
     <DIV name="3XX" id="3XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=100% border=0>
        <TMPL_LOOP name="3XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-         <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-        <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width="10%">&nbsp;</td>
+         <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+        <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
     <DIV name="4XX" id="4XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=100% border=0>
        <TMPL_LOOP name="4XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-         <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-        <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width="10%">&nbsp;</td>
+         <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+        <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
     <DIV name="5XX" id="5XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=100% border=0>
        <TMPL_LOOP name="5XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-         <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-        <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width="10%">&nbsp;</td>
+         <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+        <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
        <DIV name="6XX" id="6XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=90% border=0>
        <TMPL_LOOP name="6XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-         <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-        <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width=10%>&nbsp;</td>
+         <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+        <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
     <DIV name="7XX" id="7XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=100% border=0>
        <TMPL_LOOP name="7XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-         <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-        <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width=10%>&nbsp;</td>
+         <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+        <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
     <DIV name="8XX" id="8XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=100% border=0>
        <TMPL_LOOP name="8XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-         <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-        <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width=10%>&nbsp;</td>
+         <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+        <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
      </table>
      </DIV>
+
     <DIV name="9XX" id="9XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
     <table width=90% border=0>
        <TMPL_LOOP name="9XX">
-       <tr colspan=2><td><b><tmpl_var name="tag"></td></tr>
+       <tr><td colspan=3><b><tmpl_var name="tag"></td></tr>
        <TMPL_LOOP name="subfield">
        <tr>
-         <td width="60%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
-        <td width="40%"><TMPL_VAR name="marc_value"></a>
+         <td width=10%>&nbsp;</td>
+           <td width="50%"><TMPL_VAR name="marc_tag"> <TMPL_VAR name="marc_lib"></td>
+        <td width="40%"><TMPL_VAR name="marc_value"></td>
        </tr>
        </TMPL_LOOP>
        </TMPL_LOOP>
      </table>
      </DIV>
 
+    <DIV name="10XX" id="10XX" style="position:absolute;left:100px;top:150px;visibility:hidden">
+    <table width=90% border=1>
+               <tr>
+                       <TMPL_LOOP name="item_header_loop"><th><tmpl_var name="header_value"></th></TMPL_LOOP>
+               </tr>
+               <TMPL_LOOP name="item_loop">
+                       <tr>
+                                       <TMPL_VAR name="item_value">
+                       </tr>
+               </TMPL_LOOP>
+     </table>
+     </DIV>
+
 <script LANGUAGE="JavaScript">
 function active(numlayer)
 {
-for (i=0; i <= 9 ; i++ ) {
+for (i=0; i <= 10 ; i++ ) {
     ong = i+"XX";
        link = "link"+i;
     if (numlayer==i) {
        document.getElementById(ong).style.visibility="visible";
        document.getElementById(link).style.backgroundColor="#11AA11";
+       document.getElementById(link).style.backgroundImage="url(/images/background-mem.gif)";
 } else {
        document.getElementById(ong).style.visibility="hidden";
        document.getElementById(link).style.backgroundColor="#FFFFFF";
+       document.getElementById(link).style.backgroundImage="";
 }
 }
 }