Bugzilla – Attachment 25363 Details for
Bug 11256
Set a number of items to display on a biblio detail page
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11256: Opac: Set a number of items to display on a biblio detail page.
Bug-11256-Opac-Set-a-number-of-items-to-display-on.patch (text/plain), 8.32 KB, created by
Jonathan Druart
on 2014-02-18 09:10:53 UTC
(
hide
)
Description:
Bug 11256: Opac: Set a number of items to display on a biblio detail page.
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2014-02-18 09:10:53 UTC
Size:
8.32 KB
patch
obsolete
>From 523d62dbb59aa858b3d930cf87d034d2cfe1c1fd Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Fri, 15 Nov 2013 12:02:53 +0100 >Subject: [PATCH] Bug 11256: Opac: Set a number of items to display on a > biblio detail page. > >Currently, the number of items to display is hardcoded (50). >But the perl script loads all items before to check if the number of >items is oversized. > >This patch adds a new pref OpacMaxItemsToDisplay (default to 50). If the >*total* number of items for a biblio is greater, no item is displayed >and a link allows to display all items. > >Test plan: >1/ search a biblio with many items >2/ set the pref according the number of items you want to display >3/ verify the items are not displayed if the number of items is greater >the pref value >4/ enable the OpacSeparateHoldings pref and verify the items are >displayed in different tabs (if items have different locations). >--- > installer/data/mysql/sysprefs.sql | 1 + > installer/data/mysql/updatedatabase.pl | 7 +++++++ > .../prog/en/modules/admin/preferences/opac.pref | 6 ++++++ > koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt | 20 +++++++----------- > opac/opac-detail.pl | 22 +++++++++----------- > 5 files changed, 31 insertions(+), 25 deletions(-) > >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index 1668d37..6663cf2 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -240,6 +240,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('OpacMaintenance','0','','If ON, enables maintenance warning in OPAC','YesNo'), > ('OpacMainUserBlock','Welcome to Koha...\r\n<hr>','70|10','A user-defined block of HTML in the main content area of the opac main page','Textarea'), > ('OpacMainUserBlockMobile','',NULL,'Show the following HTML in its own column on the main page of the OPAC (mobile version):','free'), >+('OpacMaxItemsToDisplay','50','','Max items to display at the OPAC on a biblio detail','Integer'), > ('OPACMobileUserCSS','',NULL,'Include the following CSS for the mobile view on all pages in the OPAC:','free'), > ('OPACMySummaryHTML','','70|10','Enter the HTML that will appear in a column on the \'my summary\' and \'my reading history\' tabs when a user is logged in to the OPAC. Enter {BIBLIONUMBER}, {TITLE}, {AUTHOR}, or {ISBN} in place of their respective variables in the HTML. Leave blank to disable.','Textarea'), > ('OpacNav','Important links here.','70|10','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','Textarea'), >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index f043d0b..838291a 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -7953,6 +7953,13 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { > SetVersion($DBversion); > } > >+$DBversion = "3.15.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do("INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES('OpacMaxItemsToDisplay','50','','Max items to display at the OPAC on a biblio detail','Integer')"); >+ print "Upgrade to $DBversion done (Bug 11256: Add system preference OpacMaxItemsToDisplay)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >index 1364ff1..9c1fc1f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >@@ -286,6 +286,12 @@ OPAC: > yes: Show > no: Don't show > - "the name of the staff member who managed a suggestion in OPAC." >+ - >+ - Display >+ - pref: OpacMaxItemsToDisplay >+ class: integer >+ - items on the biblio detail page (if the biblio has more items, a link allow to display all items). >+ > Features: > - > - pref: opacuserlogin >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >index a4003cb..097bf46 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >@@ -938,7 +938,7 @@ YAHOO.util.Event.onContentReady("furtherm", function () { > > <ul> > [% IF ( defaulttab == 'holdings' ) %]<li id="tab_holdings" class="ui-tabs-selected">[% ELSE %]<li id="tab_holdings">[% END %] >- <a href="#holdings">[% IF SeparateHoldings %][% LoginBranchname %] holdings[% ELSE %]Holdings[% END %] ( [% itemloop.size || 0 %] )</a> >+ <a href="#holdings">[% IF SeparateHoldings %][% LoginBranchname %] holdings[% ELSE %]Holdings[% END %][% UNLESS too_many_items %] ( [% itemloop.size || 0 %] )[% END %]</a> > </li> > [% IF (SeparateHoldings) %] > <li><a href="#otherholdings">Other holdings ( [% otheritemloop.size || 0 %] )</a></li> >@@ -1038,12 +1038,10 @@ YAHOO.util.Event.onContentReady("furtherm", function () { > > > <div id="holdings"> >-[% IF ( itemloop.size ) %] >- [% IF ( lotsofholdingsitems ) %] >- <p>This record has many physical items. <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblionumber %]&viewallitems=1#holdings">Click here to view them all.</a></p> >- [% ELSE %] >- [% INCLUDE items_table items=itemloop tab="holdings" %] >- [% END %] >+[% IF too_many_items %] >+ <p>This record has many physical items ([% items_count %]). <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblionumber %]&viewallitems=1">Click here to view them all.</a></p> >+[% ELSIF ( itemloop.size ) %] >+ [% INCLUDE items_table items=itemloop tab="holdings" %] > [% IF holds_count.defined || priority %] > <div id="bib_holds"> > [% IF holds_count.defined %] >@@ -1075,12 +1073,8 @@ YAHOO.util.Event.onContentReady("furtherm", function () { > > [% IF (SeparateHoldings) %] > <div id="otherholdings"> >- [% IF (otheritemloop.size) %] >- [% IF lotsofothersholdingsitems %] >- <p>This record has many physical items. <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblionumber %]&viewallitems=1#otherholdings">Click here to view them all.</a></p> >- [% ELSE %] >- [% INCLUDE items_table items=otheritemloop tab="otherholdings" %] >- [% END %] >+ [% IF otheritemloop.size %] >+ [% INCLUDE items_table items=otheritemloop tab="otherholdings" %] > [% ELSE %] > No other items. > [% END %] >diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl >index 0f6906b..0c2a6d9 100755 >--- a/opac/opac-detail.pl >+++ b/opac/opac-detail.pl >@@ -561,7 +561,15 @@ if ($currentbranch and C4::Context->preference('OpacSeparateHoldings')) { > $template->param(SeparateHoldings => 1); > } > my $separatebranch = C4::Context->preference('OpacSeparateHoldingsBranch'); >-for my $itm (@items) { >+my $viewallitems = $query->param('viewallitems'); >+my $max_items_to_display = C4::Context->preference('OpacMaxItemsToDisplay') // 50; >+if ( not $viewallitems and @items > $max_items_to_display ) { >+ $template->param( >+ too_many_items => 1, >+ items_count => scalar( @items ), >+ ); >+} else { >+ for my $itm (@items) { > $itm->{holds_count} = $item_reserves{ $itm->{itemnumber} }; > $itm->{priority} = $priority{ $itm->{itemnumber} }; > $norequests = 0 >@@ -616,6 +624,7 @@ for my $itm (@items) { > } else { > push @itemloop, $itm; > } >+ } > } > > # Display only one tab if one items list is empty >@@ -626,17 +635,6 @@ if (scalar(@itemloop) == 0 || scalar(@otheritemloop) == 0) { > } > } > >-# If there is a lot of items, and the user has not decided >-# to view them all yet, we first warn him >-# TODO: The limit of 50 could be a syspref >-my $viewallitems = $query->param('viewallitems'); >-if (scalar(@itemloop) >= 50 && !$viewallitems) { >- $template->param('lotsofholdingsitems' => 1); >-} >-if (scalar(@otheritemloop) >= 50 && !$viewallitems) { >- $template->param('lotsofothersholdingsitems' => 1); >-} >- > ## get notes and subjects from MARC record > my $dbh = C4::Context->dbh; > my $marcnotesarray = GetMarcNotes ($record,$marcflavour); >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 11256
:
22958
|
25363
|
25370
|
25401
|
25402
|
25534
|
25535