Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Confirmed that memcached is still being used after the memcached configuration
in koha-conf.xml was removed, and the following two lines were added to
both virtual hosts in koha-httpd.conf:
SetEnv MEMCACHED_SERVERS "127.0.0.1:11211"
SetEnv MEMCACHED_NAMESPACE "KOHA"
Basically I add some code to Context.pm so it stores koha-conf.xml config vars
in memcached server. It is arguable whether this is an improvement or not,
tests are needed to conclude something about this.
Error handling was an issue with Cache::Memcached, I tried to do it the
simplest I could.
Note: As it was pointless to read the xml file to get the memcached
server info for accessing them for retreiving the info in the koha-conf.xml
file... I passed those values through apache's SetEnv. These variables
are set acordingly through the install scripts and commented out if koha
was setup not to use it.
Bug 6193 - Properly comment the code
Required by slef.
Regards
To+
Signed-off-by: Federico Rinaudo <frinaudo@infocpt.com.ar>
Signed-off-by: MJ Ray <mjr@phonecoop.coop>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Checking NYTProf in C4::Context, it appears that the /i flag is highly time-consumming
As we don't support anything outside from mysql, returning directly mysql directly
If in a future version PostgresSQL works, then we will have to update this sub. But if an ORM is introduced, this code will be removed completly anyway
Testing note:
Drops execution time of the line from 300ms to 20 microseconds (in my testing).
Before this patch, if a mySQL occured in Koha (any error), then the user was seeing nothing.
With this patch, if DEBUG is set in Koha VirtualHost, any mySQL error will make Koha die and display the SQL error
Step to test:
=== BEFORE PATCH ===
go anywhere, and change a mySQL statement to make it invalid.
Launch a page using the SQL you've made wrong, you'll see nothing, except you won't see the expected results
=== AFTER PATCH ===
Modify koha-httpd.conf, and add the following line, in the virtualhost (if it does not already exist)
SetEnv DEBUG 1
restart/reload Apache
Launch the same page, you'll get a Perl statement saying something like:
DBD::mysql::st execute failed: <<blablabla SQL error>> at <<where the error was raised line <<error line>>
XML::Simple returns by default an empty hash ref if it encounters an xml tag
with no attributes or content. If memcached_servers is empty, as the installer
sets it when this feature is disabled, then we get the empty hash ref.
In checking if memcached_servers is set the empty hash ref evaluates as true.
I.E.
$servers = C4::Context->config('memcached_servers');
if ($servers) {
so we get a comiler error from memcached trying to resolve the nonexistant
server address.
This reverts commit 7a3bdce23d.
Even though patches were submitted that fixed the breakage
that this commit caused to NoZebra searchs, it turns out
this breaks code that uses SimpleSearch - clients of that
routine currently expect ISO2709 blobs, not MARCXML.
No further patches for 3226 will be pushed until a complete,
comprehensive patchset is submitted that (a) includes a
test case for the original bug and (b) demonstrates that
it doesn't break any aspect of bibliographic and authority
searching.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
When displayed on result page, some UNIMARC biblio
records are marc8 to utf8 converted for whatever
reason! It appears that iso2709 records in Zebra can't
always properly by used to construct MARC::Record.
This patch ask Zebra to return xml record rather than
iso2709 and use it to create MARC::Record (like
C4::GetMarcBiblio). i
Fix facet display.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
When displayed on result page, some UNIMARC biblio
records are marc8 to utf8 converted for whatever
reason! It appears that iso2709 records in Zebra can't
always properly by used to construct MARC::Record.
This patch ask Zebra to return xml record rather than
iso2709 and use it to create MARC::Record (like
C4::GetMarcBiblio).
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
* more portable way to determine uname for
crash messages
* C4::Context->userenv now returns undef instead
of 0 if no userenv has been set yet; returning
undef when necessary is almost always better
than returning a scalar when a hashref is
normally expected.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Refactoring KOHAVERSION to be less crufty, enabling use warnings, change formatting slightly in places.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
C4::Installer provides a way to update the kohaversion syspref. Now that
C4::Context caches syspref values, any updated value through C4::Installer
is not being seen.
This patch adds a method to C4::Context to allow you to clean that
cache. Then, it calls that method when the kohaversion syspref is changed.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This patch employs process-local caching of systempreferences and
eliminates the "select 1" execution every time dbh() is called.
DBI::ping() is used instead.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Support multiple timezones via Apache SetEnv. See the perldoc for
admin/env_tz_test.pl on how to configure and test. Minimal changes
to Context itself.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
C4::Context->preference was not using placeholders and was potentially vulnerable to
a SQL injectin attack. This patch refactors the method to use placeholders.
Added some tests for C4::Context.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Adding code to refresh "Lists" button lists display in OPAC masthead.inc
Adding javascript to force refresh of parent window to update "Lists" button menu
Adding query limits and ability to specify row count and offset in queries related to Virtualshelves.
Also added the ability to return total record counts for specified virtualshelves.
Adding C4::VirtualShelves::GetRecentShelves which returns a list of the most recently modified shelves for
a given set of parameters. This allows the user to be offered active private and open lists to add books
to in drop down menus while also allowing drop down menus to be limited to a reasonable length.
This also limits the shelves stored in the user's session to a fixed number. A further enhancement might
be to add a syspref to enable a staff member to define the limit. Currently it is hardcoded at 10 per
list type (private/public-open).
Adding pagination to list/shelf related screens
Moving refresh shelves code into C4::VirtualShelves::RefreshShelvesSummary and tidying up a bit
Correcting several inconsistancies in the shelves templates as well as handling shelf management on
the intranet side correctly.
Correcting "Add To:" drop-down list to show only lists the patron has permission to add to
Correcting a few C4::VirtualShelves::GetShelvesSummary API calls
Modifications for template consistancy
Breaking up a 1367 char line of javascript in opac-results.tmpl
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Koha software and DB version numbers now reported;
also improved formatting of multi-line error messages.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Many of the tests were failing or putting warnings
because a valid systempreferences table is
usaully absent by the time 'make test' is run.
Fortunately, only a few modules try to invoke
C4::Context->preference during module initialization,
so added to the test suite override_context_prefs.pm,
which replaces preference() with a sub to return
testing values for three variables: 'dateformat',
'marcflavour', and 'LibraryName'.
Also fixed bug in t/Boolean.t
With this patch and the patch to move the DB-dependent
tests off to the side for the moment, 'make test'
now runs cleanly, at least on Debian.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>