@@ -, +, @@ --- C4/Items.pm | 5 ++++- Koha/Schema/Result/Item.pm | 8 ++++++++ catalogue/detail.pl | 3 ++- .../intranet-tmpl/prog/en/modules/catalogue/detail.tt | 10 +++++++--- koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt | 14 +++++++++++--- opac/opac-detail.pl | 6 ++++-- 6 files changed, 36 insertions(+), 10 deletions(-) --- a/C4/Items.pm +++ a/C4/Items.pm @@ -478,6 +478,7 @@ sub _build_default_values_for_mod_marc { stocknumber => undef, uri => undef, withdrawn => 0, + link_text => undef, }; my %default_values_for_mod_from_marc; while ( my ( $field, $default_value ) = each %$default_values ) { @@ -1789,7 +1790,8 @@ sub _koha_new_item { more_subfields_xml = ?, copynumber = ?, stocknumber = ?, - new_status = ? + new_status = ?, + link_text = ? "; my $sth = $dbh->prepare($query); my $today = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }); @@ -1834,6 +1836,7 @@ sub _koha_new_item { $item->{'copynumber'}, $item->{'stocknumber'}, $item->{'new_status'}, + $item->{'link_text'} ); my $itemnumber; --- a/Koha/Schema/Result/Item.pm +++ a/Koha/Schema/Result/Item.pm @@ -280,6 +280,12 @@ __PACKAGE__->table("items"); is_nullable: 1 size: 32 +=head2 link_text + + data_type: 'varchar' + is_nullable: 1 + size: 200 + =cut __PACKAGE__->add_columns( @@ -394,6 +400,8 @@ __PACKAGE__->add_columns( { data_type => "varchar", is_nullable => 1, size => 32 }, "new_status", { data_type => "varchar", is_nullable => 1, size => 32 }, + "link_text", + { data_type => "varchar", is_nullable => 1, size => 200 }, ); =head1 PRIMARY KEY --- a/catalogue/detail.pl +++ a/catalogue/detail.pl @@ -249,7 +249,7 @@ foreach my $item (@items) { $item->{'ccode'} = $collections->{$ccode} if ( defined( $ccode ) && defined($collections) && exists( $collections->{$ccode} ) ); my $copynumber = $item->{'copynumber'}; $item->{'copynumber'} = $copynumbers->{$copynumber} if ( defined($copynumber) && defined($copynumbers) && exists( $copynumbers->{$copynumber} ) ); - foreach (qw(ccode enumchron copynumber stocknumber itemnotes itemnotes_nonpublic uri)) { + foreach (qw(ccode enumchron copynumber stocknumber itemnotes itemnotes_nonpublic uri link_text)) { $itemfields{$_} = 1 if ( $item->{$_} ); } @@ -362,6 +362,7 @@ $template->param( volinfo => $itemfields{enumchron}, itemdata_itemnotes => $itemfields{itemnotes}, itemdata_nonpublicnotes => $itemfields{itemnotes_nonpublic}, + itemdata_linktext => $itemfields{link_text}, z3950_search_params => C4::Search::z3950_search_args($dat), hostrecords => $hostrecords, analytics_flag => $analytics_flag, --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt @@ -251,7 +251,7 @@
  • Dewey: [% dewey %]
  • [% END %] [% IF ( urlS ) %] -
  • URL: +
  • URL/Link: [% FOREACH url IN urlS %] [% url.url %] [% END %] @@ -338,7 +338,7 @@ Last seen Barcode [% IF ( volinfo ) %]Serial enumeration / chronology[% END %] - [% IF ( itemdata_uri ) %]URL[% END %] + [% IF ( itemdata_uri ) %]URL/Link[% END %] [% IF ( itemdata_copynumber ) %]Copy number[% END %] [% IF ( itemdata_stocknumber ) %]Inventory number[% END %] [% IF materials %]Materials specified[% END %] @@ -481,7 +481,11 @@ [% END %] [% IF ( itemdata_uri ) %] - [% item.uri %] + [% IF ( itemdata_linktext ) %] + [% item.link_text %] + [% ELSE %] + [% item.uri %] + [% END %] [% END %] [% IF ( itemdata_copynumber ) %] [% item.copynumber %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt @@ -1191,7 +1191,7 @@ [% IF ( itemdata_ccode ) %]Collection[% END %] Call number [% IF ( itemdata_enumchron ) %]Vol info[% END %] - [% IF ( itemdata_uri ) %]URL[% END %] + [% IF ( itemdata_uri ) %]URL/Link[% END %] [% IF ( itemdata_copynumber ) %]Copy number[% END %] Status [% IF ( itemdata_itemnotes ) %]Notes[% END %] @@ -1317,9 +1317,17 @@ [% ELSE %] [% IF Koha.Preference("OPACURLOpenInNewWindow") %] - [% ITEM_RESULT.uri %] + [% IF ITEM_RESULT.link_text %] + [% ITEM_RESULT.link_text %] + [% ELSE %] + [% ITEM_RESULT.uri %] + [% END %] [% ELSE %] - [% ITEM_RESULT.uri %] + [% IF ITEM_RESULT.link_text %] + [% ITEM_RESULT.link_text %] + [% ELSE %] + [% ITEM_RESULT.uri %] + [% END %] [% END %] [% END %] [% END %] --- a/opac/opac-detail.pl +++ a/opac/opac-detail.pl @@ -685,7 +685,8 @@ if ( not $viewallitems and @items > $max_items_to_display ) { $itm->{'imageurl'} = getitemtypeimagelocation( 'opac', $itemtypes->{ $itm->{itype} }->{'imageurl'} ); $itm->{'description'} = $itemtypes->{ $itm->{itype} }->{translated_description}; } - foreach (qw(ccode enumchron copynumber itemnotes uri)) { + + foreach (qw(ccode enumchron copynumber itemnotes uri link_text)) { $itemfields{$_} = 1 if ($itm->{$_}); } @@ -759,7 +760,8 @@ my $subtitle = GetRecordValue('subtitle', $record, GetFrameworkCode($bib itemdata_enumchron => $itemfields{enumchron}, itemdata_uri => $itemfields{uri}, itemdata_copynumber => $itemfields{copynumber}, - itemdata_itemnotes => $itemfields{itemnotes}, + itemdata_itemnotes => $itemfields{itemnotes}, + itemdata_linktext => $itemfields{link_text}, subtitle => $subtitle, OpacStarRatings => C4::Context->preference("OpacStarRatings"), ); --