Bug 3056 - replace span hacking for terms in C4::Search
Reimplemented using jquery, added OSS plugin to both interfaces. This is another case where having a /common directory used by both OPAC and STAFF would increase runtime efficiency and cut development time. Removed unused variables. I changed the OPAC .term color to match the staff interface, rather than being a second shade of blue. The highlight/unhighlight link is currently a bit bolder than its neighbors, but my styling choices are provisional. I expect the final tweaking of CSS to come from another more capable designer, like Owen. Note this patch may rely on previously submitted "Search.pm minor cleanup" patch. Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This commit is contained in:
parent
08c158319d
commit
b36269ea85
55
C4/Search.pm
55
C4/Search.pm
|
|
@ -175,7 +175,6 @@ for my $i (0..$hits) {
|
|||
my $biblio = TransformMarcToKoha(C4::Context->dbh,$marcrecord,'');
|
||||
|
||||
#build the hash for the template.
|
||||
$resultsloop{highlight} = ($i % 2)?(1):(0);
|
||||
$resultsloop{title} = $biblio->{'title'};
|
||||
$resultsloop{subtitle} = $biblio->{'subtitle'};
|
||||
$resultsloop{biblionumber} = $biblio->{'biblionumber'};
|
||||
|
|
@ -1130,23 +1129,13 @@ Format results in a form suitable for passing to the template
|
|||
sub searchResults {
|
||||
my ( $searchdesc, $hits, $results_per_page, $offset, $scan, @marcresults ) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $even = 1;
|
||||
my @newresults;
|
||||
|
||||
# add search-term highlighting via <span>s on the search terms
|
||||
my $span_terms_hashref;
|
||||
for my $span_term ( split( / /, $searchdesc ) ) {
|
||||
$span_term =~ s/(.*=|\)|\(|\+|\.|\*)//g;
|
||||
$span_terms_hashref->{$span_term}++;
|
||||
}
|
||||
|
||||
#Build branchnames hash
|
||||
#find branchname
|
||||
#get branch information.....
|
||||
my %branches;
|
||||
my $bsth =
|
||||
$dbh->prepare("SELECT branchcode,branchname FROM branches")
|
||||
; # FIXME : use C4::Koha::GetBranches
|
||||
my $bsth =$dbh->prepare("SELECT branchcode,branchname FROM branches"); # FIXME : use C4::Branch::GetBranches
|
||||
$bsth->execute();
|
||||
while ( my $bdata = $bsth->fetchrow_hashref ) {
|
||||
$branches{ $bdata->{'branchcode'} } = $bdata->{'branchname'};
|
||||
|
|
@ -1248,48 +1237,6 @@ s/\[(.?.?.?.?)$tagsubf(.*?)]/$1$subfieldvalue$2\[$1$tagsubf$2]/g;
|
|||
$oldbiblio->{summary} = $summary;
|
||||
}
|
||||
|
||||
# save an author with no <span> tag, for the <a href=search.pl?q=<!--tmpl_var name="author"-->> link
|
||||
$oldbiblio->{'author_nospan'} = $oldbiblio->{'author'};
|
||||
$oldbiblio->{'title_nospan'} = $oldbiblio->{'title'};
|
||||
$oldbiblio->{'subtitle_nospan'} = $oldbiblio->{'subtitle'};
|
||||
# Add search-term highlighting to the whole record where they match using <span>s
|
||||
if (C4::Context->preference("OpacHighlightedWords")){
|
||||
my $searchhighlightblob;
|
||||
for my $highlight_field ( $marcrecord->fields ) {
|
||||
|
||||
# FIXME: need to skip title, subtitle, author, etc., as they are handled below
|
||||
next if $highlight_field->tag() =~ /(^00)/; # skip fixed fields
|
||||
for my $subfield ($highlight_field->subfields()) {
|
||||
my $match;
|
||||
next if $subfield->[0] eq '9';
|
||||
my $field = $subfield->[1];
|
||||
for my $term ( keys %$span_terms_hashref ) {
|
||||
if ( ( $field =~ /$term/i ) && (( length($term) > 3 ) || ($field =~ / $term /i)) ) {
|
||||
$field =~ s/$term/<span class=\"term\">$&<\/span>/gi;
|
||||
$match++;
|
||||
}
|
||||
}
|
||||
$searchhighlightblob .= $field . " ... " if $match;
|
||||
}
|
||||
|
||||
}
|
||||
$searchhighlightblob = ' ... '.$searchhighlightblob if $searchhighlightblob;
|
||||
$oldbiblio->{'searchhighlightblob'} = $searchhighlightblob;
|
||||
}
|
||||
|
||||
# Add search-term highlighting to the title, subtitle, etc. fields
|
||||
for my $term ( keys %$span_terms_hashref ) {
|
||||
my $old_term = $term;
|
||||
if ( length($term) > 3 ) {
|
||||
$term =~ s/(.*=|\)|\(|\+|\.|\?|\[|\]|\\|\*)//g;
|
||||
foreach(qw(title subtitle author publishercode place pages notes size)) {
|
||||
$oldbiblio->{$_} =~ s/$term/<span class=\"term\">$&<\/span>/gi;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
($i % 2) and $oldbiblio->{'toggle'} = 1;
|
||||
|
||||
# Pull out the items fields
|
||||
my @fields = $marcrecord->field($itemtag);
|
||||
|
||||
|
|
|
|||
|
|
@ -407,6 +407,9 @@ a.yuimenuitemlabel-disabled, #disabled a {
|
|||
a.yuimenuitemlabel-disabled:hover, #disabled a:hover {
|
||||
color : #999;
|
||||
}
|
||||
a.highlight_toggle {
|
||||
display : none;
|
||||
}
|
||||
|
||||
ul.toolbar li {
|
||||
display : inline;
|
||||
|
|
@ -1205,9 +1208,7 @@ h1#logo {
|
|||
}
|
||||
h1#logo {
|
||||
background:transparent url(../../img/koha-logo-medium.gif) no-repeat scroll 0%;
|
||||
border: 0;
|
||||
margin:0.75em .3em 0.75em .7em;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
*html h1#logo {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
|
||||
highlight v3
|
||||
|
||||
Highlights arbitrary terms.
|
||||
|
||||
<http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>
|
||||
|
||||
MIT license.
|
||||
|
||||
Johann Burkard
|
||||
<http://johannburkard.de>
|
||||
<mailto:jb@eaio.com>
|
||||
|
||||
*/
|
||||
|
||||
jQuery.fn.highlight = function(pat) {
|
||||
function innerHighlight(node, pat) {
|
||||
var skip = 0;
|
||||
if (node.nodeType == 3) {
|
||||
var pos = node.data.toUpperCase().indexOf(pat);
|
||||
if (pos >= 0) {
|
||||
var spannode = document.createElement('span');
|
||||
spannode.className = 'term';
|
||||
var middlebit = node.splitText(pos);
|
||||
var endbit = middlebit.splitText(pat.length);
|
||||
var middleclone = middlebit.cloneNode(true);
|
||||
spannode.appendChild(middleclone);
|
||||
middlebit.parentNode.replaceChild(spannode, middlebit);
|
||||
skip = 1;
|
||||
}
|
||||
}
|
||||
else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
|
||||
for (var i = 0; i < node.childNodes.length; ++i) {
|
||||
i += innerHighlight(node.childNodes[i], pat);
|
||||
}
|
||||
}
|
||||
return skip;
|
||||
}
|
||||
return this.each(function() {
|
||||
innerHighlight(this, pat.toUpperCase());
|
||||
});
|
||||
};
|
||||
|
||||
jQuery.fn.removeHighlight = function() {
|
||||
return this.find("span.term").each(function() {
|
||||
this.parentNode.firstChild.nodeName;
|
||||
with (this.parentNode) {
|
||||
replaceChild(this.firstChild, this);
|
||||
normalize();
|
||||
}
|
||||
}).end();
|
||||
};
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
<!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
|
||||
<title>Koha › Catalog › <!-- TMPL_IF NAME="searchdesc" -->Results of Search <!-- TMPL_IF NAME="query_desc" -->for '<!-- TMPL_VAR NAME="query_desc" -->'<!-- /TMPL_IF --><!-- TMPL_IF NAME="limit_desc" --> with limit(s): '<!-- TMPL_VAR NAME="limit_desc" -->'<!-- /TMPL_IF --><!-- TMPL_ELSE -->You did not specify any search criteria<!-- /TMPL_IF --></title>
|
||||
<!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
|
||||
<script type="text/javascript" src="/intranet-tmpl/prog/en/lib/jquery/plugins/jquery.highlight-3.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var MSG_NO_ITEM_SELECTED = _("Nothing is selected.");
|
||||
|
|
@ -9,7 +10,7 @@ var MSG_NON_RESERVES_SELECTED = _("One or more selected items cannot be reserved
|
|||
// http://www.oreillynet.com/pub/a/javascript/2003/10/21/amazonhacks.html
|
||||
function verify_images() {
|
||||
$("img").each(function(i){
|
||||
if ((this.src.indexOf('images.amazon.com') >= 0) || (this.src.indexOf('g-images.amazon.com') >=0)) {
|
||||
if ((this.src.indexOf('images.amazon.com') >= 0) || (this.src.indexOf('g-images.amazon.com') >=0)) {
|
||||
w = this.width;
|
||||
h = this.height;
|
||||
if ((w == 1) || (h == 1)) {
|
||||
|
|
@ -17,11 +18,16 @@ function verify_images() {
|
|||
} else if ((this.complete != null) && (!this.complete)) {
|
||||
this.src = 'http://g-images.amazon.com/images/G/01/x-site/icons/no-img-sm.gif';
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
$(window).load(function() {
|
||||
verify_images();
|
||||
});
|
||||
<!-- /TMPL_IF -->
|
||||
|
||||
var q_array = new Array(); // will hold search terms, if present
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#sortbyform').find("input:submit").hide();
|
||||
$('#sort_by').change(function() {
|
||||
|
|
@ -29,17 +35,29 @@ $(document).ready(function() {
|
|||
});
|
||||
$("#z3950searchc").empty();
|
||||
yuiZ3950button();
|
||||
});
|
||||
|
||||
<!-- TMPL_IF NAME="AmazonEnabled" -->
|
||||
$(window).load(function() {
|
||||
verify_images();
|
||||
});
|
||||
<!-- /TMPL_IF -->
|
||||
$(document).ready(function() {
|
||||
$("#selection_ops").show();
|
||||
$(".selection").show();
|
||||
<!-- TMPL_IF NAME="query_desc" -->
|
||||
var query_desc = "<!-- TMPL_VAR NAME="query_desc" ESCAPE="JS"-->";
|
||||
q_array = query_desc.split(" ");
|
||||
highlightOn();
|
||||
$("#highlight_toggle_on" ).hide().click(function() {highlightOn() ;});
|
||||
$("#highlight_toggle_off").show().click(function() {highlightOff();});
|
||||
<!-- /TMPL_IF -->
|
||||
});
|
||||
|
||||
function highlightOff() {
|
||||
$("p").removeHighlight();
|
||||
$(".highlight_toggle").toggle();
|
||||
}
|
||||
function highlightOn() {
|
||||
var x;
|
||||
for (x in q_array) {
|
||||
$("p").highlight(q_array[x]);
|
||||
}
|
||||
$(".highlight_toggle").toggle();
|
||||
}
|
||||
|
||||
function selectAll () {
|
||||
$(".selection").attr("checked", "checked");
|
||||
}
|
||||
|
|
@ -118,7 +136,11 @@ function yuiZ3950button() {
|
|||
<!-- TMPL_INCLUDE NAME="header.inc" -->
|
||||
<!-- TMPL_INCLUDE NAME="cat-search.inc" -->
|
||||
|
||||
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> › Search <!-- TMPL_IF NAME="query_desc" -->for '<!-- TMPL_VAR NAME="query_desc" ESCAPE="html"-->'<!-- /TMPL_IF --><!-- TMPL_IF NAME="limit_desc" --> with limit(s): '<!-- TMPL_VAR NAME="limit_desc" -->'<!-- /TMPL_IF --></div>
|
||||
<div id="breadcrumbs">
|
||||
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
|
||||
› <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a>
|
||||
› Search <!-- TMPL_IF NAME="query_desc" -->for '<!-- TMPL_VAR NAME="query_desc" ESCAPE="html"-->'<!-- /TMPL_IF --><!-- TMPL_IF NAME="limit_desc" --> with limit(s): '<!-- TMPL_VAR NAME="limit_desc" -->'<!-- /TMPL_IF -->
|
||||
</div>
|
||||
|
||||
<div id="doc3" class="yui-t1">
|
||||
<div id="bd">
|
||||
|
|
@ -171,6 +193,9 @@ function yuiZ3950button() {
|
|||
<a href="#" onclick="selectAll(); return false;">Select All</a>
|
||||
|
|
||||
<a href="#" onclick="clearAll(); return false;">Clear All</a>
|
||||
|
|
||||
<a href="#" class="highlight_toggle" id="highlight_toggle_off">Unhighlight</a>
|
||||
<a href="#" class="highlight_toggle" id="highlight_toggle_on">Highlight</a>
|
||||
<!-- TMPL_IF NAME="CAN_user_reserveforothers" -->
|
||||
<input type="button" onclick="placeHold(); return false;" value="Place Hold"/>
|
||||
<!-- /TMPL_IF -->
|
||||
|
|
@ -183,16 +208,13 @@ function yuiZ3950button() {
|
|||
<form method="post" name="fz3950" class="fz3950bigrpad">
|
||||
<span id="z3950searchc"><input type="button" id="z3950search" value="z39.50 Search" onclick="PopupZ3950(); return false;" /></span>
|
||||
</form>
|
||||
<!-- TMPL_IF NAME="searchdesc" -->
|
||||
<h3>No results found</h3>
|
||||
<!-- TMPL_IF NAME="searchdesc" -->
|
||||
<p>
|
||||
No results match your search <!-- TMPL_IF NAME="query_desc" -->for <span style="font-weight: bold;">'<!-- TMPL_VAR NAME="query_desc" ESCAPE="HTML"-->'</span><!-- /TMPL_IF --><!-- TMPL_IF NAME="limit_desc" --> with limit(s): <span style="font-weight: bold;">'<!-- TMPL_VAR NAME="limit_desc" -->'</span><!-- /TMPL_IF --><!-- TMPL_IF NAME="LibraryName" --> in <!-- TMPL_VAR NAME="LibraryName" --> Catalog<!-- /TMPL_IF -->.
|
||||
</p>
|
||||
<!-- TMPL_ELSE -->
|
||||
<h3>No results found</h3>
|
||||
<p>
|
||||
You did not specify any search criteria.
|
||||
</p>
|
||||
<p>You did not specify any search criteria.</p>
|
||||
<!-- /TMPL_IF -->
|
||||
</div>
|
||||
<!-- /TMPL_IF -->
|
||||
|
|
@ -249,7 +271,7 @@ function yuiZ3950button() {
|
|||
<!-- TMPL_LOOP NAME="SEARCH_RESULTS" -->
|
||||
<!-- TMPL_IF NAME="__odd__" --><tr><!-- TMPL_ELSE --><tr class="highlight"><!-- /TMPL_IF -->
|
||||
<td>
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?idx=<!-- TMPL_VAR name="scan_index_to_use" -->&q=<!-- TMPL_VAR NAME="scan_use" escape="url" -->"<!-- TMPL_VAR NAME="title_nospan" -->""><!-- TMPL_VAR NAME="title" --></a>
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?idx=<!-- TMPL_VAR name="scan_index_to_use" -->&q=<!-- TMPL_VAR NAME="scan_use" escape="url" -->"<!-- TMPL_VAR NAME="title" -->""><!-- TMPL_VAR NAME="title" --></a>
|
||||
</td>
|
||||
<td>
|
||||
<!-- TMPL_VAR NAME="author" -->
|
||||
|
|
@ -346,7 +368,7 @@ function yuiZ3950button() {
|
|||
</p>
|
||||
<!-- TMPL_IF name="summary" -->
|
||||
<!-- TMPL_IF NAME="author" -->
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?q=au:<!-- TMPL_VAR NAME="author_nospan" ESCAPE="URL" -->" title="Search for this Author"><!-- TMPL_VAR NAME="author" --></a>
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?q=au:<!-- TMPL_VAR NAME="author" ESCAPE="URL" -->" title="Search for this Author"><!-- TMPL_VAR NAME="author" --></a>
|
||||
<!-- TMPL_ELSE -->
|
||||
|
||||
<!-- /TMPL_IF -->
|
||||
|
|
@ -366,7 +388,7 @@ function yuiZ3950button() {
|
|||
<!-- /TMPL_UNLESS -->
|
||||
|
||||
<!-- TMPL_IF NAME="author" -->
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?q=au:<!-- TMPL_VAR NAME="author_nospan" ESCAPE="URL" -->" title="Search for this Author"><!-- TMPL_VAR NAME="author" --></a>
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?q=au:<!-- TMPL_VAR NAME="author" ESCAPE="URL" -->" title="Search for this Author"><!-- TMPL_VAR NAME="author" --></a>
|
||||
<!-- TMPL_ELSE -->
|
||||
|
||||
<!-- /TMPL_IF -->
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@ a:hover,input.editshelf:hover,a.editshelf:hover,input.deleteshelf:hover {
|
|||
color : #990033;
|
||||
}
|
||||
|
||||
a.highlight_toggle {
|
||||
display : none;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color : white;
|
||||
text-align : left;
|
||||
|
|
@ -354,8 +358,6 @@ p.availability {
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* "problem" enhancement */
|
||||
.problem {
|
||||
color : white;
|
||||
|
|
@ -364,7 +366,9 @@ p.availability {
|
|||
|
||||
/* style for search terms in catalogsearch */
|
||||
.term {
|
||||
color : blue;
|
||||
/* color : blue; */
|
||||
color : #990000;
|
||||
background-color : #FFFFCC;
|
||||
}
|
||||
|
||||
a .term {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
|
||||
highlight v3
|
||||
|
||||
Highlights arbitrary terms.
|
||||
|
||||
<http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>
|
||||
|
||||
MIT license.
|
||||
|
||||
Johann Burkard
|
||||
<http://johannburkard.de>
|
||||
<mailto:jb@eaio.com>
|
||||
|
||||
*/
|
||||
|
||||
jQuery.fn.highlight = function(pat) {
|
||||
function innerHighlight(node, pat) {
|
||||
var skip = 0;
|
||||
if (node.nodeType == 3) {
|
||||
var pos = node.data.toUpperCase().indexOf(pat);
|
||||
if (pos >= 0) {
|
||||
var spannode = document.createElement('span');
|
||||
spannode.className = 'term';
|
||||
var middlebit = node.splitText(pos);
|
||||
var endbit = middlebit.splitText(pat.length);
|
||||
var middleclone = middlebit.cloneNode(true);
|
||||
spannode.appendChild(middleclone);
|
||||
middlebit.parentNode.replaceChild(spannode, middlebit);
|
||||
skip = 1;
|
||||
}
|
||||
}
|
||||
else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
|
||||
for (var i = 0; i < node.childNodes.length; ++i) {
|
||||
i += innerHighlight(node.childNodes[i], pat);
|
||||
}
|
||||
}
|
||||
return skip;
|
||||
}
|
||||
return this.each(function() {
|
||||
innerHighlight(this, pat.toUpperCase());
|
||||
});
|
||||
};
|
||||
|
||||
jQuery.fn.removeHighlight = function() {
|
||||
return this.find("span.term").each(function() {
|
||||
this.parentNode.firstChild.nodeName;
|
||||
with (this.parentNode) {
|
||||
replaceChild(this.firstChild, this);
|
||||
normalize();
|
||||
}
|
||||
}).end();
|
||||
};
|
||||
|
|
@ -31,14 +31,14 @@
|
|||
<opensearch:Query role="request" searchTerms="<!-- TMPL_VAR NAME="query_desc" ESCAPE="html" --> <!-- TMPL_VAR NAME="limit_desc" ESCAPE="html" -->" startPage="<!-- TMPL_VAR NAME="page" -->" />
|
||||
<!-- TMPL_LOOP NAME="SEARCH_RESULTS" -->
|
||||
<item>
|
||||
<title><!-- TMPL_VAR NAME="title_nospan" ESCAPE="html" --> <!-- TMPL_VAR NAME="subtitle_nospan" ESCAPE="html" --></title>
|
||||
<title><!-- TMPL_VAR NAME="title" ESCAPE="html" --> <!-- TMPL_VAR NAME="subtitle" ESCAPE="html" --></title>
|
||||
<isbn><!-- TMPL_VAR NAME="isbn" ESCAPE="html" --></isbn>
|
||||
<link><!-- TMPL_IF name="BiblioDefaultViewmarc" --><!-- TMPL_VAR NAME="OPACBaseURL" -->/cgi-bin/koha/opac-MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" --><!-- TMPL_ELSE --><!-- TMPL_IF name="BiblioDefaultViewisbd" --><!-- TMPL_VAR NAME="OPACBaseURL" -->/cgi-bin/koha/opac-ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="OPACBaseURL" -->/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" --><!-- /TMPL_IF --><!-- /TMPL_IF --></link>
|
||||
<description><![CDATA[
|
||||
<!-- TMPL_IF NAME="OPACAmazonEnabled" --><!-- TMPL_IF NAME="OPACAmazonCoverImages" --><!-- TMPL_IF NAME="normalized_isbn" --><img src="http://images.amazon.com/images/P/<!-- TMPL_VAR NAME="normalized_isbn" -->.01.TZZZZZZZ.jpg" alt="" /><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF -->
|
||||
<!-- TMPL_IF NAME="SyndeticsEnabled" --><!-- TMPL_IF NAME="SyndeticsCoverImages" --><!-- TMPL_IF NAME="content_identifier_exists" --><img src="http://www.syndetics.com/index.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->/SC.GIF&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" -->&type=xw10<!-- TMPL_IF NAME="normalized_upc" -->&upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->" alt="" /><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF -->
|
||||
<!-- TMPL_IF NAME="BakerTaylorEnabled" --><!-- TMPL_IF NAME="normalized_isbn" --><a href="https://<!-- TMPL_VAR name="BakerTaylorBookstoreURL" ESCAPE="HTML" --><!-- TMPL_VAR name="normalized_isbn" -->"><img alt="See Baker & Taylor" src="<!-- TMPL_VAR name="BakerTaylorImageURL" ESCAPE="HTML" --><!-- TMPL_VAR name="normalized_isbn" -->" /></a><!-- /TMPL_IF --><!-- /TMPL_IF -->
|
||||
<p><!-- TMPL_IF NAME="author" -->By <!-- TMPL_VAR NAME="author_nospan" ESCAPE="html" -->. <!-- /TMPL_IF -->
|
||||
<p><!-- TMPL_IF NAME="author" -->By <!-- TMPL_VAR NAME="author" ESCAPE="html" -->. <!-- /TMPL_IF -->
|
||||
<!-- TMPL_IF name="place" --><!-- TMPL_VAR name="place" ESCAPE="html" --> <!-- /TMPL_IF --><!-- TMPL_IF name="publishercode" --><!-- TMPL_VAR name="publishercode" ESCAPE="html" --><!-- /TMPL_IF --><!-- TMPL_IF name="publicationyear" --> <!-- TMPL_VAR name="publicationyear" ESCAPE="html" -->
|
||||
<!-- TMPL_ELSE --><!-- TMPL_IF name="copyrightdate" --> <!-- TMPL_VAR name="copyrightdate" ESCAPE="html" --><!-- /TMPL_IF --><!-- /TMPL_IF -->
|
||||
<!-- TMPL_IF name="pages" -->. <!-- TMPL_VAR name="pages" ESCAPE="html" --><!-- /TMPL_IF -->
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
<!-- TMPL_IF name="size" --> <!-- TMPL_VAR name="size" ESCAPE="html" -->. <!-- /TMPL_IF -->
|
||||
<!-- TMPL_IF name="isbn" --> <!-- TMPL_VAR name="isbn" ESCAPE="html" --><!-- /TMPL_IF --> </p><p>
|
||||
<!-- TMPL_IF NAME="RequestOnOpac" -->
|
||||
<a href="<!-- TMPL_VAR NAME="OPACBaseURL" -->/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold on <i><!-- TMPL_VAR NAME="title_nospan" --></i></a></p>
|
||||
<a href="<!-- TMPL_VAR NAME="OPACBaseURL" -->/cgi-bin/koha/opac-reserve.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold on <i><!-- TMPL_VAR NAME="title" --></i></a></p>
|
||||
<!-- /TMPL_IF -->
|
||||
]]></description>
|
||||
<guid><!-- TMPL_VAR NAME="OPACBaseURL" -->/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" --></guid>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ href="/cgi-bin/koha/opac-rss.pl?<!-- TMPL_VAR name="query_cgi"--><!-- TMPL_VAR N
|
|||
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var q_array = new Array(); // will hold the search terms, if possible
|
||||
|
||||
$(document).ready(function(){
|
||||
$('#sortsubmit').hide();
|
||||
$('#sort_by').change(function() {
|
||||
|
|
@ -52,7 +55,26 @@ $(document).ready(function(){
|
|||
$("#bookbag_form").unCheckCheckboxes();
|
||||
return false;
|
||||
});
|
||||
<!-- TMPL_IF NAME="query_desc" -->
|
||||
var query_desc = "<!-- TMPL_VAR NAME="query_desc" ESCAPE="JS"-->";
|
||||
q_array = query_desc.split(" ");
|
||||
highlightOn();
|
||||
$("#highlight_toggle_on" ).hide().click(function() {highlightOn() ;});
|
||||
$("#highlight_toggle_off").show().click(function() {highlightOff();});
|
||||
<!-- /TMPL_IF -->
|
||||
});
|
||||
|
||||
function highlightOff() {
|
||||
$("td").removeHighlight();
|
||||
$(".highlight_toggle").toggle();
|
||||
}
|
||||
function highlightOn() {
|
||||
var x;
|
||||
for (x in q_array) {
|
||||
$("td").highlight(q_array[x]);
|
||||
}
|
||||
$(".highlight_toggle").toggle();
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
|
|
@ -159,6 +181,8 @@ $(document).ready(function(){
|
|||
<div class="resort"> <select id="sort_by" name="sort_by"> <!--TMPL_INCLUDE Name="resort_form.inc"--> </select> <input type="submit" class="submit clearfix" id="sortsubmit" value="Go" /></div>
|
||||
<!-- TMPL_IF EXPR="opacbookbag || virtualshelves" --><div class="cartlist"><span class="checkall"></span>
|
||||
<span class="clearall"></span>
|
||||
<a href="#" class="highlight_toggle" id="highlight_toggle_off">Unhighlight</a>
|
||||
<a href="#" class="highlight_toggle" id="highlight_toggle_on">Highlight</a>
|
||||
<span class="addto"></span></div>
|
||||
<!-- /TMPL_IF -->
|
||||
|
||||
|
|
@ -188,7 +212,7 @@ $(document).ready(function(){
|
|||
<!-- TMPL_IF name="BiblioDefaultViewisbd" --><a class="title" href="/cgi-bin/koha/opac-ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->" title="View details for this title"><!-- TMPL_VAR NAME="title" --> <!-- TMPL_VAR NAME="subtitle" --></a>
|
||||
<!-- TMPL_ELSE --><a class="title" href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->" title="View details for this title"><!-- TMPL_VAR NAME="title" --> <!-- TMPL_VAR NAME="subtitle" --></a>
|
||||
<!-- /TMPL_IF --><!-- /TMPL_IF -->
|
||||
<!-- TMPL_IF NAME="author" -->by <a href="/cgi-bin/koha/opac-search.pl?q=au:<!-- TMPL_VAR NAME="author_nospan" ESCAPE="URL" -->" title="Search for works by this author"><!-- TMPL_VAR NAME="author" --></a>
|
||||
<!-- TMPL_IF NAME="author" -->by <a href="/cgi-bin/koha/opac-search.pl?q=au:<!-- TMPL_VAR NAME="author" ESCAPE="URL" -->" title="Search for works by this author"><!-- TMPL_VAR NAME="author" --></a>
|
||||
<!-- TMPL_ELSE --> <!-- /TMPL_IF -->
|
||||
<p> <!-- TMPL_IF name="publicationyear" --> - <!-- TMPL_VAR name="publicationyear" --><!-- /TMPL_IF -->
|
||||
<!-- TMPL_IF name="publishercode" -->- <!-- TMPL_VAR name="publishercode" --><!-- /TMPL_IF -->
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
|
||||
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
|
||||
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.highlight-3.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
|
|
@ -78,6 +79,20 @@ function tagAdded() {
|
|||
return false;
|
||||
}
|
||||
|
||||
var q_array = new Array(); // holds search terms if available
|
||||
|
||||
function highlightOff() {
|
||||
$("td").removeHighlight();
|
||||
$(".highlight_toggle").toggle();
|
||||
}
|
||||
function highlightOn() {
|
||||
var x;
|
||||
for (x in q_array) {
|
||||
$("td").highlight(q_array[x]);
|
||||
}
|
||||
$(".highlight_toggle").toggle();
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
$(".addtocart").show();
|
||||
var param1 = "<label for=\"addto\">"+_("Add to: ")+"<\/label><select name=\"addto\" id=\"addto\"><option value=\"\"><\/option>";
|
||||
|
|
@ -145,6 +160,14 @@ $(document).ready(function(){
|
|||
<!-- /TMPL_IF -->
|
||||
$("#holdDetails").hide();
|
||||
|
||||
<!-- TMPL_IF NAME="query_desc" -->
|
||||
var query_desc = "<!-- TMPL_VAR NAME="query_desc" ESCAPE="JS"-->";
|
||||
q_array = query_desc.split(" ");
|
||||
highlightOn();
|
||||
$("#highlight_toggle_on" ).hide().click(function() {highlightOn() ;});
|
||||
$("#highlight_toggle_off").show().click(function() {highlightOff();});
|
||||
<!-- /TMPL_IF -->
|
||||
|
||||
<!-- TMPL_IF NAME="TagsEnabled" -->
|
||||
$(".tagbutton").click(KOHA.Tags.add_tag_button);
|
||||
<!-- TMPL_IF NAME="TagsInputOnList" -->
|
||||
|
|
@ -250,7 +273,7 @@ $(document).ready(function(){
|
|||
<tr>
|
||||
<!-- /TMPL_IF -->
|
||||
<td>
|
||||
<a href="/cgi-bin/koha/opac-search.pl?q=<!-- TMPL_VAR NAME="scan_use" escape="url" -->"<!-- TMPL_VAR NAME="title_nospan" ESCAPE="URL" -->""><!-- TMPL_IF NAME="title" --><!-- TMPL_VAR NAME="title" --><!-- TMPL_ELSE -->No title<!-- /TMPL_IF --></a>
|
||||
<a href="/cgi-bin/koha/opac-search.pl?q=<!-- TMPL_VAR NAME="scan_use" escape="url" -->"<!-- TMPL_VAR NAME="title" ESCAPE="URL" -->""><!-- TMPL_IF NAME="title" --><!-- TMPL_VAR NAME="title" --><!-- TMPL_ELSE -->No title<!-- /TMPL_IF --></a>
|
||||
</td>
|
||||
<td>
|
||||
<!-- TMPL_VAR NAME="author" -->
|
||||
|
|
@ -280,6 +303,8 @@ $(document).ready(function(){
|
|||
<!-- checkall, clearall are now needed for placehold -->
|
||||
<span class="checkall"></span>
|
||||
<span class="clearall"></span>
|
||||
<a href="#" class="highlight_toggle" id="highlight_toggle_off">Unhighlight</a>
|
||||
<a href="#" class="highlight_toggle" id="highlight_toggle_on">Highlight</a>
|
||||
<!-- TMPL_IF EXPR="opacbookbag || virtualshelves" -->
|
||||
<span class="addto"></span>
|
||||
<!-- /TMPL_IF -->
|
||||
|
|
@ -346,7 +371,7 @@ $(document).ready(function(){
|
|||
<!-- TMPL_ELSE --><a class="title" href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->" title="View details for this title"><!-- TMPL_IF NAME="title" --><!-- TMPL_VAR NAME="title" --><!-- TMPL_ELSE -->No title<!-- /TMPL_IF --> <!-- TMPL_VAR NAME="subtitle" --></a>
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- TMPL_IF NAME="author" -->by <a href="/cgi-bin/koha/opac-search.pl?q=au:<!-- TMPL_VAR NAME="author_nospan" ESCAPE="URL" -->" title="Search for works by this author"><!-- TMPL_VAR NAME="author" --></a>
|
||||
<!-- TMPL_IF NAME="author" -->by <a href="/cgi-bin/koha/opac-search.pl?q=au:<!-- TMPL_VAR NAME="author" ESCAPE="URL" -->" title="Search for works by this author"><!-- TMPL_VAR NAME="author" --></a>
|
||||
<!-- TMPL_ELSE -->
|
||||
<!-- /TMPL_IF -->
|
||||
<span class="results_summary"><span class="label">Publication:</span>
|
||||
|
|
|
|||
Loading…
Reference in New Issue