Browse Source

adding back patron images upload, no idea why it was removed

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
3.0.x
Joshua Ferraro 17 years ago
parent
commit
b6399e62c1
  1. 78
      koha-tmpl/intranet-tmpl/prog/en/modules/tools/picture-upload.tmpl
  2. 6
      koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tmpl
  3. 113
      tools/picture-upload.pl

78
koha-tmpl/intranet-tmpl/prog/en/modules/tools/picture-upload.tmpl

@ -0,0 +1,78 @@
<!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
<title>Koha &rsaquo; Tools &rsaquo; Upload Patron Images</title>
<!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
</head>
<body>
<!-- TMPL_INCLUDE NAME="header.inc" -->
<!-- TMPL_INCLUDE NAME="patron-search.inc"-->
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; Upload Patron Images </div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<div class="yui-g">
<div class="yui-u first">
<h1>Upload Patron Images</h1>
<!-- TMPL_IF name="total" -->
<ul class="data">
<li>Unpacking completed</li>
</ul>
<!-- TMPL_VAR NAME="total" --> Scanned
<!-- TMPL_VAR NAME="handled" --> Processed
<!-- TMPL_LOOP name="counts" -->
<!-- TMPL_VAR name="count" --> Images moved from <!-- TMPL_VAR name="source" --> to <!-- TMPL_VAR name="dest" -->
<!-- TMPL_LOOP name="filenames" -->
<!-- TMPL_VAR name="source" --> To <!-- TMPL_VAR name="dest" -->
<!-- /TMPL_LOOP -->
<!-- /TMPL_LOOP -->
<!-- TMPL_ELSE -->
<!-- TMPL_IF name="errors" -->
<!-- TMPL_LOOP name="errors" -->
<ul class="error">
<!-- TMPL_IF name="NOTZIP" -->
<li>The upload file does not appear to be a zip file. The extention is not '.zip'.</li>
<!-- /TMPL_IF -->
<!-- TMPL_IF name="NOWRITETEMP" -->
<li>This script is not able to create/write to the necessary temporary directory.</li>
<!-- /TMPL_IF -->
<!-- TMPL_IF name="NOWRITEDEST" -->
<li>This script is not able to write to the patronpictures holding directory.</li>
<!-- /TMPL_IF -->
<!-- TMPL_IF name="EMPTYUPLOAD" -->
<li>The upload file appears to be empty.</li>
<!-- /TMPL_IF -->
<!-- /TMPL_LOOP -->
<!-- /TMPL_IF -->
<form method="post" action="/cgi-bin/koha/import/picture-upload.pl" enctype="multipart/form-data">
<ul>
<li>Select a file to upload to the server. Each .jpg file contained therein will be copied to the appropriate place on the server for patron pictures.</li>
<li>You can include multiple pictures in a .zip file.</li>
<li>There should be a DATALINK.TXT or IDLINK.TXT file for each group of pictures that has the cardnumber of the patron and the file containing that patrons picture. One patron per line seperated by either ,'s or tabs. Quotes around the fields are ignored.</li>
</ul>
<table>
<tr>
<th><label for="uploadfile">Select the .zip file to unpack: </label></th>
<td>
<input type="file" id="uploadfile" name="uploadfile" /><br />
</td>
</tr>
</table>
<input type="submit" value="Unpack" class="submit" />
</form>
<!-- /TMPL_IF -->
</div>
</div>
</div>
</div>
<div class="yui-b">
<!-- TMPL_INCLUDE NAME="tools-menu.inc" -->
</div>
</div>
<!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->

6
koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tmpl

