[Koha-patches] [PATCH 11/17] MT2116: Addons to the CSV export

Henri-Damien LAURENT henridamien.laurent at biblibre.com
Fri Feb 5 14:01:52 CET 2010


From: Matthias Meusburger <matthias.meusburger at biblibre.com>

Add user-defined headers
Add CSV, field and subfield separator selection
---
 C4/Record.pm                                       |   37 +----------
 .../prog/en/modules/tools/csv-profiles.tmpl        |   74 ++++++++++++++++++++
 2 files changed, 75 insertions(+), 36 deletions(-)

diff --git a/C4/Record.pm b/C4/Record.pm
index b41a34f..d225fea 100644
--- a/C4/Record.pm
+++ b/C4/Record.pm
@@ -355,24 +355,9 @@ sub marc2csv {
     my ($biblio, $id, $header) = @_;
     my $output;
 
-<<<<<<< HEAD:C4/Record.pm
-    # Getting the record
-    my $record = GetMarcBiblio($biblio);
-
-    # Getting the framework
-    my $frameworkcode = GetFrameworkCode($biblio);
-
-    # Getting information about the csv profile
-    my $profile = GetCsvProfile($id);
-
-    # Getting output encoding
-    my $encoding          = $profile->{encoding} || 'utf8';
-
-=======
     # Get the information about the csv profile
     my $profile = GetCsvProfile($id);
 
->>>>>>> MT2116: Addons to the CSV export:C4/Record.pm
     # Getting separators
     my $csvseparator      = $profile->{csv_separator}      || ',';
     my $fieldseparator    = $profile->{field_separator}    || '#';
@@ -384,12 +369,8 @@ sub marc2csv {
     if ($subfieldseparator eq '\t') { $subfieldseparator = "\t" }
 
     # Init CSV
-<<<<<<< HEAD:C4/Record.pm
     my $csv = Text::CSV::Encoded->new({ sep_char => $csvseparator });
     $csv = $csv->encoding_out($encoding) if ($encoding ne 'utf8');
-=======
-    my $csv = Text::CSV->new({ sep_char => $csvseparator });
->>>>>>> MT2116: Addons to the CSV export:C4/Record.pm
 
     # Getting the marcfields
     my $marcfieldslist = $profile->{marcfields};
@@ -422,10 +403,6 @@ sub marc2csv {
 	    if (exists $_->{header}) {
 		    push @marcfieldsheaders, $_->{header};
 	    } else {
-<<<<<<< HEAD:C4/Record.pm
-=======
-warn "else";
->>>>>>> MT2116: Addons to the CSV export:C4/Record.pm
 		# If not, we get the matching tag name from koha
 		if (index($field, '$') > 0) {
 		    my ($fieldtag, $subfieldtag) = split('\$', $field);
@@ -433,20 +410,12 @@ warn "else";
 		    my $sth = $dbh->prepare($query);
 		    $sth->execute($fieldtag, $subfieldtag);
 		    my @results = $sth->fetchrow_array();
-<<<<<<< HEAD:C4/Record.pm
-=======
-warn "subfield $fieldtag, $subfieldtag";
->>>>>>> MT2116: Addons to the CSV export:C4/Record.pm
 		    push @marcfieldsheaders, $results[0];
 		} else {
 		    my $query = "SELECT liblibrarian FROM marc_tag_structure WHERE tagfield=?";
 		    my $sth = $dbh->prepare($query);
 		    $sth->execute($field);
 		    my @results = $sth->fetchrow_array();
-<<<<<<< HEAD:C4/Record.pm
-=======
-warn "field $results[0]";
->>>>>>> MT2116: Addons to the CSV export:C4/Record.pm
 		    push @marcfieldsheaders, $results[0];
 		}
 	    }
@@ -481,12 +450,8 @@ warn "field $results[0]";
 	# Or a field
 	} else {
 	    my @fields = ($record->field($marcfield));
-<<<<<<< HEAD:C4/Record.pm
 	    my $authvalues = GetKohaAuthorisedValuesFromField($marcfield, undef, $frameworkcode, undef);
-	    push (@fieldstab, join($fieldseparator, map((defined $authvalues->{$_->as_string}) ? $authvalues->{$_->as_string} : $_->as_string, @fields)));  		
-=======
-	    push (@fieldstab, join($fieldseparator, map($_->as_string(), @fields)));  		
->>>>>>> MT2116: Addons to the CSV export:C4/Record.pm
+	    push (@fieldstab, join($fieldseparator, map((defined $authvalues->{$_->as_string}) ? $authvalues->{$_->as_string} : $_->as_string, @fields))); 
 	 }
     };
 
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/csv-profiles.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/csv-profiles.tmpl
index e10f47b..54c68d7 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/csv-profiles.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/csv-profiles.tmpl
@@ -176,6 +176,42 @@ function reloadPage(p) {
 						    </select>
 						    <br /><br />
 
+						    <label for="csv">CSV separator :</label>
+						    <select name="csv_separator">
+							<option value=";">Colon (:)</option>
+							<option value="," selected="selected">Comma (,)</option>
+							<option value="|">Pipe (|)</option>
+							<option value=";">Semi-colon (;)</option>
+							<option value="#">Sharp (#)</option>
+							<option value=" ">Space ( )</option>
+							<option value="\t">Tabulation (\t)</option>
+						    </select>
+						    <br /><br />
+
+						    <label for="field_separator">Field separator :</label>
+						    <select name="field_separator">
+							<option value=";">Colon (:)</option>
+							<option value=",">Comma (,)</option>
+							<option value="|">Pipe (|)</option>
+							<option value=";">Semi-colon (;)</option>
+							<option value="#" selected="selected">Sharp (#)</option>
+							<option value=" ">Space ( )</option>
+							<option value="\t">Tabulation (\t)</option>
+						    </select>
+						    <br /><br />
+
+						    <label for="subfield_separator">Subfield separator :</label>
+						    <select name="subfield_separator">
+							<option value=";">Colon (:)</option>
+							<option value=",">Comma (,)</option>
+							<option value="|" selected="selected">Pipe (|)</option>
+							<option value=";">Semi-colon (;)</option>
+							<option value="#">Sharp (#)</option>
+							<option value=" ">Space ( )</option>
+							<option value="\t">Tabulation (\t)</option>
+						    </select>
+						    <br /><br />
+
 						    <label for="profile_content">Profile marcfields :</label>
 						    <textarea cols="50" rows="2" name="profile_content" id="profile_content"></textarea>
 						    <p>You have to define which fields or subfields you want to export, separated by pipes.<br />
@@ -327,6 +363,44 @@ function reloadPage(p) {
 						    <br /><br />
 
 
+						    <label for="csv">CSV separator :</label>
+						    <select name="csv_separator">
+							<option value=";">Colon (:)</option>
+							<option value=","<!-- TMPL_IF EXPR="selected_csv_separator eq ','" --> selected="selected"<!-- /TMPL_IF -->>Comma (,)</option>
+							<option value="|"<!-- TMPL_IF EXPR="selected_csv_separator eq '|'" --> selected="selected"<!-- /TMPL_IF -->>Pipe (|)</option>
+							<option value=";"<!-- TMPL_IF EXPR="selected_csv_separator eq ';'" --> selected="selected"<!-- /TMPL_IF -->>Semi-colon (;)</option>
+							<option value="#"<!-- TMPL_IF EXPR="selected_csv_separator eq '#'" --> selected="selected"<!-- /TMPL_IF -->>Sharp (#)</option>
+							<option value=" "<!-- TMPL_IF EXPR="selected_csv_separator eq ' '" --> selected="selected"<!-- /TMPL_IF -->>Space ( )</option>
+							<option value="\t"<!-- TMPL_IF EXPR="selected_csv_separator eq '\t'" --> selected="selected"<!-- /TMPL_IF -->>Tabulation (\t)</option>
+						    </select>
+						    <br /><br />
+
+
+						    <label for="field_separator">Field separator :</label>
+						    <select name="field_separator">
+                                                        <option value=";">Colon (:)</option>
+                                                        <option value=","<!-- TMPL_IF EXPR="selected_field_separator eq ','" --> selected="selected"<!-- /TMPL_IF -->>Comma (,)</option>
+                                                        <option value="|"<!-- TMPL_IF EXPR="selected_field_separator eq '|'" --> selected="selected"<!-- /TMPL_IF -->>Pipe (|)</option>
+                                                        <option value=";"<!-- TMPL_IF EXPR="selected_field_separator eq ';'" --> selected="selected"<!-- /TMPL_IF -->>Semi-colon (;)</option>
+                                                        <option value="#"<!-- TMPL_IF EXPR="selected_field_separator eq '#'" --> selected="selected"<!-- /TMPL_IF -->>Sharp (#)</option>
+                                                        <option value=" "<!-- TMPL_IF EXPR="selected_field_separator eq ' '" --> selected="selected"<!-- /TMPL_IF -->>Space ( )</option>
+                                                        <option value="\t"<!-- TMPL_IF EXPR="selected_field_separator eq '\t'" --> selected="selected"<!-- /TMPL_IF -->>Tabulation (\t)</option>
+						    </select>
+						    <br /><br />
+
+						    <label for="subfield_separator">Subfield separator :</label>
+						    <select name="subfield_separator">
+                                                        <option value=";">Colon (:)</option>
+                                                        <option value=","<!-- TMPL_IF EXPR="selected_subfield_separator eq ','" --> selected="selected"<!-- /TMPL_IF -->>Comma (,)</option>
+                                                        <option value="|"<!-- TMPL_IF EXPR="selected_subfield_separator eq '|'" --> selected="selected"<!-- /TMPL_IF -->>Pipe (|)</option>
+                                                        <option value=";"<!-- TMPL_IF EXPR="selected_subfield_separator eq ';'" --> selected="selected"<!-- /TMPL_IF -->>Semi-colon (;)</option>
+                                                        <option value="#"<!-- TMPL_IF EXPR="selected_subfield_separator eq '#'" --> selected="selected"<!-- /TMPL_IF -->>Sharp (#)</option>
+                                                        <option value=" "<!-- TMPL_IF EXPR="selected_subfield_separator eq ' '" --> selected="selected"<!-- /TMPL_IF -->>Space ( )</option>
+                                                        <option value="\t"<!-- TMPL_IF EXPR="selected_subfield_separator eq '\t'" --> selected="selected"<!-- /TMPL_IF -->>Tabulation (\t)</option>
+						    </select>
+						    <br /><br />
+
+
 						    <label for="modify_profile_content">Profile marcfields :</label>
 						    <textarea cols="50" rows="2" name="profile_content" id="modify_profile_content"><!-- TMPL_VAR NAME="selected_profile_marcfields" --></textarea></li>
 						    
-- 
1.6.3.3




More information about the Koha-patches mailing list