[Koha-patches] [PATCH] Bugfix 2339 - Place hold button display with AllowOnShelfHolds OFF

Kyle M Hall kyle.m.hall at gmail.com
Wed Jul 29 15:05:52 CEST 2009


---
 C4/Biblio.pm                                       |   13 ++++++++++++-
 .../opac-tmpl/prog/en/modules/opac-ISBDdetail.tmpl |   17 ++++++++++++-----
 .../opac-tmpl/prog/en/modules/opac-MARCdetail.tmpl |   14 +++++++++++++-
 .../opac-tmpl/prog/en/modules/opac-detail.tmpl     |   16 +++++++++++-----
 .../prog/en/modules/opac-results-grouped.tmpl      |   16 +++++++++++++++-
 .../opac-tmpl/prog/en/modules/opac-results.tmpl    |   14 +++++++++++++-
 opac/opac-MARCdetail.pl                            |    3 +++
 opac/opac-detail.pl                                |    4 ++++
 opac/opac-search.pl                                |    2 ++
 9 files changed, 85 insertions(+), 14 deletions(-)

diff --git a/C4/Biblio.pm b/C4/Biblio.pm
index d20d747..40ff797 100644
--- a/C4/Biblio.pm
+++ b/C4/Biblio.pm
@@ -67,7 +67,7 @@ BEGIN {
 		GetMarcUrls
 		&GetUsedMarcStructure
 		&GetXmlBiblio
-        &GetCOinSBiblio
+		&GetCOinSBiblio
 
 		&GetAuthorisedValueDesc
 		&GetMarcStructure
@@ -75,6 +75,8 @@ BEGIN {
 		&GetFrameworkCode
 		&GetPublisherNameFromIsbn
 		&TransformKohaToMarc
+		
+		&CountItemsIssued
 	);
 
 	# To modify something
@@ -2024,6 +2026,15 @@ more.
 
 =cut
 
+sub CountItemsIssued {
+  my ( $biblionumber )  = @_;
+  my $dbh = C4::Context->dbh;
+  my $sth = $dbh->prepare('SELECT COUNT(*) as issuedCount FROM items, issues WHERE items.itemnumber = issues.itemnumber AND items.biblionumber = ?');
+  $sth->execute( $biblionumber );
+  my $row = $sth->fetchrow_hashref();
+  return $row->{'issuedCount'};
+}
+
 sub _disambiguate {
     my ($table, $column) = @_;
     if ($column eq "cn_sort" or $column eq "cn_source") {
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-ISBDdetail.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-ISBDdetail.tmpl
index 3366198..17acd38 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-ISBDdetail.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-ISBDdetail.tmpl
@@ -161,11 +161,18 @@
 
 <!-- TMPL_UNLESS NAME="norequests" -->
     <!-- TMPL_UNLESS name="bi_notforloan" -->
-        <!-- TMPL_IF NAME="opacuserlogin" --><!-- TMPL_IF NAME="RequestOnOpac" -->
-            <li><a class="reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">
-            Place Hold
-            </a></li>
-        <!-- /TMPL_IF --><!-- /TMPL_IF -->
+        <!-- TMPL_IF NAME="opacuserlogin" -->
+		<!-- TMPL_IF NAME="RequestOnOpac" -->
+			<!-- TMPL_IF NAME="AllowOnShelfHolds" -->
+				<li><a class="reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a></li>
+			<!-- TMPL_ELSE -->
+				<!-- TMPL_IF NAME="itemsissued" -->
+					<li><a class="reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a></li>
+				<!-- /TMPL_IF -->
+			<!-- /TMPL_IF -->
+
+        	<!-- /TMPL_IF -->
+	<!-- /TMPL_IF -->
     <!-- /TMPL_UNLESS -->
 <!-- /TMPL_UNLESS -->
         <li><a class="print" href="/cgi-bin/koha/opac-detailprint.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->" onclick="Dopop('opac-detailprint.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->'); return false;">
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-MARCdetail.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-MARCdetail.tmpl
index e210545..63501ae 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-MARCdetail.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-MARCdetail.tmpl
@@ -19,7 +19,19 @@
 <div class="container"><div class="yui-g">
 <div id="toolbar">
 <ul>
-	<!-- TMPL_UNLESS NAME="norequests" --><!-- TMPL_IF NAME="opacuserlogin" --><!-- TMPL_IF NAME="RequestOnOpac" --><li><a class="link reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a></li><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_UNLESS -->
+	<!-- TMPL_UNLESS NAME="norequests" -->
+		<!-- TMPL_IF NAME="opacuserlogin" -->
+			<!-- TMPL_IF NAME="RequestOnOpac" -->
+				<!-- TMPL_IF NAME="AllowOnShelfHolds" -->
+					<li><a class="link reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a></li>
+				<!-- TMPL_ELSE -->
+					<!-- TMPL_IF NAME="ItemsIssued" -->
+						<li><a class="link reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a></li>
+					<!-- /TMPL_IF -->
+				<!-- /TMPL_IF -->
+			<!-- /TMPL_IF -->
+		<!-- /TMPL_IF -->
+	<!-- /TMPL_UNLESS -->
 	<li><a class="link print" href="/cgi-bin/koha/opac-detailprint.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->" onclick="Dopop('opac-detailprint.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->'); return false;">Print</a></li>
 	<!-- TMPL_IF name="virtualshelves" --><!-- TMPL_IF NAME="opacuserlogin" --><!-- TMPL_IF NAME="loggedinusername" --><li><a class="link addtoshelf" href="/cgi-bin/koha/opac-addbybiblionumber.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->" onclick="Dopop('opac-addbybiblionumber.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->'); return false;">Save to Your Lists</a></li><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF -->
 	<!-- TMPL_IF NAME="opacbookbag" --><li><a class="link addtocart" href="#" onclick="addRecord('<!-- TMPL_VAR NAME="biblionumber" -->'); return false;">Add to Your Cart</a></li><!-- /TMPL_IF -->
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
index 6bf2de1..db65f25 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
@@ -736,11 +736,17 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
 
 <!-- TMPL_UNLESS NAME="norequests" -->
     <!-- TMPL_UNLESS name="bi_notforloan" -->
-        <!-- TMPL_IF NAME="opacuserlogin" --><!-- TMPL_IF NAME="RequestOnOpac" -->
-            <li><a class="reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">
-            Place Hold
-            </a></li>
-        <!-- /TMPL_IF --><!-- /TMPL_IF -->
+        <!-- TMPL_IF NAME="opacuserlogin" -->
+		<!-- TMPL_IF NAME="RequestOnOpac" -->
+			<!-- TMPL_IF NAME="AllowOnShelfHolds" -->
+	            		<li><a class="reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a></li>
+			<!-- TMPL_ELSE -->
+				<!-- TMPL_IF NAME="ItemsIssued" -->
+		            		<li><a class="reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a></li>
+				<!-- /TMPL_IF -->
+			<!-- /TMPL_IF -->
+        	<!-- /TMPL_IF -->
+	<!-- /TMPL_IF -->
     <!-- /TMPL_UNLESS -->
 <!-- /TMPL_UNLESS -->
         <li><a class="print" href="/cgi-bin/koha/opac-detailprint.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->" onclick="Dopop('opac-detailprint.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->'); return false;">
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results-grouped.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results-grouped.tmpl
index 2113eef..3c3c780 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results-grouped.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results-grouped.tmpl
@@ -224,7 +224,21 @@ $(document).ready(function(){
 					</span>
 				</p>
 
-				<p><!-- TMPL_IF name="RequestOnOpac" --><!-- TMPL_UNLESS NAME="norequests" --><!-- TMPL_IF NAME="opacuserlogin" --><a class="reserve" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a><!-- /TMPL_IF --><!-- /TMPL_UNLESS --> <!-- /TMPL_IF -->
+				<p>
+                                <!-- TMPL_IF name="RequestOnOpac" -->
+					<!-- TMPL_UNLESS NAME="norequests" -->
+						<!-- TMPL_IF NAME="opacuserlogin" -->
+							<!-- TMPL_IF NAME="AllowOnShelfHolds" -->
+								<a class="hold" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a><!-- add back when available 0 holds in queue-->
+							<!-- TMPL_ELSE -->
+								<!-- TMPL_IF NAME="itemsissued" -->
+									<a class="hold" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a><!-- add back when available 0 holds in queue-->
+								<!-- /TMPL_IF -->
+							<!-- /TMPL_IF -->
+						<!-- /TMPL_IF -->
+					<!-- /TMPL_UNLESS -->
+				<!-- /TMPL_IF -->
+
 				<!--TMPL_IF EXPR="opacbookbag || virtualshelves" --><input type="checkbox" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" title="Click to add to cart" /> <label for="bib<!-- TMPL_VAR NAME="biblionumber" -->"><!-- /TMPL_IF --><img src="<!-- TMPL_VAR NAME="themelang" -->/images/<!-- TMPL_VAR NAME="itemtype" -->.gif" alt="<!-- TMPL_VAR NAME="ccode" -->" title="<!-- TMPL_VAR NAME="ccode" -->" /><!--TMPL_IF EXPR="opacbookbag || virtualshelves" --></label><!-- /TMPL_IF --> <!-- TMPL_IF name="classification" -->
                                     <a href="/cgi-bin/koha/opac-search.pl?q=callnum:<!-- TMPL_VAR NAME="classification" ESCAPE="URL" -->">
                                         <!-- TMPL_VAR NAME="classification" -->
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl
index f2d7e10..aba7c15 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl
@@ -427,7 +427,19 @@ $(document).ready(function(){
 				<!-- TMPL_IF Name="searchhighlightblob" --><span class="results_summary"><span class="label">Match:</span> <!-- TMPL_VAR NAME="searchhighlightblob" --></span><!-- /TMPL_IF -->
 
 <span class="results_summary actions"><span class="label">Actions:</span>
-                                <!-- TMPL_IF name="RequestOnOpac" --><!-- TMPL_UNLESS NAME="norequests" --><!-- TMPL_IF NAME="opacuserlogin" --><a class="hold" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a><!-- add back when available 0 holds in queue--> <!-- /TMPL_IF --><!-- /TMPL_UNLESS --><!-- /TMPL_IF -->
+                                <!-- TMPL_IF name="RequestOnOpac" -->
+					<!-- TMPL_UNLESS NAME="norequests" -->
+						<!-- TMPL_IF NAME="opacuserlogin" -->
+							<!-- TMPL_IF NAME="AllowOnShelfHolds" -->
+								<a class="hold" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a><!-- add back when available 0 holds in queue-->
+							<!-- TMPL_ELSE -->
+								<!-- TMPL_IF NAME="itemsissued" -->
+									<a class="hold" href="/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a><!-- add back when available 0 holds in queue-->
+								<!-- /TMPL_IF -->
+							<!-- /TMPL_IF -->
+						<!-- /TMPL_IF -->
+					<!-- /TMPL_UNLESS -->
+				<!-- /TMPL_IF -->
 
 
 				<!-- TMPL_IF NAME="opacuserlogin" --><!-- TMPL_IF NAME="loggedinusername" --><!-- TMPL_IF NAME="virtualshelves" --><a class="addtolist" href="/cgi-bin/koha/opac-addbybiblionumber.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->" onclick="Dopop('opac-addbybiblionumber.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->'); return false;">Save to Lists</a>
diff --git a/opac/opac-MARCdetail.pl b/opac/opac-MARCdetail.pl
index a372826..51d1579 100755
--- a/opac/opac-MARCdetail.pl
+++ b/opac/opac-MARCdetail.pl
@@ -74,6 +74,9 @@ $template->param(
     bibliotitle => $biblio->{title},
 );
 
+$template->param( 'AllowOnShelfHolds' => C4::Context->preference('AllowOnShelfHolds') );
+$template->param( 'ItemsIssued' => CountItemsIssued( $biblionumber ) );
+
 # adding the $RequestOnOpac param
 my $RequestOnOpac;
 if (C4::Context->preference("RequestOnOpac")) {
diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl
index c928ddb..f0ba0c5 100755
--- a/opac/opac-detail.pl
+++ b/opac/opac-detail.pl
@@ -59,6 +59,10 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
 );
 
 my $biblionumber = $query->param('biblionumber') || $query->param('bib');
+
+$template->param( 'AllowOnShelfHolds' => C4::Context->preference('AllowOnShelfHolds') );
+$template->param( 'ItemsIssued' => CountItemsIssued( $biblionumber ) );
+
 my $record       = GetMarcBiblio($biblionumber);
 $template->param( biblionumber => $biblionumber );
 # XSLT processing of some stuff
diff --git a/opac/opac-search.pl b/opac/opac-search.pl
index 20d06f5..9b8b00c 100755
--- a/opac/opac-search.pl
+++ b/opac/opac-search.pl
@@ -73,6 +73,7 @@ if (C4::Context->preference("marcflavour") eq "UNIMARC" ) {
 elsif (C4::Context->preference("marcflavour") eq "MARC21" ) {
     $template->param('usmarc' => 1);
 }
+$template->param( 'AllowOnShelfHolds' => C4::Context->preference('AllowOnShelfHolds') );
 
 if (C4::Context->preference('BakerTaylorEnabled')) {
 	$template->param(
@@ -423,6 +424,7 @@ for (my $i=0;$i<=@servers;$i++) {
 			$tag_quantity = C4::Context->preference('TagsShowOnList')) {
 			foreach (@newresults) {
 				my $bibnum = $_->{biblionumber} or next;
+				$_->{itemsissued} = CountItemsIssued( $bibnum );
 				$_ ->{'TagLoop'} = get_tags({biblionumber=>$bibnum, approved=>1, 'sort'=>'-weight',
 										limit=>$tag_quantity });
 			}
-- 
1.5.6.5




More information about the Koha-patches mailing list