Details
-
Type:
New Feature
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: Wishlist
-
Component/s: MyResearch, User Interface
-
Labels:None
Description
VuFind is currently in use by several library consortia, but they rely on local modifications. We should try to get some consortium-oriented functionality into the base code so that it requires less work to get VuFind up and running in a consortial environment.
Some example features:
- Ability to filter to a single library or show all libraries' holdings (perhaps a new generic faceting mechanism could be added that inserts a drop-down list into the UI and remembers the setting of the drop-down across all pages).
- Ability to show holdings differently depending on currently selected home library.
- Ability to associate a home library with a user account.
- Ability to take multiple libraries (and possibly multiple ILS's) into account when placing holds.
Please feel free to comment on this ticket with ideas for additional features. When we start implementing this, we should open additional subsidiary tickets so we can track each feature separately.
Some example features:
- Ability to filter to a single library or show all libraries' holdings (perhaps a new generic faceting mechanism could be added that inserts a drop-down list into the UI and remembers the setting of the drop-down across all pages).
- Ability to show holdings differently depending on currently selected home library.
- Ability to associate a home library with a user account.
- Ability to take multiple libraries (and possibly multiple ILS's) into account when placing holds.
Please feel free to comment on this ticket with ideas for additional features. When we start implementing this, we should open additional subsidiary tickets so we can track each feature separately.
Attachments
Issue Links
| This issue incorporates: | ||||
| VUFIND-418 | Allow specifying configuration source from the HTTP server |
|
|
|
function getHomeLibrary()
{
// Is home library already determined in the session? (This may be a cached value from
// the logic below, or it may have been set by the user via a UI control). If so, send it back:
if (isset($_SESSION['homeLibrary'])) {
return $_SESSION['homeLibrary'] ;
// Home library may be specified via GET/POST or cookie -- all show up in $_REQUEST;
// this allows flexibility in how different sites set up location-specific instances of VuFind.
// You can set persistent cookies on machines at particular locations, or you can create
// custom search forms or links from certain places.
} else if (isset($_REQUEST['homeLibrary'])) {
$_SESSION['homeLibrary'] = $_REQUEST['homeLibrary'];
// If setting did not come from a cookie, we should store one so the setting will remain
// in $_REQUEST even if $_SESSION gets cleared (for example, by a user logging out)
// and the GET/POST parameter is no longer present.
if (!isset($_COOKIE['homeLibrary'])) {
setcookie('homeLibrary', $_SESSION['homeLibrary']);
}
// If no home library was found in the session or the request, default to all available libraries:
} else {
$_SESSION['homeLibrary'] = 'All Libraries';
return $_SESSION['homeLibrary'];
}
}
Notes:
1.) It would be theoretically possible to add IP detection and mapping between the $_REQUEST case and the default case if we wanted to allow home library to be determined by IP range. However, since there is no current demand for such a feature, it was left out of the prototype code above.
2.) There was some discussion of using a user's home library (as defined by ILS) to determine their setting after they have logged in. However, it could be very confusing for users if logging in caused their search results to suddenly change (due to different location-specific filtering). If we want logging in to affect the home library setting, it would only really make sense as some kind of "opt-in" setting, and that seems of marginal value at best. We're omitting the whole possibility for now.