# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-# $Id$
use strict;
-require Exporter;
+#use warnings; FIXME - Bug 2505
+
use CGI;
use C4::Output;
use C4::Context;
use C4::Koha;
use MARC::Record;
use C4::Branch; # GetBranches
+use C4::ItemType;
sub plugin_parameters {
my ( $dbh, $record, $tagslib, $i, $tabloop ) = @_;
function Clic$function_name(i) {
defaultvalue=document.getElementById(\"$field_number\").value;
- window.open(\"/cgi-bin/koha/cataloguing/plugin_launcher.pl?plugin_name=unimarc_field_4XX.pl&index=$field_number&result=\"+defaultvalue,\"unimarc field 4\"+i+\"\",'width=900,height=700,toolbar=false,scrollbars=yes');
+ window.open(\"/cgi-bin/koha/cataloguing/plugin_launcher.pl?plugin_name=unimarc_field_4XX.pl&index=\" + i + \"&result=\"+defaultvalue,\"unimarc_field_4\"+i+\"\",'width=900,height=700,toolbar=false,scrollbars=yes');
}
</script>
# sub plugin
#
-# input arg :
+# input arg :
# -- op could be equals to
-# * fillinput :
-# * do_search :
-#
+# * fillinput :
+# * do_search :
+#
sub plugin {
my ($input) = @_;
my $searchdesc;
if ( $op eq "fillinput" ) {
- my $bibnum = $query->param('bibnum');
+ my $biblionumber = $query->param('biblionumber');
my $index = $query->param('index');
my $marcrecord;
query => $query,
type => "intranet",
authnotrequired => 0,
- flagsrequired => { editcatalogue => 1 },
+ flagsrequired => { editcatalogue => '*' },
debug => 1,
}
);
#get marc record
- $marcrecord = GetMarcBiblio($bibnum);
+ $marcrecord = GetMarcBiblio($biblionumber);
- my $subfield_value_9 = $bibnum;
+ my $subfield_value_9 = $biblionumber;
my $subfield_value_0;
$subfield_value_0 = $marcrecord->field('001')->data
if $marcrecord->field('001');
if ( $marcrecord->field('010') ) {
$subfield_value_y = $marcrecord->field('010')->subfield("a");
}
+ # escape the 's
+ $subfield_value_9 =~ s/'/\\'/g;
+ $subfield_value_0 =~ s/'/\\'/g;
+ $subfield_value_a =~ s/'/\\'/g;
+ $subfield_value_c =~ s/'/\\'/g;
+ $subfield_value_d =~ s/'/\\'/g;
+ $subfield_value_e =~ s/'/\\'/g;
+ $subfield_value_h =~ s/'/\\'/g;
+ $subfield_value_i =~ s/'/\\'/g;
+ $subfield_value_p =~ s/'/\\'/g;
+ $subfield_value_t =~ s/'/\\'/g;
+ $subfield_value_u =~ s/'/\\'/g;
+ $subfield_value_v =~ s/'/\\'/g;
+ $subfield_value_x =~ s/'/\\'/g;
+ $subfield_value_y =~ s/'/\\'/g;
$template->param(
fillinput => 1,
index => $query->param('index') . "",
- biblionumber => $bibnum ? $bibnum : "",
- subfield_value_9 => $subfield_value_9,
- subfield_value_0 => $subfield_value_0,
- subfield_value_a => $subfield_value_a,
- subfield_value_c => $subfield_value_c,
- subfield_value_d => $subfield_value_d,
- subfield_value_e => $subfield_value_e,
- subfield_value_h => $subfield_value_h,
- subfield_value_i => $subfield_value_i,
- subfield_value_p => $subfield_value_p,
- subfield_value_t => $subfield_value_t,
- subfield_value_u => $subfield_value_u,
- subfield_value_v => $subfield_value_v,
- subfield_value_x => $subfield_value_x,
- subfield_value_y => $subfield_value_y,
+ biblionumber => $biblionumber ? $biblionumber : "",
+ subfield_value_9 => "$subfield_value_9",
+ subfield_value_0 => "$subfield_value_0",
+ subfield_value_a => "$subfield_value_a",
+ subfield_value_c => "$subfield_value_c",
+ subfield_value_d => "$subfield_value_d",
+ subfield_value_e => "$subfield_value_e",
+ subfield_value_h => "$subfield_value_h",
+ subfield_value_i => "$subfield_value_i",
+ subfield_value_p => "$subfield_value_p",
+ subfield_value_t => "$subfield_value_t",
+ subfield_value_u => "$subfield_value_u",
+ subfield_value_v => "$subfield_value_v",
+ subfield_value_x => "$subfield_value_x",
+ subfield_value_y => "$subfield_value_y",
);
###############################################################
}
elsif ( $op eq "do_search" ) {
my $search = $query->param('search');
+ my $itype = $query->param('itype');
my $startfrom = $query->param('startfrom');
- my $resultsperpage = $query->param('resultsperpage');
+ my $resultsperpage = $query->param('resultsperpage') || 20;
my $orderby;
- my ( $errors, $results ) = SimpleSearch($search);
+ $search = 'kw,wrdl='.$search.' and mc-itemtype='.$itype if $itype;
+ my ( $errors, $results, $total_hits ) = SimpleSearch($search, $startfrom * $resultsperpage, $resultsperpage );
my $total = scalar(@$results);
- $resultsperpage = 20 unless $resultsperpage;
# warn " biblio count : ".$total;
"cataloguing/value_builder/unimarc_field_4XX.tmpl",
query => $query,
type => 'intranet',
- authnotrequired => 1,
+ authnotrequired => 0,
debug => 1,
}
);
# multi page display gestion
my $displaynext = 0;
my $displayprev = $startfrom;
- if ( ( $total - ( ( $startfrom + 1 ) * ($resultsperpage) ) ) > 0 ) {
+
+ if( ( $total_hits - ( ( $startfrom + 1 ) * ($resultsperpage) ) ) > 0 ) {
$displaynext = 1;
}
my @arrayresults;
my @field_data = ($search);
- for (
- my $i = $startfrom ;
- $i <= (
- ( $startfrom + $resultsperpage ) < scalar(@$results)
- ? ( $startfrom + $resultsperpage )
- : scalar(@$results)
- ) ;
- $i++
- )
- {
+ for (
+ my $i = 0 ;
+ $i < $resultsperpage ;
+ $i++
+ )
+ {
my $record = MARC::Record::new_from_usmarc( $results->[$i] );
my $rechash = TransformMarcToKoha( $dbh, $record );
my $pos;
$CN =~ s/ \|$//;
$rechash->{CN} = $CN;
push @arrayresults, $rechash;
- }
+ }
# for(my $i = 0 ; $i <= $#marclist ; $i++)
# {
my $from = $startfrom * $resultsperpage + 1;
my $to;
- if ( $total < ( ( $startfrom + 1 ) * $resultsperpage ) ) {
- $to = $total;
- }
- else {
- $to = ( ( $startfrom + 1 ) * $resultsperpage );
+ if ( $total_hits < $from + $resultsperpage ) {
+ $to = $total_hits;
+ }else{
+ $to = $from + $resultsperpage ;
}
my $defaultview =
'BiblioDefaultView' . C4::Context->preference('BiblioDefaultView');
+# my $link="/cgi-bin/koha/cataloguing/value_builder/unimarc4XX.pl?op=do_search&q=$search_desc&resultsperpage=$resultsperpage&startfrom=$startfrom&search=$search";
+# foreach my $sort (@sort_by){
+# $link.="&sort_by=".$sort."&";
+# }
+# $template->param(
+# pagination_bar => pagination_bar(
+# $link,
+# getnbpages($hits, $results_per_page),
+# $page,
+# 'page'
+# ),
+# );
$template->param(
result => \@arrayresults,
index => $query->param('index') . "",
startfromnext => $startfrom + 1,
startfromprev => $startfrom - 1,
searchdata => \@field_data,
- total => $total,
+ total => $total_hits,
from => $from,
to => $to,
numbers => \@numbers,
"cataloguing/value_builder/unimarc_field_4XX.tmpl",
query => $query,
type => "intranet",
- authnotrequired => 1,
+ authnotrequired => 0,
}
);
# }
# $sth->finish;
+ my @itemtypes = C4::ItemType->all;
+
$template->param( #classlist => $classlist,
CGIitemtype => $CGIitemtype,
CGIbranch => $CGIbranch,
CGIPublisher => $CGIpublisher,
+ itypeloop => \@itemtypes,
index => $query->param('index'),
Search => 1,
);