@ -61,12 +61,12 @@
<dt><a href="/cgi-bin/koha/tools/cleanborrowers.pl">Patrons (anonomize, bulk-delete)</a></dt>
<dd>Delete old borrowers and anonymize circulation history (deletes borrower reading history)</dd>
<dt><a href="/cgi-bin/koha/tools/picture-upload.pl">Upload patron images</a></dt>
<dd>Upload patron images in batch or one at a time</dd>
<dt><a href="/cgi-bin/koha/tools/scheduler.pl">Task Scheduler</a></dt>
<dd>Schedule tasks to run</dd>
<dt><a href="/cgi-bin/koha/reviews/reviewswaiting.pl">Moderate reviews</a></dt>
<dd>Moderate reviews submitted by patrons</dd>
</dl>
</div>

113
tools/picture-upload.pl

@ -0,0 +1,113 @@
#!/usr/bin/perl
use File::Temp;
use File::Copy;
use CGI;
use C4::Context;
use C4::Auth;
use C4::Output;
#my $destdir = "/usr/local/koha/intranet/htdocs/intranet-tmpl/images/patronpictures";
#my $uploadfile = shift @ARGV;
my $input = new CGI;
my $destdir = C4::Context->config('intrahtdocs') . "/patronimages";
warn "DEST : $destdir";
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "tools/picture-upload.tmpl",
query => $input,
type => "intranet",
authnotrequired => 0,
flagsrequired => {management => 1, tools => 1},
debug => 0,
});
my $uploadfilename = $input->param( 'uploadfile' );
my $uploadfile = $input->upload( 'uploadfile' );
my ( $total, $handled, @counts );
if ( $uploadfile ) {
my $dirname = File::Temp::tempdir( CLEANUP => 1);
my ( $tfh, $tempfile ) = File::Temp::tempfile( SUFFIX => '.zip', UNLINK => 1 );
my ( @directories, %errors );
$errors{'NOTZIP'} = 1 unless ( $uploadfilename =~ /\.zip$/i );
$errors{'NOWRITETEMP'} = 1 unless ( -w "$dirname" );
$errors{'NOWRITEDEST'} = 1 unless ( -w "$destdir" );
$errors{'EMPTYUPLOAD'} = 1 unless ( length( $uploadfile ) > 0 );
if ( %errors ) {
$template->param( ERRORS => [ \%errors ] );
} else {
while ( <$uploadfile> ) {
print $tfh $_;
}
close $tfh;
`unzip $tempfile -d $dirname`;
push @directories, "$dirname";
foreach $recursive_dir ( @directories ) {
opendir $dir, $recursive_dir;
while ( my $entry = readdir $dir ) {
push @directories, "$recursive_dir/$entry" if ( -d "$recursive_dir/$entry" and $entry !~ /^\./ );
}
closedir $dir;
}
foreach my $dir ( @directories ) {
$handled += handle_dir( $dir );
}
$total = scalar @directories;
$template->param(
TOTAL => $total,
HANDLED => $handled,
COUNTS => \@counts,
);
}
}
output_html_with_http_headers $input, $cookie, $template->output;
sub handle_dir {
my ( $dir ) = @_;
my ( %count );
$count{filenames} = ();
return 0 unless ( -r "$dir/IDLINK.TXT" or -r "$dir/DATALINK.TXT" );
my $file = ( -r "$dir/IDLINK.TXT" ) ? "$dir/IDLINK.TXT" : "$dir/DATALINK.TXT";
open $fh, $file or { print "Openning $dir/$filename failed!\n" and return 0 };
while (my $line = <$fh>) {
chomp $line;
my ( $filename, $cardnumber );
my $delim = ($line =~ /\t/) ? "\t" : ",";
($cardnumber, $filename) = split $delim, $line;
$cardnumber =~ s/[\"\r\n]//g; # remove offensive characters
$filename =~ s/[\"\r\n]//g;
if ($cardnumber && $filename) {
my $result = move ( "$dir/$filename", "$destdir/$cardnumber.jpg" );
if ( $result ) {
$count{count}++;
push @{ $count{filenames} }, { source => $filename, dest => $cardnumber .".jpg" };
}
}
}
$count{source} = $dir;
$count{dest} = $destdir;
push @counts, \%count;
close $fh;
return 1;
}
Loading…
Cancel
Save