This patch changes pending_hold to has_pending_hold to signify that
we're returning a boolean and not a Koha::Hold object.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Test plan:
1) Ensure the COinS span tag is still included on this pages. You need
to look into html source and search for span tag with class 'Z3988',
which has COinS string in title.
Staff client:
catalogue -> ISBDdetail
catalogue -> MARCdetail
catalogue -> detail
virtualshelves -> shelves
OPAC (you should have COinSinOPACResults system preference enabled):
opac detail
opac search
opac shelves
2) Run tests:
prove t/Biblio.t t/db_dependent/Biblio.t t/db_dependent/Koha/Biblio.t
Signed-off-by: Magnus Enger <magnus@libriotech.no>
Tested with all 9 current patches. Works as advertised, including
OPACURLOpenInNewWindow. If a record has no items, no OpenURL link
is displayed. All the suggested tests pass. I did not test with
XSLT turned off.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This patch use GetCOinS sub to provide an OpenURL link in OPAC search
results. It uses 4 new system preferences:
- OpenURLinOPACResults: enable or disable this feature
- OpenURLResolverURL: url of the openURL resolver
- OpenURLText: text of the link
- OpenURLImageLocation: image of the link
Link is displayed as an image if OpenURLImageLocation is defined, and as
text otherwise.
It works both with and without XSLT enabled.
Changes made to GetCOinSBiblio:
For 'journal':
- Title should be in rft.jtitle instead of rft.title
- rft.date, rft.aulast, rft.aufirst, rft.au, rft.pub and rft.pages have
no meaning for a subscription, so they are simply removed from URL
This patch refactors GetCOinSBiblio, so the construction of URL is done
only at the end. This way we do not have ugly
$var .= "&$value"
in the function body.
Also use URI::Escape instead of custom regexps.
This development consider the value of syspref OPACURLOpenInNewWindow
when building the link.
Test plan:
1/ Enable syspref OPACShowOpenURL and put your OpenURL resolver URL in
OpenURLResolverURL syspref (if you don't have one, just fill it with
some fake URL, you'll have to check if OpenURL links are correct)
2/ If you want, set the other sysprefs OpenURLImageLocation and
OpenURLText
3/ Fill syspref OPACOpenURLItemTypes with some (not all) of your
item types.
4/ Empty sysprefs OPACXSLTDetailsDisplay and OPACXSLTResultsDisplay
5/ Go to OPAC and launch a search.
6/ Check you have in the results (near the title) the OpenURL link (only
for itemtypes that are in OPACOpenURLItemTypes).
Toggle OPACURLOpenInNewWindow syspref and check that the behaviour of
the link is correct.
7/ Go to the detail page of one of those and check you have the OpenURL
link too. (Above tags)
Toggle OPACURLOpenInNewWindow syspref and check that the behaviour of
the link is correct.
8/ Set sysprefs OPACXSLTDetailsDisplay and OPACXSLTResultsDisplay to
"default" and repeat steps 5 to 7
Signed-off-by: Paola Rossi <paola.rossi@cineca.it>
Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This patch adds a 'pending hold' column to C4::Items:GetItemsInfo to
allow for displaying status of an item when it has been selected for a
hold by the holdsqueue and AllowItemsOnHoldCheckout is set to 'Don't
allow'
To test:
00 - Set AllowItemsOnHoldCheckout to 'Allow'
01 - Place a hold on an item
02 - Build the holdsqueue (kohadevbox example below)
sudo koha-shell kohadev
perl misc/cronjobs/holds/build_holds_queue.pl
03 - Search for the item on the OPAC
04 - Note item shows as 'Available' in results and details
05 - Toggle AllowItemsOnHOldCheckout to 'Don't allow'
06 - Repeat search, note there is no change
06 - Apply Patch
07 - Search for the item on the OPAC
08 - Note that item now shows as 'Pending hold'
09 - Toggle AllowItemsOnHoldCheckout to Allow
10 - Note item shows as available
11 - prove -v t/db_dependent/Items.t
Signed-off-by: Liz Rea <wizzyrea@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Test plan:
1) Open C4/XSLT.pm and confirm that the trailing space at line 313 is
gone.
2) Sign off.
Signed-off-by: Hayley Mapley <hayleymapley@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Resolves warnings like:
Use of uninitialized value in hash element at C4/XSLT.pm line 262.
Use of uninitialized value in numeric eq (==) at C4/XSLT.pm line 267.
Use of uninitialized value $status in concatenation (.) or string at C4/XSLT.pm line 300.
Note: Line numbers are not exactly the same anymore.
Test plan:
[1] Enable XSLT view in OPAC
[2] Without this patch, you will probably have some of these warnings when
doing some opac searches.
[3] Apply this patch. Check the logs again.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Lari Taskula <lari.taskula@jns.fi>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Due to the way it has been implemented, singleBranchMode is set to an
empty string rather than 0 if there is only one branch. This causes any
block that tests for singleBranchMOde to be 0 to never appear.
Test Plan:
1) Apply this patch set
2) prove t/XSLT.t
Signed-off-by: Jenny Schmidt <jschmidt@switchinc.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Ok I am silly, we needed to replace to use the cache mechanism for
search_by_koha_field, not find_by_koha_field...
Let's create another subroutine
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Adds stocknumber to data provided for xslt transformation
Test plan :
1) go to Administration module, MARC default frameworks and add, if not already done, a stocknumber subfield (a priori under the 995 tag). It will be linked to items.stocknumber in the koha.link zone of Advanced constraints section.
2) edit an item in staff interface and add a number in the stocknumber field.
3) Edit the xslt opac Results file that you are using and customize it. For a basic test, you can just replace "itemcallnumber" occurrences by "stocknumber".
4) make a search in a way to get several results including the title from which you modified an item.
5) You will see the added stocknumber displayed (between square brackets in the default xslt).
Same can be done through staff interface and staff xslt files.
Olivier Crouzet
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This patch replaces the call to C4::Koha::GetKohaAuthorisedValues with
Koha::AuthorisedValues->search_by_koha_field
Test plan:
AV descriptions should be displayed on the following pages:
- XSLT view - location and ccode
- Bibliographic detail, moredetail and OPAC pages - location, ccode, copynumber
- returns - location
- opac-basket - ccode, location
- The 3 reports: catalogue_stats.pl, issues_stats.pl and
reserves_stats.pl - location, ccode
Signed-off-by: Claire Gravely <claire_gravely@hotmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
GetMarcStructure() currently uses Koha::Cache in the "safe" mode
(returning deep copy of the result data structure by default), which
causes numerous performance issues in many Koha scripts. Switching
it to the "unsafe" mode globally (2nd patch from Bug 16140) resolves
those issues, but ensuring that it is regression-free (and that it
will stay that way in the future) is far from easy. This patch
proposes a bit more manageable solution, it introduces
a possibility to use "unsafe" variant selectively (only in those
places in the code where GetMarcStructure() is called repetitively).
That way, amount of the code that needs to be audited for possible
problems gets vastly reduced, without any performance trade-offs.
Test plan:
1) Have a look at the code and audit the parts affected by this patch
for possible regressions
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Amended the POD of GetMarcStructure, removing a TODO.
NOTE: GetAuthorisedValueDesc, as called in C4::XSLT::transformMARCXML4XSLT
and by GetISBDView, GetMarcAuthors in C4::Biblio, may autovivify some hash
entries in tagslib.
Same for Koha/Filter/MARC/ViewPolicy.pm, sub filter.
No reason however to worry; our use of this structure in Koha does not
depend on the existence of intermediate hash keys. (We seem to be safe as
long as $tagslib->{$tag}->{$subfield}->{tab} and/or hidden are not filled.)
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Why not clean up the License Agreement stuff while the files
are being changed? Used the current one found at:
http://wiki.koha-community.org/wiki/Coding_Guidelines#Licence
Changed the strict and warning lines into just a Modern::Perl.
Signed-off-by: Robin Sheat <robin@catalyst.net.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
When you search in the OPAC it shows you the HOME branch on the location
in XSLT, but if you click through to the detail page it shows you the
CURRENT BRANCH in the holdings table which is very confusing to patrons.
I don't know what's the right solution - home or holding branch, but they
should be the same in both places for the patron's sake. If you do the same
search in the staff client you see the right branch info on the search results
and on the detail page.
Test Plan:
1) Apply this patch
2) Run updatedatabase.pl
3) Search the catalog, you search should include results with items
that have different home and holding libraries.
4) The results should look the same as before the patch
5) Change the system preference OPACResultsLibrary to "current location"
6) Refresh your page of search results
7) The results show now show the holding library instead of the home library
Signed-off-by: Barbara Walters <bwalters@ncrl.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This patch makes the shelves.pl (staff) and opac-shelves.pl scripts
use the new sysprefs for specifying custom XSLTs for lists display.
XSLT.pm is patched so it defaults to the corresponding *Results.xsl
files if none is specified.
To test:
- Create a list
- Open the list in the staff interface
- On a new tab, open the list in the OPAC.
- Apply this patches
=== default behaviour
- Open the list (both opac and staff) on new tabs
=> SUCCESS: They look exactly the same (hint: the syspref is set to ''
so it should fallback to using the one we were using.
=== using the new functionality
- Create custom XSLTs for lists, for example:
$ cd /home/vagrant/kohaclone/koha-tmpl/opac-tmpl/bootstrap/en/xslt
$ cp MARC21slim2OPACResults.xsl MARC21slim2OPACLists.xsl
- Edit your sysprefs, setting OPACXSLTListsDisplay to:
/home/vagrant/kohaclone/koha-tmpl/opac-tmpl/bootstrap/{langcode}/xslt/MARC21slim2OPACLists.xsl
- Reload the OPAC list view
=> SUCCESS: Looks exactly as before
- Make some minor tweak (for example in line 423 replace
<xsl:text> </xsl:text>
for
<xsl:text> BLAH </xsl:text>
- Reload the list
=> SUCCESS: BLAH shows in several places on the title.
- Repeat for the staff interface
- Sign off :-D
So we can now set custom XSLTs for lists.
Sponsored-by: Carnegie Stout Library
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Deb Stephenson <DStephen@dubuque.lib.ia.us>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Set variables ($sysxml, $xslfilename, $lang) if they are not passed to
the subroutine. This happens from catalogue/detail.pl,
opac/opac-shelves.pl, opac/opac-tags.pl and virtualshelves/shelves.pl.
Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
On search, every single result goes through some XSLT processing.
This includes fetching the relevant sysprefs every single time.
We should do it only once per search.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
[1] Remove a vim inserted i from XSLT.pm: IdRefi => IdRef.
[2] The comment about UNIMARC is somewhat confusing. Rephrased it.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Mainly a
perl -p -i -e 's/^.*3.07.00.049.*\n//' **/*.pm
Then some adjustements
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
perl -p -i -e 's/^(use vars .*)\$VERSION\s?(.*)/$1$2/' **/*.pm
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
The singleBranchMode system preference does not make sense.
Either the install has only 1 library defined or several. In both case,
we can easily guess the behavior to follow.
So the idea of this patch is to replace the fetch of this syspref with a
call to count the number of libraries defined in DB.
Test plan:
1/ From a fresh Koha install, execute the DB entry to remove the pref.
2/ Define only 1 library
3/ Confirm that Koha behaves the same as before (try to change your
library, look at the facets)
4/ Create another library (or more) and reinsert the pref and set it:
insert into systempreferences (variable, value)
values('singleBranchMode', 1);
5/ Execute the DB entry
You should get a warning message.
6/ Repeat 3.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Does what it says, but will change behaviour for any Koha install that
has 2 branches defined, One circulation, and this preference set.
If that is an acceptable change, we might need to make sure this is noted well in the
release notes.
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Most of them were found and fixed using codespell.
Fix also some related grammar issues.
In C4/Serials.pm a variable was renamed to make future codespelling
checks easier.
Signed-off-by: Stefan Weil <sw@weilnetz.de>
http://bugs.koha-community.org/show_bug.cgi?id=14383
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch add the same behavior as previous patches for the xslt view.
Signed-off-by: valerie bertrand <valerie.bertrand@univ-lyon3.fr>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Two XSL files in the bootstrap theme contain hard-coded paths to the
prog theme directory. This patch adds a query of the opacthemes system
preference and builds the path based on the returned value.
To test in a MARC21 system:
Create or locate a record which contains a subject which is linked to an
authority record. View the detail page for that record in the bootstrap
OPAC and confirm that there is a magnifying class icon next to the link
for that subject heading. Inspect or right-click the image and "View
image" [FF. "Open image in new tab" in Chrome] to verify that the image
being shown is from the bootstrap theme directory.
Also modified: The NORMARC XSL for the detail page which has been
changed in the same way. I did not test it in a NORMARC catalog.
Edit: Fixed copy-and-paste error causing duplicate image.
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Use C4::Languages::getlanguage() instead of
C4::Templates::_current_language()
Test plan:
1/ Set one of the 4 XSLT sysprefs to 'default'
2/ Go to the corresponding page
3/ Switch language and check that the right XSLT is used
4/ Set the same syspref to something with '{langcode}' in it. For
example:
"../koha-tmpl/opac-tmpl/bootstrap/{langcode}/xslt/UNIMARCslim2OPACDetail.xsl"
5/ Go back to the corresponding page
6/ Switch language and check that the right XSLT is used
7/ Change a compact.xsl for a language (for example
koha-tmpl/intranet-tmpl/prog/fr-FR/xslt/compact.xsl) to be able to see
differences
8/ Go to a biblio detail page in staff interface and click on "MARC
Preview: Show"
9/ Close the popup, switch language and click again on the same link
10/ Check that the correct XSLT is used.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Works as described following test plan.
No koha-qa errors
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
No problems found, passes tests and QA script.
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Incorporate the new object into C4/XSLT module.
The handler object needed one adjustment to allow for passing URLs.
Removed the GetURI function; it is no longer needed.
Added some documentation lines.
Moved a file-level lexical upwards in the code for visibility.
Removed some tabs (on two lines).
Note: The handler could perhaps be moved up to the Context module, or
be saved in a global ('our') variable. But I would rather not do that
now, making testing not too complex at this moment.
Test plan:
Enable XSLT preferences for opac and intranet.
Check result and detail pages.
Check individual list display (virtual shelves).
Force an XSLT error by editing one of your xsl files. Check the
corresponding display.
Put an URL in one the XSLT prefs (could just be to your own server).
Check the display.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Running XSLTParse4Display in a loop showed no significant performance
change.
One pass cost me around 0.012 sec (except for the first pass).
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Results, detail, url and list view Ok
No koha-qa errors
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
< and > are incorrectly transformed into HTML entities on the
XSLT result list when using the GRS-1 indexing mode.
Example:
Record: <TEST>
Result list: <TEST>
HTML source: &lt;TEST&gt
To test:
- catalog a record that contains > and <
- Reindex, without using the -x option
- Confirm the display is correct
- Reindex again, using the -x option
- Confirm the display is now broken
- Apply patch
- Reindex again with and without -x
- Verify that now the display is always correct
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Note: the problem is only visible in GRS-1 setup. It works as expected.
No behaviour change in DOM.
I believe we shouldn't be (de)escaping data ad-hoc, but it seems that GRS-1
needs it because it doesn't handle HTML entities properly. This fix is OK for
GRS-1, unneeded for DOM and probably any other modern search engine.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This patch updates the wthdrawn field in items and deleteditems to be
withdrawn instead. No functional changes are made.
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Comment: Save for translation files (that will be fixed on next release),
only occurrence of wthdrawn is on updatedatabase.pl
No koha-qa errors.
This touch many files, and I did not test everything,
but all seems normal. I think that any problem could
be fixed later.
Perhaps both entries in updatedatabase.pl could be joined
into one, but thats for QA.
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This patch fixes a bug whereby XSLT files from the
prog theme would be used (for English OPACs and staff
interfaces) even if the user had created and enabled a
custom theme that provided override XSLT files.
This patch provides a clearer implementation of the fallback
logic and adds test cases.
To reproduce the bug:
[1] Set OPACXSLTDetailsDisplay to 'default' and English as the OPAC
language.
[2] Create a new OPAC theme, including copying the XSLT files.
[3] Set opactheme to the new theme.
[4] Make a change to koha-tmpl/opac-tmpl/NEWTHEME/en/xslt/MARC21slim2OPACDetail.xsl
[5] View a bib record in the OPAC. The change made in the previous step
is not reflected.
To test after applying the patch:
[6] Reload the bib record in the OPAC. The change made in step 4 should
now be reflected.
[7] (To be thorough) Go through the test plan for bug 8947
and verify that there is no regression.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
If you do not have ccode or location governed by authorized value
(you can release this default connection in the marc structure),
these item values are not passed through in the items section,
created by buildKohaItemsNamespace for XSLTParse4Display.
This simple patch checks if the authorized value hash on ccode or
location returns something and passes the original value in otherwise.
Test plan:
Temporarily disconnect ccode and location from authorized values
in MARC structure.
Edit an item, put some values in location and ccode.
Look at this record via opac search (XSLT enabled). Toggle the value of
OPACItemLocation to show ccode or location before call number.
Restore authorized values-connection when applicable.
Note: Since bug 9995 adjusts OPAC XSLT Results, it may be helpful
to apply these
patches when testing this.
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
This works as described for the XSLT result list.
The text is shown when OpacItemLocation is set to show collection
or location.
Note: Displaying location and collection without using authorised
values doesn't work in other places like the detail page item table.
So this will need more work to be fully functional.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
To test:
Use attached XSLT stylesheet for OPAC Results
* set your OPACXSLTResultsDisplay to use the attached stylesheet. The path is the FULL PATH, from /, to the file.
* be sure to copy MARC21slimUtils.xsl to the same folder, or change the path in the attached one to point to the correct path on your filesystem.
Verify that the OPAC results now show the holding branch instead of the home branch.
Possible fail states:
* no branch is shown (only call numbers, if given)
* the wrong branch is shown
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Removing binmode, now encoding data in output_with_http_headers.
Replaced output_string by output_as_chars in XSLTParse4Display.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
No errors.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
If XSLTResultsDisplay is enabled and items in your search results lack a
shelving location or a ccode errors will appear in the log complaining
of "uninitialized value in hash element." This patch adds a check on
these values to quiet the errors.
To test, find or create a record with items which have no shelving
location and/or no collection code. Perform a search the results for
which will include your record. Check for errors in the log.
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Cleans up logs for result list quite a bit.
Passes all tests and QA script.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Implements the material type icons shown in the MARC21 XSLT result list
of the OPAC for the intrant result list.
Also adds the system preference DisplayIconsXSLT as an intranet analogue
for the OPAC system preference DisplayOPACiconsXSLT and corrects the
descriptions of both preferences in the syspref editor.
To test:
0) Run database update to add new system preference
1) Activate default XSLTResultsDisplay
2) Check the new system preference DisplayIconsXSLT shows up correctly
and is activated by default. Compare descriptions between DisplayIconsXSLT
and DisplayOPACiconsXSLT.
3) Check the intranet result list for icons showing up after 'Type:' and
before the corresponding description. Detail pages should be showing
the 'Type:' as before.
4) Turn off DisplayIconsXSLT.
5) Check the line containing 'Type:', format and audience information is now
hidden from the result list.
6) Check that the 'Type:'line is also hidden from the detail page.
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This patch rewrites the GetReserveStatus routine in order to take in
parameter the itemnumber and/or the biblionumber.
In some places, the C4::Reserves::CheckReserves routine is called when
we just want to get the status of the reserve. In these cases, the
C4::Reserves::GetReserveStatus is now called.
This routine executes 1 sql query (or 2 max).
Test plan:
Check that there is no regression on the different pages where reserves
are used. The different status will be the same than before applying
this patch.
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
* Don't show the Location line if there are no copies available, since it
will inevitably be blank
* Also, don't show locations for Checked Out, Lost, Damaged, Withdrawn,
On Hold or In transit items; it doesn't really make sense, since the
items aren't actually there, and it results in repetitive listing of
the shelving location
* Added system preference to display shelving location of an item on opac
results. The system preference is called OpacItemLocation. I also moved
the call number to a new line called Location along with the shelving
location if it is enabled.
To Test:
1) Run database update script to add syspref.
2) Set OpacItemLocation to show locations or collection codes on the
opac-search page.
If it is working you should see the shelving location of the item
before the call number. Multiple home branch shelving locations
are seperated by a pipe character ( i.e. '|' ).
Based on code by Elliot Davis <tdavis@uttyler.edu>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Works as advertised.
Signed-off-by: Ed Veal <ed.veal@bywatersolutions.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
The logic for the XSLT fallback was backwards, which meant that
non-English installations of the CCSR theme were unable to use XSLT
stylesheets. This patch corrects the logic.
To test:
1) Switch to the ccsr OPAC theme.
2) Switch to a language other than English for the OPAC.
3) Turn on the default XSLT stylesheets for the OPAC.
4) Do a search or view a record that would result in something being
displayed with XSLT. This will work after the patch, but not before.
Signed-off-by: Magnus Enger <magnus@enger.priv.no>
Works as advertised!
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This patch does the following:
1) Enables fallback for includes between different themes and different
languages (with the exact same precedence as for .tt files)
2) Enable fallback for XSLT files between different themes and different
languages (again, same precedence)
3) Change the semantics of the TT [% themelang %] variable so that it always
refers to the preferred theme and language, rather than the fallback
theme/language. As a result, all themes must include all javascript,
css and image resources they use.
Note that these changes actually have no impact whatsoever on an
installation where the default (prog) themes are in use.
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Mason James <mtj@kohaaloha.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This is only for the MARC21 XSLT at this stage, follow up patch for
UNIMARC will come
Conflicts:
C4/XSLT.pm
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Bareword "C4::Templates::_current_language" not allowed while "strict subs" in use at /home/oleonard/kohaclone/C4/XSLT.pm line 175.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Fixes the problem.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This makes bug 4032 support multi-language Koha installation which is important
for some of Koha users.
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
1) After update XSLT system preferences are set to 'default'. All views
(OPAC and staff, results and detail page) work and switching languages
selects the correct translated file.
2) Leaving empty works and normal views are used.
3) Putting in a single URL without placeholder works.
4) Putting in a URL with placeholder works. Created local directories
have to match the language codes.
NOTE: In order to make the URLs and patchs work, the Utils file needs to be
copied too.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Marijana Glavica <mglavica@ffzg.hr>
I am signing it off because it doesn't break anything and I will report
another bug for language issues described in my previous comment.
Removed MySQLism backquotes
This patch adds a syspref UseICU for toggling between using "" and {} for
quoting in subject tracings. With normal Zebra indexing, "" must be used. With
ICU Zebra indexing, {} must be used.
This syspref interacts with TraceCompleteSubfields and TraceSubjectSubdivisions.
To test:
- marcflavour = MARC21
- make sure you have a record with a "complex subject", like
"Internet -- Law and legislation"
Toggle UseICU, TraceCompleteSubfields, and TraceSubjectSubdivisions and check
that you get the expected results for the clickable links in the OPAC detail
view:
TraceCompleteSubfields = Don't force
TraceSubjectSubdivisions = Don't include
UseICU = Not using
opac-search.pl?q=su:"Internet"
UseICU = Using
opac-search.pl?q=su:{Internet}
TraceCompleteSubfields = Force
TraceSubjectSubdivisions = Don't include
UseICU = Not using
opac-search.pl?q=su,complete-subfield:"Internet"
UseICU = Using
opac-search.pl?q=su,complete-subfield:{Internet}
TraceCompleteSubfields = Don't force
TraceSubjectSubdivisions = Include
UsingICU = Not using
opac-search.pl?q=(su:"Internet") and (su:"Law and legislation.")
UsingICU = Using
opac-search.pl?q=(su:{Internet}) and (su:{Law and legislation.})
TraceCompleteSubfields = Force
TraceSubjectSubdivisions = Include
UseICU = Not using
opac-search.pl?q=(su,complete-subfield:"Internet") and (su,complete-subfield:"Law and legislation.")
UseICU = Using
opac-search.pl?q=(su,complete-subfield:{Internet}) and (su,complete-subfield:{Law and legislation.})
Check that clicking on the generated links gives the expected search results,
but with normal and ICU indexing. (I have actually not tested this with ICU, so
doing that before signing off is crucial.)
UPDATE 2012-03-16:
Changed the name of the syspref from TracingQuotes to UseICU after a suggestion
from Paul P., to make it more generally useful.
I have used "Using/Not using" instead of "Use/Don't use" in the description of
the syspref, to reflect the fact that this syspref will not change how Zebra
does its indexing - it's just a way of telling Koha how the indexing is
actually done.
I have also set UseICU = 1 in updatedatabase.pl, since that will preserve the
current behaviour of Koha, but UseICU = 0 in sysprefs.sql, since most new
installations will not have ICU activated.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Aleksa Vujicic <aleksa@catalyst.net.nz>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Amended to replace some copy-and-paste comments only with consent of MJR.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Changed searchResults() interface
Added trailing \n when parsing OpacHiddenItems to make YAML happy
XSLTParse4Display() and buildKohaItemsNamespace() take hidden
items as input param
Removed numbering from the search results, looks wrong with
hidden items
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
I can confirm the bug and the solution.
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Second sign-off from me, patch fixes display of detail page
for last record on a result page.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
To test:
Create 4 holds on a bib, for patrons A, B, C, and D,
Check in the item to mark hold as waiting for patron A
Check out the item to patron B -> reserve for patron B should be removed
Check in the item to mark hold as waiting for patron A
Check out the item to Patron A, hold should complete normally
Check in the item to mark hold as waiting for patron C
Check out the item to patron D -> reserve for patron D should be removed.
Check in the item to mark hold as waiting for patron C
Check out the item to patron C, hold should complete normally
Check in the item -> there should be no more reserves.
We also tested:
Created 4 holds on a bib with two items, for patrons A, B, C, and D
All worked as expected.
Signed-off-by: Liz Rea <wizzyrea@gmail.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This patch solves the situation that news is in another language than
the Koha interface AND makes that themelanguage routine is always called
the same way in order to prevent mixed display.
It fixes also a bug related to language preselection based on web
browser prefered language.
September 9: Adjusted with input of Frederic Demians.
Septembre 10: Avoid circular dependency, as pointed by Chris Cormack.
Templates related functions are moved from C4::Output to C4::Templates
Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com>
Signed-off-by: Ian Walls <ian.walls@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This patch adds the ability to specify a field with alternate holdings
information for display when a biblio has no items associated with it.
Two sysprefs are added:
* AlternateHoldingsField specifies what field/subfields contain the alternate
holdings information. When blank, the alternate holdings information is not
displayed. The default is blank, as this is a new feature.
* AlternateHoldingsSeparator specifies the string to be used to separate
multiple subfields in the alternate holdings display. The default is ' '.
Example use case:
A library which does not have a 1-1 relationship between uncontrolled 852 fields
from a legacy system and actual physical items on the shelf wishes to display
holdings information from the 852, but does not want to create item records
which are almost certain to be inaccurate. By enabling the alternate holdings
feature (AlternateHoldingsField = '852abcdhi' and AlternateHoldingsSeparator =
' -- '), the library is able to gradually add item records as they locate the
physical items, without losing the holdings information presently stored in the
uncontrolled 852 fields.
To test:
1) Set AlternateHoldingsField to '852abcdhi'
2) Set AlternateHoldingsSeparator to ' -- '
3) Change the hidden value of subfields 'a', 'b', 'c', 'd', 'h', and/or 'i' of
field 852 to 0 so that they display
4) Create a record which has data in the 852, but no item record
5) Look at holdings tab, where the data you entered should be displayed
Proof-of-concept initially developed for the American Numismatic Society.
Signed-off-by: Jared Camins-Esakov <jcamins@bywatersolutions.com>
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This will work similar to 'Show volumes' links from traced series records and
set records. A link to search for analytics linked to serials.
A new syspref will be added: UseControlNumber.
This syspref will make it possible to determine, if $w and Controlnumber are
used for linking of records in bibliographic records.
If syspref is OFF (default), the search links will not use control numbers
but keywords.
If syspref is ON links will be built using Control-number and rcn index.
NOTE: 773$a is added to index Host-item. For testing on a dev installation:
copy record.abs to your koha-dev folder and reindex!
Rebased against 3.03.00.035 and a small typo fixed by Jared Camins-Esakov.
Signed-off-by: Jared Camins-Esakov <jcamins@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Add an option to the OPAC to display the URI that is stored in the 856u field
as an image instead of a text link. This would be implemented in the OPAC XSLT
style sheets for the Results and Details pages, and would require that the
corresponding OPAC XSLT option be set.
This enhancement is designed to enable the staff to catalog images, then have
them appear on the resulting pages in the OPAC when searching. Clicking on the
image would open it full size. If the image option is in use, then the default
link text would be disabled. Custom text would still appear if entered in the
"URLLinkText" option.
Add system preference "Display856uAsImage" with options of Results page,
Details page, Both Results and Details pages, Neither Results or Details page.
Notes for documentation manager:
There are two system preferences added for this enhancement:
OPACDisplay856uAsImage and Display856uAsImage. These appear on the OPAC and
Staff Client screens under the System Preferences.
The preference can be set to one of four options:
Both Details and Results pages
Details page only
Neither Details or Results pages
Results page only
In addition to this option being set, the corresponding XSLT option must be
turned on. Also, the corresponding 856q field must have a valid MIME image
extension (e.g., "jpg") or MIME image type (i.e. starting with "image/"), or the
generic indicator "img" entered in the field.
As of 14 March 2011 the UNIMARC xslt display files also require a "0" in the
second indicator location of the 856u field for the links to be activated. This
is not true for the MARC21 display files.
When all of the requirements are met, an image file will be displayed instead of
the standard link text. Clicking on the image will open it in the same way as
clicking on the link text.
Rebased and three original patches squashed into one on 30 March 2011 by Jared
Camins-Esakov.
Signed-off-by: Jared Camins-Esakov <jcamins@bywatersolutions.com>
Signed-off-by: Doug Dearden <dearden@sarsf.org>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
When XSLT is enabled, the subject tracings on the details view (both OPAC and
Intranet) previously only searched on the subfield 'a'. In addition, searches
failed when the tracing included parentheses, and the XSLT display did not
include subfields other than abcdvxyz, even for those 6xx tags that have other
subfields.
This patch adds a syspref: TraceSubjectSubdivisons. When
TraceSubjectSubdivisions is set to "Don't include" (default), the subject
tracings in the XSLT details view will only search on subfield 'a'. When
TraceSubjectSubdivisions is set to "Include", the subject tracings will search
on all subfields, not just subfield 'a'.
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This fix ensures that searches will still work when -x is not used when
reindexing Zebra.
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Signed-off-by: Magnus Enger <magnus@bibkat.no>
Signed-off-by: Jane Wagner <jwagner@ptfs.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
When using XSLT mode, the OPAC results display will show "&" instead of "&"
when Zebra is indexing in XML mode. This patch works around this by replacing
"&" with "&" and then extends the previous fix to apply to all occurrences
of "& " instead of just the first.
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This patch adds the syspref TraceCompleteSubfields. When TraceCompleteSubfields
is set to "force," clicking on links in non-authority controlled subject
tracings will only find other records where the entire subfields match. Leaving
it at "don't force" keeps the current behavior of doing a keyword search of the
subject indexes.
This patch implements complete-subfield subject tracings in MARC21 XSLTs (OPAC
and Staff) and all Normal mode interfaces. UNIMARC XSLTs have not been updated.
This patch also adds the syspref UseAuthoritiesForTracings. When set to "Do not"
tracings in the XSLT detail displays will never generate links using authority
numbers, but rather use the heading strings (NB: the tracings currently use only
subfield 'a' for generating links).
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Signed-off-by: Jane Wagner <jwagner@ptfs.com>
Signed-off-by: Jared Camins-Esakov <jcamins@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
When hidelostitems system preference is enabled, lost items are hidden on OPAC
detail page but are shown on result page. This patch modify MARC21/UNIMARC XSL
in order to take into account hidelostitems syspref on OPAC result page.
Signed-off-by: Liz Rea <lrea@nekls.org>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
XSLT.pm add few syspref to MARCXML record send to be transformed by XSLT. If
one of those syspref doesn't exist, it generated a warning.
Signed-off-by: Colin Campbell <colin.campbell@ptfs-europe.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
<, >, ', or " in an item call number will no longer make
the bib displays break when using XSLT mode.
Added a new routine to C4::Koha, xml_escape(), to implement
converting &, <, >, ', and " to their corresponding
entities.
Patch loosely based on work done by Daniel Latrémolière <daniel.latremoliere@bulac.fr>
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
- Adding material type icons from the OPAC side
- Adding OPAC View link
- Copying revised handling of MU from the OPAC
- Removing OPAC-specific markup
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Note: approach used can be described as a hack at best; the current
language should probably become a session attribute.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
This is a quick fix to XSLTParse4Display to make ampersands display
correctly in OPAC search results.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Fixes the opac results (opac-search.pl), if using xsl to transform data. I have no way to test UNIMARC results, if someone could test it for me.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
When using XSLT Display, and UNIMARC,
since marcFlavour is not used in encoding data, when data is true utf8, as_xml
fails on some subfields.
Moreover, because transformMARCXMLForXSLT edits some values in the marc record
and the PERL UTF8 is not handled by MARC::File::USMARC, it endsup in double
encoding the data.
Sending a patch to fix both issues.
This patch adds
- two functions in C4/Charset.pm
NormalizeString (uses Unicode::Normalize)
SetUTF8Flag (This function in my opinion belongs to MARC::Record, or at least MARC::File::USMARC)
- edits C4::XSLT in order to cope with the correct marcflavour
- edits C4::Search searchResults to use setUTF8Flag
If the homebranch tag had an & in its name, then the XML wouldn't parse
correctly. As a result, if XSLT was turned on, "No copies available" would
always be displayed.
- the XSLTParse4Display sub now has a new parameter : the interface (intranet or opac)
- the XSLTdisplay sysprefs is common to staff & opac (Auth.pm)
- added UNIMARC xslt in intranet templates (modified to deal with staff/opac differences)
The patch I sent earlier repeated a line having to do with the count of items, which mean the count was now doubling (2 items instead of 1, 4 instead of 2, etc.). This patch removes the first, now superflous line of $xmlrecord =~ s/\<\/record\>/$itemsxml\<\/record\>/;
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
The MARC21slim2OPACDetail.xsl and MARC21slim2OPACResults.xsl XSLT
stylesheets do not obey any of the OPAC sysprefs, OPACURLOpenInNewWindow,
URLLinkText, or a new one added for Bug 3545, DisplayOPACiconsXSLT.
Modified C4/XSLT.pm based on code written by Fréric Demians (thanks!) to
pass the values of the sysprefs to the .xsl files. Modified the .xsl
files to implement them. If the respective sysprefs are set, the OPAC
results and display pages will/will not display the format/material
type/audience icons, will/will not open URLs in new browser windows,
and will/will not use the text entered in URLLinkText as generic link
text when there is no value in the 856 subfield y, 3, or z. (Note that
if subfields y, 3, or z do contain text, the first match is what will be displayed.)
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
This patch is done in the process of understanding what's
going wrong with bug #3226. It improves some processing.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Avoid reading marc_tag_structure for each biblo record to
transform by XSLT. Not totaly useless on OPAC result page.
Should be done via application variables rather than
request variable, but this is another story.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Speed up bib search and OPAC bib display, especially
when the XSLT OPAC results and details display sysprefs are
ON, by passing an existing MARC::Record object to three
functions:
C4::Biblio::get_biblio_authorised_values()
C4::XSLT::XSLTParse4Display()
C4::XSLT::transformMARCXML4XSLT (internal)
These functions previously fetched the bib from the
database, incurring the cost of DB retrieval and MARCXML
parsing even though client code already had a
MARC::Record object available.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
1. rather than testing for notforloan == -1, test for any negative values to set the On order status
2. in cases where itemcallnumber is blank or null, don't display the itemcallnumber brackets []
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This patch works with XSL* sysprefs == ON, a future patch will address XSL sysprefs==OFF
Items with notforloan set to a negative number still designate an 'ordered' status
Some items are marked 'not for loan' by setting that value at the item level, others by assigning
that value to that item's itemtype. This patch works for both scenarios.
Specific changes this patch introduces to the OPAC:
* Adds a new OPAC results page key 'Copies available for reference:'
* Changes 'Copies available at:' to 'Copies available for loan:'
* Changes the availability limit label in opac-advsearch from:
'Only items currently available' to 'Only items currently
available for loan or reference
* Displays the authorised value for the specific notforloan value in the OPAC detail page in
parentheses next to 'Not for Loan'
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
In XSLT.pm, put XSLT stylesheet object in a session variable in order
to avoid to build it for each biblio to parse: useful on search
result page.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
The in transit status now displays as such in the
OPAC search results. In the non-XSLT version, the status
is checked only for bibs having 20 or fewer items to avoid
extra hits on the database during result set presentation.
In the XSLT version, all items are checked.
Note that because an item's transfer status is not
stored in the MARC record, the transfer status
has no effect when limiting a search by item
availability. For a future version, the transit status
should be added to the Zebra index.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>