; ; VuFind Configuration ; ; This section controls global system behavior and can usually be left unmodified. [System] ; Change to false to take the system offline and show an unavailability message; ; note that you can use the NoILS driver (in [Catalog] section below) to keep VuFind ; up during ILS maintenance. available = true ; Change to true to see messages about the behavior of the system as part of the ; output -- only for use when troubleshooting problems. See also the access.DebugMode ; setting in permissions.ini to turn on debug using a GET parameter in the request. debug = false ; This setting should be set to false after auto-configuration is complete autoConfigure = true ; This setting specifies a health check file location. If a health check file exists, ; the getServerStatus AJAX call will return an error regardless of actual status ; allowing the server to be disabled from a load-balancer. ;healthCheckFile = /tmp/disable_vufind ; This section will need to be customized for your installation [Site] ; Base URL is normally auto-detected, but this setting is used when autodetection is ; not possible (i.e. during sitemap generation at the command line). url = http://library.myuniversity.edu/vufind ; Set to true if VuFind is behind a reverse proxy (typically Apache with mod_proxy), ; make sure your reverse proxy sets the necessary headers. ;reverse_proxy = true email = support@myuniversity.edu ; The title of your site, used in some messages and (by default) page tags. ; Including site title in page titles is recommended to improve browser tab ; navigation for users with screen readers. However, if you wish to remove this from ; titles or change the order/layout, you can customize the title_wrapper translation ; in your language files to remove or relocate the %%siteTitle%% token. title = "Library Catalog" ; The separator used between page name and site name in the <title> tag of pages. titleSeparator = "::" ; This is the default theme for non-mobile devices (or all devices if mobile_theme ; is disabled below). Available standard themes: ; bootstrap3 = HTML5 theme using Bootstrap 3 + jQuery libraries, with minimal styling ; bootprint3 = bootstrap3 theme with more attractive default styling applied ; (named after the earlier, now-deprecated blueprint theme) ; sandal = bootstrap3 theme with a "flat" styling applied (a newer look ; than bootprint3). ; bootstrap5 = HTML5 theme using Bootstrap 5 with minimal styling (beta). ; sandal5 = Like sandal, but based on bootstrap5 (beta). theme = sandal ; Uncomment the following line to use a different default theme for mobile devices. ; You may not wish to use this setting if you are using one of the Bootstrap-based ; standard themes since they support responsive design. ;mobile_theme = mobile ; Automatic asset minification and concatenation setting. When active, HeadScript ; and HeadLink will concatenate and minify all viable files to reduce requests and ; load times. This setting is off by default. ; ; This configuration takes the form of a semi-colon separated list of ; environment:configuration pairs where "environment" is a possible APPLICATION_ENV ; value (e.g. 'production' or 'development') or '*'/no prefix for all contexts. ; Possible values for 'configuration' within each environment are 'js', 'css', ; 'off'/false, 'on'/true/'*'. This allows global enabling/disabling of the pipeline ; or separate configurations for different types of resources. Multiple configuration ; values may be comma-separated -- e.g. 'js,css'. ; ; Example: "development:off; production:js,css" ;asset_pipeline = "production:js" ; File size limit for inlining of css @import resources in kilobytes when the asset ; pipeline is enabled (see above) for css files. Set to 0 to disable inlining. Note ; that you will need to delete any css files from local/cache/public directory for ; changes to this setting to take effect. ; ; N.B. The default here is 0 for compatibility with the content security policy. ; A suggested non-zero value is 5, which improves performance by avoiding http ; requests for small images, but any non-zero value requires that data: URIs are ; added as allowed for images in contentsecuritypolicy.ini e.g. with the following ; line: ; img-src[] = "data:" asset_pipeline_max_css_import_size = 0 ; This is a comma-separated list of themes that may be accessed via the ?ui GET ; parameter. Each entry has two parts: the value used on the URL followed by the ; actual theme name. For example, http://library.myuniversity.edu/vufind?ui=theme1 ; would load the myTheme1 theme with the setting shown below. Note that the values ; of "standard" and "mobile" are reserved for the default and mobile themes defined ; above. ;alternate_themes = theme1:myTheme1,theme2:myTheme2 ; This is a comma-separated list of theme options that will be displayed to the user ; as a drop-down. Each entry has two parts: a value for the "ui" GET parameter and ; an on-screen description. "standard" refers to the "theme" setting above, "mobile" ; refers to the "mobile_theme" setting, and all other values must be defined in ; alternate_themes above. When commented out, no drop-down theme list will display. ;selectable_themes = "standard:Standard Theme,mobile:Mobile Theme" ; Use the browser language setting to set the VuFind language. browserDetectLanguage = true language = en ; default -- more options available in [Languages] below. locale = en_US ; Comma-separated list of fallback languages to check when a translation is missing ; from the active language. Default fallback languages are the default language above ; and "en". Note that for changes to take effect, the language cache directory may ; need to be cleared. ;fallback_languages = "en-gb,de" ; Set this to specify a default ISO 4217 currency code (used on the fines screen). ; If omitted, the default currency for the locale above will be used. ;defaultCurrency = USD ; Find valid timezone values here: ; http://www.php.net/manual/en/timezones.php timezone = "America/New_York" ; A string used to format user interface date strings using the PHP date() function ; default is m-d-Y (MM-DD-YYYY 01-01-2010) displayDateFormat = "m-d-Y" ; A string used to format user interface time strings using the PHP date() function ; default is H:i (HH:MM 23:01) displayTimeFormat = "H:i" ; The base VuFind URL will load this controller unless the user is logged in: defaultModule = Search ; When defaultModule is used, this action will be triggered (default = Home) ;defaultAction = Home ; The base VuFind URL will load this controller when the user is logged in: defaultLoggedInModule = MyResearch ; When defaultLoggedInModule is used, this action will be triggered (default = Home) ;defaultLoggedInAction = Home ; The search backend that VuFind will use in search boxes when nothing else is ; specified (e.g. on user account pages, search history, etc.). Default = Solr ;defaultSearchBackend = Solr ; The route VuFind will send users to following a log out operation. Set to false ; or omit to attempt to retain the user's current context after log out. ;logOutRoute = home ; Default tab to display when a record is viewed (see also RecordTabs.ini): defaultRecordTab = Holdings ; Hide the holdings tab if no holdings are available from the ILS; note that this ; feature requires your ILS driver to support the hasHoldings() method. hideHoldingsTabWhenEmpty = false ; Whether to load the default tab through AJAX (which brings some performance ; gain but breaks compatibility with non-Javascript-enabled browsers; off by default) ;loadInitialTabWithAjax = true ; The holdingsTemplate to use to display the ILS holdings (defaults to standard). ; See the templates/RecordTab/holdingsils subdirectory of your theme for options. ;holdingsTemplate = extended ; This page will show by default when a user accesses the MyResearch module: defaultAccountPage = Favorites ; Allow access to the Admin module? (See the access.AdminModule setting in ; permissions.ini for more granular ways to restrict Admin access). admin_enabled = false ; Show sidebar on the left side instead of right sidebarOnLeft = false ; Invert the sidebarOnLeft setting for right-to-left languages? mirrorSidebarInRTL = true ; Put search result thumbnails on the left (true) or right (false) resultThumbnailsOnLeft = true ; Put favorites list thumbnails on the left (true) or right (false) listThumbnailsOnLeft = true ; Put hold/checkedout/ILL/etc. item thumbnails on the left (true) or right (false) accountThumbnailsOnLeft = true ; Show thumbnail on opposite side in right-to-left languages? mirrorThumbnailsRTL = true ; Handle menu as an offcanvas slider at mobile sizes (in bootstrap3-based themes) offcanvas = false ; Show (true) / Hide (false) Book Bag - Default is Hide. showBookBag = false ; Set the maximum amount of items allowed in the Book Bag - Default is 100 bookBagMaxSize = 100 ; Show individual add/remove bookbag buttons in search results? (Supersedes cart ; checkboxes and bulk action buttons unless showBulkOptions is true). bookbagTogglesInSearch = true ; Display bulk items (export, save, etc.) and checkboxes on search result screens? showBulkOptions = false ; Should users be allowed to save searches in their accounts? allowSavedSearches = true ; Some VuFind features can be made compatible with non-Javascript browsers at ; a performance cost. By default, this compatibility is disabled, but it can ; be turned on here. Note that even with this setting turned on, some features ; still require Javascript; this simply improves compatibility for certain ; features (such as display of hierarchies). nonJavascriptSupportEnabled = false ; Generator value to display in an HTML header <meta> tag: generator = "VuFind 10.0" ; This section allows you to configure the mechanism used for storing user ; sessions. Available types: File, Memcache, Database, Redis. ; Some of the settings below only apply to specific session handlers; ; such settings are named with an obvious prefix. Non-prefixed settings ; are global to all handlers. [Session] type = File lifetime = 3600 ; Session lasts for 1 hour ; Should stored session data be encrypted? secure = false ; Keep-alive interval in seconds. When set to a positive value, the session is kept ; alive with a JavaScript call as long as a VuFind page is open in the browser. ; Default is 0 (disabled). When keep-alive is enabled, session lifetime above can be ; reduced to e.g. 600. ;keepAlive = 60 ;file_save_path = /tmp/vufind_sessions ;memcache_host = localhost ;memcache_port = 11211 ;memcache_connection_timeout = 1 ; The name of the PHP client library to use for connecting to Memcache (can be either ; "Memcache" or "Memcached"); default is "Memcache". Note that if you change from one ; library to another, you should flush your cache to avoid problems caused by ; inconsistencies in data encoding between the two libraries. ;memcache_client = Memcache ; ; Settings related to Redis-based sessions; default values are listed below ;redis_host = localhost ;redis_port = 6379 ;redis_connection_timeout = 0.5 ;redis_db = 0 ;redis_user = username (optional) ;redis_auth = some_secret_password ;redis_version = 3 ;redis_standalone = true ; This section controls how VuFind creates cookies (to store session IDs, bookbag ; contents, theme/language settings, etc.) [Cookies] ; In case there are multiple VuFind instances on the same server and they should not ; share cookies/sessions, this option can be enabled to limit the session to the ; current path. Default is false, which will place cookies at the root directory. ;limit_by_path = true ; If VuFind is only accessed via HTTPS, this setting can be enabled to disallow ; the browser from ever sending cookies over an unencrypted connection (i.e. ; before being redirected to HTTPS). Default is false. ;only_secure = true ; Whether to set cookies set by the server (apart from cart function) "HTTP only" so ; that they cannot be accessed by scripts. Default is true. ;http_only = false ; Set the domain used for cookies (sometimes useful for sharing the cookies across ; subdomains); by default, cookies will be restricted to the current hostname. ;domain = ".example.edu" ; This sets the session cookie's name. Comment this out to use the default ; PHP_SESS_ID value. If running multiple versions of VuFind (or multiple PHP ; applications) on the same host, it is strongly recommended to give each a ; different session_name setting to avoid data contamination. session_name = VUFIND_SESSION ; Set the SameSite attribute used for cookies. Default is Lax. See e.g. ; https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite for ; more information ;sameSite = "Lax" ; Whether to ask for cookie consent (required e.g. for GDPR compliance). Default is ; false. See also CookieConsent.yaml for cookie categories and other settings. ;consent = false ; Categories to enable for cookie consent. This is a comma-separated list of ; categories defined in CookieConsent.yaml. Default is "essential". ;consentCategories = "essential,matomo" ; Cookie consent revision. If you change the categories or do any other major changes ; in CookieConsent.yaml, you will need to increase revision as well so that users get ; prompted for consent. ;consentRevision = 0 ; Please set the ILS that VuFind will interact with. ; ; Available drivers: ; - Aleph ; - Alma ; - Amicus ; - ComposedDriver (combining multiple drivers) ; - DAIA (using either XML or JSON API) ; - Demo (fake ILS driver returning complex responses) ; - Evergreen ; - Folio ; - GeniePlus ; - Horizon (basic database access only) ; - HorizonXMLAPI (more features via API) ; - Innovative (for INNOPAC; see also SierraRest) ; - Koha (basic database access only) ; - KohaILSDI (more features via ILS-DI API) ; - KohaRest (the most feature-complete Koha driver using Koha's REST API. Requires ; at least Koha 20.05 and the koha-plugin-rest-di extension found at: ; https://github.com/natlibfi/koha-plugin-rest-di) ; - MultiBackend (to chain together multiple drivers in a consortial setting) ; - NewGenLib ; - NoILS (for users with no ILS, or to disable ILS features during maintenance), ; - PAIA ; - Polaris ; - Sample (fake ILS driver returning bare-minimum data) ; - SierraRest (accesses Sierra via REST API) ; - Symphony (uses native SirsiDynix APIs) ; - Unicorn (also applies to Symphony; requires installation of connector found at: ; http://code.google.com/p/vufind-unicorn/) ; - Virtua ; - Voyager (database access only; for Voyager 6+) ; - VoyagerRestful (for Voyager 7+ w/ RESTful web services) ; - XCNCIP2 (for XC NCIP Tookit v2.x) ; ; If you haven't set up your ILS yet, two fake drivers are available for testing ; purposes. "Sample" is fast but does very little; "Demo" simulates more ; functionality of a real ILS but may slow down your system by performing extra ; searches. If you don't plan to use an ILS, the NoILS driver is your best option. ; ; Note: Enabling most of the features in this section will only work if you use an ; ILS driver that supports them; not all drivers support holds/renewals. [Catalog] driver = Sample ; If true, the user will be presented with a login form for entering ILS credentials ; when attempting to access ILS functionality without working cached credentials. ; If false, the user will instead see an error screen. You should use the false value ; here when the user's ILS credentials are automatically loaded into the database via ; [Authentication] and related configuration, and you never expect a user to manually ; provide these details. ; ; Note: if you disable user login, this can also have implications for the ; library_cards setting (see below). allowUserLogin = true ; loadNoILSOnFailure - Whether or not to load the NoILS driver if the main driver fails loadNoILSOnFailure = false ; healthCheckId - When performing ILS health checks (see the IlsStatusMonitor block ; described in searches.ini for more details), VuFind will look up the status of a ; bibliographic record and ensure the response is well-formed. By default, it uses ; a bibliographic record ID of "1". If your ILS does not accept "1" as a valid ; identifier, you can specify a different health check record ID here. ;healthCheckId = 12345 ; List of search backends that contain records from your ILS (defaults to Solr ; unless set otherwise). You can set ilsBackends = false to disable ILS status ; loading entirely. ;ilsBackends[] = Solr ; This setting determines how and when hold / recall links are displayed. ; Legal values: ; - all (Show links for all items - Place Hold for Available Items and Place Recall ; for unavailable items) ; - availability (Only show recall links if ALL items on bib are currently ; unavailable) ; - disabled (Never show hold/recall links) ; - driver (Use ILS driver to determine which items may be held/recalled; best option ; if available, but not supported by all drivers) ; - holds (Only show links for available items) ; - recalls (Only show links for unavailable items) ; default is "all" holds_mode = "all" ; Set this to true if you want to allow your ILS driver to override your holds_mode ; setting on a record-by-record basis; this may be useful for local customizations, ; but in most cases you should leave this setting unchanged. Overrides are ignored ; for mode settings of "driver" or "disabled." allow_holds_override = false ; Determines if holds can be cancelled or not. Options are true or false. ; default is false cancel_holds_enabled = false ; Determines if storage retrieval requests can be cancelled or not. ; Options are true or false. ; default is false cancel_storage_retrieval_requests_enabled = false ; Determines if ILL requests can be cancelled or not. ; Options are true or false. ; default is false cancel_ill_requests_enabled = false ; Determines if item can be renewed or not. Options are true or false. ; default is false renewals_enabled = false ; Determines if title level holds are displayed or not. ; Legal values: ; - disabled (Never show title Holds - Default) ; - always (Always show title Holds) ; - availability (Only show title holds if ALL items on bib are currently ; unavailable) ; - driver (Use ILS driver to determine which items may be held/recalled; best option ; if available, but not supported by all drivers) title_level_holds_mode = "disabled" ; Determines how holdings are grouped in the record display, using fields from ; the item information provided by the ILS driver. ; ; Most commonly-used values: ; - holdings_id,location (Use holdings record id if available, location name as ; secondary - Default) ; - location (Use location name) ; ; See https://vufind.org/wiki/development:plugins:ils_drivers#getholding for ; more options (though not every ILS driver supports every possible value). ; ; Note that there may also be driver-specific values outside of the specification, ; such as: ; - item_agency_id (XCNCIP2 driver's Agency ID, which may be useful in consortial ; environments) ; ; You may use multiple group keys (delimited by comma), e.g., ; - item_agency_id,location ;holdings_grouping = holdings_id,location ; Text fields such as holdings_notes gathered from items to be displayed in each ; holdings group in the display order. ; The default list is 'holdings_notes', 'summary', 'supplements' and 'indexes'. The ; deprecated field 'notes' is used as an alias for 'holdings_notes'. ; Note that displayed information depends on what the ILS driver returns. ;holdings_text_fields[] = 'holdings_notes' ;holdings_text_fields[] = 'summary' ; Whether support for multiple library cards is enabled. Default is false. ; ; Note: to create library cards through a manual form, users will require ; the allowUserLogin setting (see above) to be enabled as well. ;library_cards = true ; Whether support for connecting multiple library cards via authentication is ; enabled. This is currently only supported for Shibboleth. Default is false. ; See https://vufind.org/wiki/configuration:shibboleth:library_cards for details. ;auth_based_library_cards = true ; The number of checked out items to display per page; 0 for no limit (may cause ; memory problems for users with huge numbers of items). Default = 50. ;checked_out_page_size = 50 ; The number of historic loans to display per page; 0 for no limit (may cause ; memory problems for users with a large number of historic loans). Default = 50 ;historic_loan_page_size = 50 ; Whether to display the item barcode for each loan. Default is false. ;display_checked_out_item_barcode = true ; Whether to display items without barcodes in the Holdings tab. Prior to VuFind ; 9.0, hiding items without barcodes was VuFind's default behavior. The current ; default value is true -- to always display ALL items. ; If you need to apply more complex filtering rules to Holdings display, you ; can extend/override the VuFind\View\Helper\Root\Holdings::holdingIsVisible method. ;display_items_without_barcodes = true ; This section controls features related to user accounts [Account] ; Allow the user to set a home library through the Profile screen, which will ; override ILS-provided default pickup locations throughout the system. set_home_library = true ; Allow the user to "subscribe" to search history entries in order to receive ; email notifications of new search results. schedule_searches = false ; Should we always send a scheduled search email the first time we run notices ; after a user has subscribed (true), or should we only send an email when there ; is actually something new (false, default) force_first_scheduled_email = false ; When schedule_searches is set to true, you can customize the schedule frequencies ; here -- just use the number of days between notifications in the brackets. Labels ; will be run through the translator. ;scheduled_search_frequencies[0] = schedule_none ;scheduled_search_frequencies[1] = schedule_daily ;scheduled_search_frequencies[7] = schedule_weekly ; This section allows you to determine how the users will authenticate. ; You can use an LDAP directory, the local ILS (or multiple ILSes through ; the MultiILS option), the VuFind database (Database), a hard-coded list of ; access passwords (PasswordAccess), AlmaDatabase (combination ; of VuFind database and Alma account), Shibboleth, SIP2, CAS, Facebook, Email or ; some combination of these (via the MultiAuth or ChoiceAuth options). ; ; The Email method is special; it is intended to be used through ChoiceAuth in ; combination with Database authentication (or any other method that reliably stores ; the user's email address) to make it possible to log in by receiving an ; authentication link at the email address stored in VuFind's database. Email is ; also supported as the primary authentication mechanism for some ILS drivers (e.g. ; Alma). In these cases, ChoiceAuth is not needed, and ILS should be configured as ; the Authentication method; see the ILS driver's configuration for possible options. ; ; Also note that the Email method stores hashes in your database's auth_hash table. ; You should run the "php $VUFIND_HOME/public/index.php util expire_auth_hashes" ; utility periodically to clean out old data in this table. [Authentication] ;method = LDAP ;method = ILS method = Database ;method = AlmaDatabase ;method = Shibboleth ;method = SIP2 ;method = CAS ;method = MultiAuth ;method = ChoiceAuth ;method = MultiILS ;method = Facebook ;method = PasswordAccess ;method = Email ;method = SimulatedSSO ; FOR TESTING ONLY -- see SimulatedSSO.ini ; This setting only applies when method is set to ILS. It determines which ; field of the ILS driver's patronLogin() return array is used as the username ; in VuFind's user database. If commented out, it defaults to cat_username ; (the recommended setting in most situations). ;ILS_username_field = cat_username ; Whether or not to hide the Login Options; note that even when this is set to ; false, ILS driver settings may be used to conditionally hide the login. See ; hideLogin in the [Settings] section of NoILS.ini for an example. hideLogin = false ; When set to true, uses AJAX calls to annotate the account menu with ; notifications (overdue items, total fines, etc.) enableAjax = true ; When set to true, replicates the account menu as a drop-down next to the ; account link in the header. enableDropdown = false ; Setting this to false will turn off password hashing and store user passwords ; in plain text, which is NOT RECOMMENDED, but may be useful if you are in the ; process of migrating data from a very old VuFind release that predates password ; hashing. DO NOT CHANGE under other circumstances. Also note that this setting ; only applies when method = Database or AlmaDatabase above. hash_passwords = true ; Allow users to recover passwords via email (if supported by Auth method) ; You can set the subject of recovery emails in your ; language files under the term "recovery_email_subject" recover_password = false ; Time (seconds) before another recovery attempt can be made recover_interval = 60 ; Length of time before a recovery hash can no longer be used (expires) ; Default: Two weeks recover_hash_lifetime = 1209600 ; Allow users to set change their email address (if supported by Auth method). ; When turning this on, it is also strongly recommended to turn on verify_email ; below. change_email = false ; Allow users to set change their passwords (if supported by Auth method) change_password = true ; Force users to verify their email address before being able to log in ; (only if method=Database) or make changes to it (if change_email=true). ; If you wish to customize the email messages used by the system, see the ; translation strings starting with verify and change_notification, as well as ; the notify-email-change.phtml and verify-email.phtml Email templates. verify_email = false ; Set this to false if you would like to store catalog passwords in plain text encrypt_ils_password = false ; This is the key used to encrypt and decrypt catalog passwords. This must be ; filled in with a random string value when encrypt_ils_passwords is set to true. ; Note: aes requires a key exactly 32 characters long. ; 32 chars -> "--------------------------------" ils_encryption_key = false ; This is the algorithm used to encrypt and decrypt catalog passwords. ; A symmetrical encryption algorithm must be used. ; You can use openssl_get_cipher_methods() to see available options on your system. ; Common choices: blowfish (deprecated -- do not use), aes (recommended), cast, sm4 ; If you want to convert from one algorithm to another, run this from $VUFIND_HOME: ; php public/index.php util switch_db_hash new_algorithm new_key ils_encryption_algo = "aes" ; This setting may optionally be uncommented to restrict the email domain(s) from ; which users are allowed to register when using the Database or AlmaDatabase method. ;legal_domains[] = "myuniversity.edu" ;legal_domains[] = "mail.myuniversity.edu" ; Specify default minimum and maximum new username length (Auth method may override ; this). ;minimum_username_length = 3 ;maximum_username_length = 32 ; Specify default limit of accepted characters in the username. Allowed values ; are "numeric", "alphanumeric" or a regular expression. ; The following default requires the username to consist of printable characters ; allowed in email addresses (i.e. !#$%&'*+-/=?^_`{|}~) and letters and decimal ; numbers in any script (see ; https://www.php.net/manual/en/regexp.reference.unicode.php for more information): username_pattern = "([\\x21\\x23-\\x2B\\x2D-\\x2F\\x3D\\x3F\\x40\\x5E-\\x60\\x7B-\\x7E\\p{L}\\p{Nd}]+)" ; Specify default hint about what the username may contain when using a regexp ; pattern. May be text or a translation key. The "numeric" and "alphanumeric" ; patterns have translated default hints. username_hint = username_only_letters_numbers_and_basic_punctuation ; Specify default minimum and maximum password length (Auth method may override ; this). ;minimum_password_length = 4 ;maximum_password_length = 32 ; Specify default limit of accepted characters in the password. Allowed values ; are "numeric", "alphanumeric" or a regular expression ;password_pattern = "(?=.*\d)(?=.*[a-z])(?=.*[A-Z])" ; Specify default hint about what the password may contain when using a regexp ; pattern. May be text or a translation key. The "numeric" and "alphanumeric" ; patterns have translated default hints. ;password_hint = "Include both upper and lowercase letters and at least one number." ; Uncomment this line to switch on "privacy mode" in which no user information ; will be stored in the database. Note that this is incompatible with social ; features, password resets, and many other features. It is not recommended for ; use with "Database" or "AlmaDatabase" authentication, since the user will be ; forced to create a new account upon every login. ;privacy = true ; Allow a user to delete their account. Default is false. ;account_deletion = true ; Whether comments added by a user are deleted when they remove their account. ; Default is true. ;delete_comments_with_user = false ; Whether ratings added by a user are deleted when they remove their account. ; Default is true. ;delete_ratings_with_user = false ; "Remember me" functionality for listed login methods. If the user chooses to save ; the login, a login token cookie and a database entry will be created. ; The implementation is based on Improved Persistent Login Cookie Best Practice, see ; https://gist.github.com/oleg-andreyev/9dcef18ca3687e12a071648c1abff782 ; User's browser information is stored with the login token. This requires an up to ; date browscap cache. The browscap cache can be updated in the Maintenance section ; of the admin UI or by using the util/browscap command line utility. If you use the ; command line utility, you will need to ensure that the user of the web server has ; read and write access to the cache directory and its contents as well. ; If you use cookie consent, ensure that the loginToken cookie is included (look for ; {{vufind_login_token_cookie_name}} in CookieConsent.yaml). ;persistent_login = "database,multiils" ; Persistent login token lifetime in days ;persistent_login_lifetime = 60 ; Whether to send email warnings about suspicious logins. Default is true. ;send_persistent_login_warnings = true ; Whether to use a more lenient token rotation to avoid cookie issues with Safari, ; which sometimes fails to maintain cookies across sessions. Default is true. ;lenient_token_rotation = true ; Subject for the email sent after a suspicious login has been detected. ; Default email subject will be the translation for ; "persistent_login_warning_email_subject" and any custom value used here ; will also be run through the translator. ;persistent_login_warning_email_subject = "%%title%%: Invalid login attempt detected" ; See the comments in library/VF/Auth/MultiAuth.php for full details ; on using multiple authentication methods. Note that MultiAuth assumes login ; with username and password, so some methods (i.e. Shibboleth) may not be ; compatible. ;[MultiAuth] ;method_order = ILS,LDAP ;filters = "username:trim,password:trim" ; Present two auth options on the login screen. Each choice given must also be ; configured in its relevant section. (The code should allow for more than 2 ; choices, but styling would need to be expanded / modified) ; ; WARNING! This module does not account for the possibility that the auth ; choices you present may return different usernames. You would want a user to ; be able to log in via any method and see the same account. To make sure that ; is the case, you should ensure that the usernames given by the authentication ; methods themselves are the same for any given user. ;[ChoiceAuth] ;choice_order = Shibboleth,Database ; This section defines the location/behavior of the Solr index and requires no ; changes for most installations [Index] ; url can also be an array of servers. If so, VuFind will try the servers one by one ; until one can be reached. This is only useful for advanced fault-tolerant Solr ; installations. url = http://localhost:8983/solr ; Default bibliographic record index name (core or collection) default_core = biblio ; Default authority record index name (core or collection) default_authority_core = authority ; This setting needs to match the <maxBooleanClauses> setting in your solrconfig.xml ; file; when VuFind has to look up large numbers of records using ID values, it may ; have to restrict the size of its result set based on this limitation. maxBooleanClauses = 1024 ; This is the timeout in seconds when communicating with the Solr server. timeout = 30 ; This is the Dismax handler to use if nothing is specified in searchspecs.yaml. ; You can choose dismax for standard Dismax (the default) or edismax for Extended ; Dismax, or you can configure your own custom handler in solrconfig.xml. default_dismax_handler = dismax ; This is the number of records to retrieve in a batch e.g. when building a record ; hierarchy. A higher number results in fewer round-trips but may increase Solr's ; memory usage. Default is 1000. Set to false to disable use of cursors in retrieval ; (which is only necessary if your local custom code leverages Solr features which ; are incompatible with cursorMark usage). ;cursor_batch_size = 1000 ; This limits the number of records to retrieve in a batch e.g. when retrieving ; records for a list. Default is 100 which should be a good number to avoid ; memory problems. ;record_batch_size = 100 ; Enable/Disable searching reserves using the "reserves" Solr index. When enabling ; this feature, you need to run the util/index_reserves.php script to populate the ; new index. [Reserves] search_enabled = false ; This section requires no changes for most installations; if your SMTP server ; requires authentication, you can fill in a username and password below. [Mail] host = localhost port = 25 ;username = user ;password = pass ; The server name to report to the upstream mail server when sending mail. ;name = vufind.myuniversity.edu ; If a login is required you can define which protocol to use for securing the ; connection. If no explicit protocol ('tls' or 'ssl') is configured, a protocol ; based on the configured port is chosen (587 -> tls, 487 -> ssl). ;secure = tls ; This setting enforces a limit (in seconds) on the lifetime of an SMTP ; connection, which can be useful when sending batches of emails, since it can ; help avoid errors caused by server timeouts. Comment out the setting to disable ; the limit. connection_time_limit = 60 ; Uncomment this setting to disable outbound mail but simulate success; this ; is useful for interface testing but should never be used in production! ;testOnly = true ; Set to a file path writable by VuFind to log email messages into that file; ; primarily intended for testing/debugging purposes. ;message_log = /tmp/emails.log ; If set to false, users can send anonymous emails; otherwise, they must log in first require_login = true ; Should we put the logged-in user's address in the "from" field by default? user_email_in_from = false ; Should we put the logged-in user's address in the "to" field by default? user_email_in_to = false ; Should the user be allowed to edit email subject lines? user_editable_subjects = false ; How many recipients is the user allowed to specify? (use 0 for no limit) maximum_recipients = 1 ; Populate the "from" field with this value if user_email_in_from is false and/or no ; user is logged in: ;default_from = "no-reply@myuniversity.edu" ; Should we hide the "from" field in email forms? If no from field is visible, emails ; will be sent based on user_email_in_from and default_from above, with the email ; setting from the [Site] section used as a last resort. disable_from = false ; From field override. Setting this allows keeping the "from" field in email forms ; but will only use it as a reply-to address. The address defined here is used as the ; actual "from" address. ; Note: If a feature explicitly sets a different reply-to address (for example, ; Feedback forms), the original from address will NOT override that reply-to value. ;override_from = "no-reply@myuniversity.edu" ; Being a special case of mail message, sending record results via SMS ("Text this") ; may be "enabled" or "disabled" ("enabled" by default). ; Should you choose to leave it enabled, see also sms.ini for further ; configuration options. sms = enabled ; Set this value to "database" to shorten links sent via email/SMS and ; store its path in the database (default "none"). url_shortener = none ; Which method to use for generating the short link key. Options: ; - base62: Base62-encode the database row ID (insecure, but makes very short URLs) ; - md5: Create a salted MD5 hash of the URL (DEFAULT: more private, but also longer) ; ...or any hash algorithm supported by PHP's hash() function. url_shortener_key_type = md5 ; Which redirect mechanism to use when shortlinks are resolved. ; threshold:1000 (default) : If the URL is shorter than the given size, HTTP is used, else HTML. ; html : HTML meta redirect after 3 seconds with infobox. ; http : Use HTTP location header for redirects. ; May cause problems if the HTTP header is longer than 8192 bytes ; due to long URL's. ;url_shortener_redirect_method = threshold:1000 ; This section needs to be changed to match your database connection information [Database] ; Connection string format is [platform]://[username]:[password]@[host]:[port]/[db] ; where: ; [platform] = database platform (mysql, oci8 or pgsql) ; [username] = username for connection ; [password] = password for connection (optional) ; [host] = host of database server ; [port] = port of database server (optional) ; [db] = database name database = mysql://root@localhost/vufind ; Should SSL be enabled on connections? (Currently only supported for MySQL). ; IMPORTANT: when using Linux, if your database connection string above uses ; "localhost", MySQL will automatically use a Unix socket connection. To force ; an SSL connection, change "localhost" to the IP address (e.g. "127.0.0.1"). use_ssl = false ; When use_ssl above is true, the SSL certificate used by MySQL will not be ; verified by default. This is usually a self-signed certificate that cannot be ; easily verified. Skipping verification will not prevent traffic from being ; securely encrypted, it simply means that you trust the validity of the ; certificate being used by your server. If you do switch this to true in order ; to force certificate verification, additional configuration may be needed to ; successfully connect and ensure actual certificate verification occurs. ; For PHP, you should fill in the security-related settings in extra_options ; below; for Java (used by the MARC import tool), see the "Connecting Securely ; Using SSL" section of the Connector/J manual for details. verify_server_certificate = false ; This setting can be used to send additional options to the Laminas DB adapter. ; This is useful for advanced features unsupported by settings above, such as ; detailed SSL security configuration. ;extra_options[client_key] = "/path/to/key" ;extra_options[client_cert] = "/path/to/cert" ;extra_options[ca_cert] = "/path/to/ca_cert" ;extra_options[ca_path] = "/path/to/ca" ; If your database (e.g. PostgreSQL) uses a schema, you can set it here: ;schema = schema_name ; The character set of the database -- utf8 and utf8mb4 are currently the only ; supported values, and utf8mb4 is the default if no value is set here. If you have ; a legacy VuFind 1.x database encoded in latin1, please upgrade it to utf8 using ; VuFind 7.x or earlier. ;charset = utf8 ; Reduce access to a set of single passwords ; This is only used when Authentication method is PasswordAccess. See above. ; Recommended to be used in conjunction with very restricted permissions.ini settings ; and with most social settings disabled ;[PasswordAccess] ; access_user is a map of users to passwords ; entering a correct password will login as that user ;access_user[user] = password ;access_user[admin] = superpassword ; LDAP is optional. This section only needs to exist if the ; Authentication Method is set to LDAP. When LDAP is active, ; host, port, basedn and username are required. ;[LDAP] ; Prefix the host with ldaps:// to use LDAPS; omit the prefix for standard ; LDAP with TLS. ;host = ldap.myuniversity.edu ;port = 389 ; LDAPS usually uses port 636 instead ; By default, when you use regular LDAP (not LDAPS), VuFind uses TLS security. ; You can set disable_tls to true to bypass TLS if your server does not support ; it. Note that this setting is ignored if you use ldaps:// in the host setting. ;disable_tls = false ;basedn = "o=myuniversity.edu" ;username = uid ; separator string for mapping multi-valued ldap-fields to a user attribute ; if no separator is given, only the first value is mapped to the given attribute ;separator = ';' ; Optional settings to map fields in your LDAP schema to fields in the user table ; in VuFind's database -- the more you fill in, the more data will be imported ; from LDAP into VuFind: ;firstname = givenname ;lastname = sn ;email = mail ;cat_username = ;cat_password = ;college = studentcollege ;major = studentmajor ; If you need to bind to LDAP with a particular account before ; it can be searched, you can enter the necessary credentials ; here. If this extra security measure is not needed, leave ; these settings commented out. ;bind_username = "uid=username o=myuniversity.edu" ;bind_password = password ; SIP2 is optional. This section only needs to exist if the ; Authentication Method is set to SIP2. ;[SIP2] ;host = ils.myuniversity.edu ;port = 6002 ; Shibboleth is optional. This section only needs to exist if the ; Authentication Method is set to Shibboleth. Be sure to set up authorization ; logic in the permissions.ini file to filter users by Shibboleth attributes. ;[Shibboleth] ; Server param with the identity provider entityID if a Shibboleth session exists. ; If omitted, Shib-Identity-Provider is used. ;idpserverparam = Shib-Identity-Provider ; Optional: Session ID parameter for SAML2 single logout support. If omitted, single ; logout support is disabled. Note that if SLO support is enabled, Shibboleth session ; ID's are tracked in external_session table which may need to be cleaned up with the ; util/expire_external_sessions command line utility. See ; https://vufind.org/wiki/configuration:shibboleth for more information on how ; to configure the single logout support. ;session_id = Shib-Session-ID ; Check for expired session - user is automatically logged out when Shibboleth ; session is not present (default = true if unset); note that expiration check ; also requires session_id to be set above. ;checkExpiredSession = false ; Optional: you may set attribute names and values to be used as a filter; ; users will only be logged into VuFind if they match these filters. ;userattribute_1 = entitlement ;userattribute_value_1 = urn:mace:dir:entitlement:common-lib-terms ;userattribute_2 = unscoped-affiliation ;userattribute_value_2 = member ; Set to true when shibboleth attributes must be read from headers instead of ; environment variables - for example if you use proxy server and shibboleth is ; running on proxy side. In that case you should protect against header spoofing: ; see https://wiki.shibboleth.net/confluence/display/SP3/SpoofChecking for details ;use_headers = false ; Required: the attribute Shibboleth uses to uniquely identify users. ;username = persistent-id ; Required: Shibboleth login URL. ;login = https://shib.myuniversity.edu/Shibboleth.sso/Login ; Optional: Shibboleth logout URL. ;logout = https://shib.myuniversity.edu/Shibboleth.sso/Logout ; Optional: URL to forward to after Shibboleth login (if omitted, ; defaultLoggedInModule from [Site] section will be used). ;target = https://shib.myuniversity.edu/vufind/MyResearch/Home ; Optional: provider_id (entityId) parameter to pass along to Shibboleth login. ;provider_id = https://idp.example.edu/shibboleth-idp ; Some or all of the following entries may be uncommented to map Shibboleth ; attributes to user database columns: ;cat_username = HTTP_ALEPH_ID ;cat_password = HTTP_CAT_PASSWORD ;email = HTTP_MAIL ;firstname = HTTP_FIRST_NAME ;lastname = HTTP_LAST_NAME ;college = HTTP_COLLEGE ;major = HTTP_MAJOR ;home_library = HTTP_HOME_LIBRARY ; Enable if you want to override mapping or required attributes for specific IdP ; in Shibboleth.ini ;allow_configuration_override = true ; CAS is optional. This section only needs to exist if the ; Authentication Method is set to CAS. ;[CAS] ; Optional: the attribute CAS uses to uniquely identify users. (Omit to use ; native CAS username instead of an attribute-based value). ;username = uid ; Required: CAS Hostname. ;server = cas.myuniversity.edu ; Required: CAS port. ;port = 443 ; Required: CAS context. ;context = /cas ; Required: CAS Certificate Path. (Set to false to bypass authentication; ; BYPASSING AUTHENTICATION IS *NOT* RECOMMENDED IN PRODUCTION). ;CACert = /etc/pki/cert/cert.crt ; Required: CAS login URL. ;login = https://cas.myuniversity.edu/cas/login ; Required: CAS logout URL. ;logout = https://cas.myuniversity.edu/cas/logout ; Optional : CAS client base URL. If omitted, [Site][url] will be used ;service_base_url[] = "https://vufind.myuniversity.edu" ;service_base_url[] = "http://vufind.myuniversity.edu" ; Optional: CAS logging, forwarded to [Logging] ;debug = false ; Optional: URL to forward to after CAS login (if omitted, ; defaultLoggedInModule from [Site] section will be used). ;target = http://lib.myuniversity.edu/vufind/MyResearch/Home ; Optional: protocol to follow (legal values include CAS_VERSION_1_0, ; CAS_VERSION_2_0, CAS_VERSION_3_0 and SAML_VERSION_1_1; default is ; SAML_VERSION_1_1) ;protocol = SAML_VERSION_1_1 ; Some or all of the following entries may be uncommented to map CAS ; attributes to user database columns: ;cat_username = acctSyncUserID ;cat_password = catPassword ;email = mail ;firstname = givenName ;lastname = sn ;college = college ;major = major1 ;home_library = library ; Facebook may be used for authentication; fill in this section in addition to ; turning it on in [Authentication] above to use it. You must register your ; VuFind instance as an application at http://developers.facebook.com to obtain ; credentials. ;[Facebook] ;appId = "your app ID" ;secret = "your app secret" ; External Content is Optional. ; To use multiple, separate with a comma. Priority will be given by the order listed ; Account id is separated with a colon, if no id is used then no colon is necessary ; ; IMPORTANT: Review content providers' terms of service before turning them on. ; Terms may change, and not all content sources are appropriate for all ; applications. The existence of functionality in VuFind does not imply ; suitability for any particular situation. [Content] ; You can define the cover size used by each template: false (to disable covers) ; or size (small, medium, or large). A colon separated list may be used to try ; multiple sizes in a particular order. All legal template values and default ; values are reflected in the examples below. Uncomment the appropriate lines to ; make changes. ;coversize[checkedout] = small ;coversize[collection-info] = medium ;coversize[core] = medium ;coversize[holds] = small ;coversize[illrequests] = small ;coversize[list-entry] = small ;coversize[RandomRecommend] = "small:medium" ;coversize[result-grid] = large ;coversize[result-list] = small ;coversize[similar-items] = large ;coversize[storageretrievalrequests] = small ; Alternatively, if you wish to disable covers completely, you may set the ; coversize setting to false: ;coversize = false ; You can select Syndetics, LibraryThing, Summon, Booksite, OpenLibrary, ; Contentcafe, Buchhandel.de, Google, BrowZine, ObalkyKnih, Orb, Koha and/or ; LocalFile. Service-specific notes: ; - BrowZine requires you to have BrowZine.ini configured appropriately. ; - Google Books caching behavior can be customized in the [Cache_GoogleCover] ; section. ; - Koha requires the koha_cover_url setting below. Additionally, for ; Koha to be a source of covers, its LocalCoverImages and ; OPACLocalCoverImages system preferences must be turned on and local cover ; images uploaded to the Koha system. Koha emits only two sizes of cover ; images, so small and medium are treated the same in VuFind. ; - LocalFile:PathToFile supports a combination of directory path information ; and tokens for filename and image type. If you have multiple directories ; in which you have stored coverimages, you can specify multiple paths to search ; by specifying multiple LocalFile:PathToFile in the coverage images list below. ; Allowed tokens: ; %anyimage% - Match known image file extensions (gif, jpg, etc.) ; %isbn10% - 10-digit ISBN ; %isbn13% - 13-digit ISBN ; %issn% - ISSN ; %oclc% - OCLC Number ; %recordid% - Bibliographic record ID ; %size% - Size (small/medium/large) ; %source% - Search backend of record (e.g. Summon, Solr, etc.) ; %upc% - UPC Number ; %vufind-home% - The VUFIND_HOME environment variable ; %vufind-local-dir% - The VUFIND_LOCAL_DIR environment variable ; Example: LocalFile:%vufind-local-dir%/path/to/file/%size%/issn/%issn%.%anyimage% ; - ObalkyKnih could be configured in obalkyknih.ini file. You should also ; add API URLs to img-src directive in contentsecuritypolicy.ini. As the ; conditions of use of ObalkyKnih require backlinks to provider, you need to ; also turn on ajaxcovers below - VuFind is able to show backlinks only ; through AJAX at this time. ; - Orb requires that you complete the [Orb] section. Cache settings can be ; adjusted in the [Cache_OrbCover] section. ; - Summon service takes a Serials Solutions client key, NOT Summon API key! ;coverimages = Syndetics:MySyndeticsId,Booksite,LibraryThing:MyLibraryThingId,Google,ObalkyKnih,OpenLibrary,Summon:MySerialsSolutionsClientKey,Contentcafe:MyContentCafeID,BrowZine,LocalFile:PathToFile,Koha,Orb ; When using the Koha cover provider, you should fill in this setting: ;koha_cover_url = "https://localhost/cgi-bin/koha/opac-image.pl" ; This setting controls which services will have images cached on your local disk. ; Set to true to cache all applicable services. Set to false to disable caching. Set ; to a comma-separated list of services (e.g. "Syndetics,OpenLibrary") to cache only ; a subset of selected services. Default = true. Note that due to terms of service, ; some services will never have images cached even if caching is enabled. coverimagesCache = true ; This setting controls which proxied image URLs will be cached to local disk (when ; using the ?proxy= parameter of the standard /Cover/Show routes). The setting may ; contain one or more regular expressions matching hostnames. The example ; below will match any images from the mylibrary.edu domain; you can also use ; "/.*/" to turn on caching for all proxied images. ;coverproxyCache[] = "/.*\.?mylibrary\.edu/" ; BrowZine DOI icons: coverproxyCache[] = "/assets\.thirdiron\.com/" ; This setting controls which hosts are allowed to provide cover images through ; the built-in cover proxy. Images from hostnames that do not match the regular ; expressions below will not be proxied. Be sure to define regular expressions ; using an end of string ($) marker to prevent abuse. coverproxyAllowedHosts[] = "/assets\.thirdiron\.com$/" coverproxyAllowedHosts[] = "/\.summon\.serialssolutions\.com$/" ; This setting controls the content types allowed through the cover proxy. ; Note that proxying SVG files is not recommended because of their potential for ; abuse in cross-site scripting attacks. coverproxyAllowedTypes[] = "image/gif" coverproxyAllowedTypes[] = "image/jpeg" coverproxyAllowedTypes[] = "image/png" ; This setting controls how cover image URLs are loaded. They could be loaded as ; part of main request, or asynchronously. Asynchronous loading is disabled by ; default; to enable it, just uncomment the line below. ;ajaxcovers = true ; When ajaxcovers is set to true, this setting controls whether the AJAX Handler ; GetRecordCover renders a fallback template (record/coverReplacement.phtml) in case ; no cover image could be loaded. ;useCoverFallbacksOnFail = false ; These settings control the image to display when no book cover is available. ; If makeDynamicCovers is not false and the GD library is installed, VuFind will draw ; cover images on the fly. See [DynamicCovers] below for more settings. If set to ; a non-Boolean value, for legacy reasons, the makeDynamicCovers setting will ; be used as the backgroundMode setting of [DynamicCovers] if that setting is unset. ;makeDynamicCovers = true ; Otherwise, you can use noCoverAvailableImage to specify a ; path relative to the base of your theme directory for a static image to display. noCoverAvailableImage = images/noCover2.gif ; You can select from Syndetics, SyndeticsPlus, Booksite and/or the Guardian ; Note: If the API key is omitted, e.g. "Guardian:", only the review title, byline, ; Guardian logo and a link to the full Guardian page will be displayed ; Note: The Guardian API changed in 2014; if you signed up before that date, you ; may need to obtain a new API key for continued access. ;reviews = Syndetics:MySyndeticsId,SyndeticsPlus:MySyndeticsID,Booksite,Guardian:MyGuardianKeyId ; You can select from Syndetics or SyndeticsPlus ;excerpts = Syndetics:MySyndeticsId,SyndeticsPlus:MySyndeticsId ; This setting can be used to hide review/excerpt tabs on the record page when ; no content is available from the providers. By default it is turned off. You ; can turn it on for all relevant tabs by setting it to true, or you can turn ; it on for a comma-separated list of values (e.g. "reviews" or "excerpts" or ; "reviews,excerpts") for selective activation. Note that hiding empty tabs will ; make your record pages slower, since it will require extra communication with ; content providers. ;hide_if_empty = reviews,excerpts ; You can select from Syndetics or SyndeticsPlus to add summary information to ; the description tab. ;summaries = Syndetics:MySyndeticsId,SyndeticsPlus:MySyndeticsId ; You can select from Syndetics, SyndeticsPlus or ObalkyKnih to load Tables of Contents ;toc = Syndetics:MySyndeticsId,SyndeticsPlus:MySyndeticsId,ObalkyKnih ; You can select from Syndetics or SyndeticsPlus ;authorNotes = Syndetics:MySyndeticsId,SyndeticsPlus:MySyndeticsId ; You can select from Wikipedia ; See also the AuthorInfo recommendation module setting in searches.ini; this ; includes notes on improving the accuracy of Wikipedia retrievals. ; Note for Windows users: If using Wikipedia, you may need to increase your Apache ; heap size settings. For details, see: https://vufind.org/jira/browse/VUFIND-630 authors = Wikipedia ; You can select from Google, OpenLibrary, HathiTrust. You should consult ; https://developers.google.com/books/branding before using Google Book Search. ;previews = Google,OpenLibrary,HathiTrust ; This setting controls whether or not cover images are linked to previews when ; available. Legal settings are false (never link), * (always link; default), or ; a comma-separated list of templates in which linking should occur (see coversize ; above for a list of legal values). ;linkPreviewsToCovers = * ; Possible HathiRights options = pd,ic,op,orph,und,umall,ic-world,nobody,pdus,cc-by,cc-by-nd, ; cc-by-nc-nd,cc-by-nc,cc-by-nc-sa,cc-by-sa,orphcand,cc-zero,und-world,icus ; Default is "pd,ic-world" if unset here. ; See www.hathitrust.org/rights_database#Attributes for full details ;HathiRights = pd,ic-world,cc-by,cc-by-nd,cc-by-nc-nd,cc-by-nc,cc-by-nc-sa,cc-by-sa,cc-zero,und-world ; Possible GoogleBooks options full,partial,noview ; options can be set for each / either of link or tab ; Link makes a button appear in search results / record view ; Tab makes a tab with an embedded preview appear on record view ; Default is "GoogleOptions['link'] = full,partial" if nothing ; is set here. ; see https://developers.google.com/books/docs/dynamic-links#json-results-format ;GoogleOptions['link'] = full,partial ;GoogleOptions['tab'] = partial ; OpenLibrary currently offers the same options/default as GoogleBooks (above): ;OpenLibraryOptions = full,partial ; An API key is needed to interact with the Europeana API (see the EuropeanaResults ; recommendation module in searches.ini for more information) ;europeanaAPI = INSERTKEY ; Geographic Display ; These configuration settings have been superseded by the geofeatures.ini file. ; See the [MapTab] section of the geofeatures.ini file for more information. ; This section controls the behavior of the cover generator when makeDynamicCovers ; above is non-false. ; ; Note that any of these settings may be filtered to be size-specific by subscripting ; the key with a size. You can use a key of * for a default to use when a specific ; size is not matched. This allows adjustment of certain elements for different ; thumbnail sizes. See the "size" setting below for an example. [DynamicCovers] ; This controls the background layer of the generated image; options: ; - solid: display a solid color ; - grid: display a symmetrical random pattern seeded by title/callnumber ;backgroundMode = grid ; This controls the text layer of the generated image; options: ; - default: display a title at the top and an author at the bottom ; - initial: display only the first letter of the title as a stylized initial ;textMode = default ; Font files specified here should exist in the css/font subdirectory of a theme. ; Some options are available by default inside the root theme. ;authorFont = "Roboto-Light.ttf" ;titleFont = "RobotoCondensed-Bold.ttf" ; In 'default' textMode, covers are generated using title and author name; VuFind ; will try to display everything by doing the following: break the title into ; lines, and if the title is too long (more than maxTitleLines lines), it will ; display ellipses at the last line. ; ; All text will be drawn using the specified textAlign alignment value using the ; relevant titleFontSize or authorFontSize setting, except that author names will ; be reduced to the minAuthorFontSize option if needed, and if that doesn't make ; it fit, text will be aligned left and truncated. ; ; When using 'initial' textMode, maxTitleLines and author-related settings are ; ignored as they do not apply. ;textAlign = center ;titleFontSize = 9 ;authorFontSize = 8 ;minAuthorFontSize = 7 ;maxTitleLines = 4 ; All color options support the same basic set of values: ; - The 16 named colors from HTML4 ; - Arbitrary HTML hex colors in the form #RRGGBB (e.g. #FFFF00 for yellow) ; Some color options also support additional options. ; - authorFillColor,titleFillColor: the main color used ; - authorBorderColor,titleBorderColor: the color used to make a border; "none" is ; a legal option in addition to colors. ; - baseColor: When using grid backgrounds, you may also choose a base color drawn ; beneath the grid. Default is white. ; - accentColor: When using solid backgrounds, this is the background color; when ; using grid backgrounds, this is the color of the grid pattern beneath the text. ; You may set this to "random" to select a random color seeded with text from ; the cover and adjusted with the "lightness" and "saturation" settings below. ;titleFillColor = black ;titleBorderColor = none ;authorFillColor = white ;authorBorderColor = black ;baseColor = white ;accentColor = random ; Note: lightness and saturation are only used when accentColor = random. Legal ; ranges are 0-255 for each value. ;lightness = 220 ;saturation = 80 ; These settings control the size of the image -- if size is a single number, a ; square will be created; if it is a string containing an "x" (i.e. 160x190) it ; defines a WxH rectangle. wrapWidth constrains the text size (and must be no ; larger than the width of the canvas). topPadding and bottomPadding push the ; text away from the edges of the canvas. ;size[*] = 128 ;size[medium] = 200 ;size[large] = 500 ;topPadding = 19 ;bottomPadding = 3 ;wrapWidth = 110 ; This section is needed for Buchhandel.de cover loading. You need an authentication ; token. It may also be necessary to customize your templates in order to comply with ; terms of service; please look at http://info.buchhandel.de/handbuch_links for ; details before turning this on. [Buchhandel] url = "https://api.vlb.de/api/v1/cover/" ; token = "XXXXXX-XXXX-XXXXX-XXXXXXXXXXXX" [QRCode] ; This setting controls the image to display when no qrcode is available. ; The path is relative to the base of your theme directory. ;noQRCodeAvailableImage = images/noQRCode.gif ; Should we show QR codes in search results? ;showInResults = true ; Should we show QR codes on record pages? ;showInCore = true ; If you are using Syndetics Plus for *any* content, set plus = true ; and set plus_id to your syndetics ID. This loads the javascript file. ; Syndetics vs. SyndeticsPlus: SyndeticsPlus has nice formatting, but loads slower ; and requires javascript to be enabled in users' browsers. ; set use_ssl to true if you serve your site over ssl and you ; use SyndeticsPlus to avoid insecure content browser warnings ; (or if you just prefer ssl) ; NOTE: SyndeticsPlus is incompatible with the tabs/accordion [List] views in ; searches.ini. Do not turn it on if you are using these optional features. [Syndetics] ; When the Syndetics cover image fallback is enabled, it will return generic covers based ; on information Syndetics has related to the ISBN number or other number given. This ; will prevent other fallbacks in VuFind from being tried, such as other cover image sources. ; If the Syndetics cover image fallback is disabled, VuFind will query for the metadata first, ; and only return an image if the Syndetics metadata returns a real cover image. use_syndetics_cover_image_fallback = false use_ssl = false plus = false ;plus_id = "MySyndeticsId" ; timeout value (in seconds) for API calls: timeout = 10 ; Orb does stand for Outil de Recherche Biblbiographique (tool for bibliographic ; search). It's a french database of bibliographic information available by subscription. ; Web site: https://www.base-orb.fr ; API: http://doc.api.base-orb.fr/ ; It could be used in VuFind as cover image provider. [Orb] url = "api.base-orb.fr/v1" ;user = api_test_user ;key = api_access_key ; Booksite CATS Enhanced Content - cover images, reviews, description, etc. [Booksite] url = "https://api.booksite.com" ;key = "XXXXXXXXXXXXXXXXX" ; Content Cafe is a subscription service from Baker & Taylor. If you are using this ; service (see the [Content] section above for details), you MUST uncomment and set ; the password (pw) setting. You may also change the API base URL (url) if needed. [Contentcafe] ;url = "http://contentcafe2.btol.com" ;pw = "xxxxxx" ; Summon is optional; this section is used for your API credentials. apiId is the ; short, human-readable identifier for your Summon account; apiKey is the longer, ; non-human-readable secret key. See also the separate Summon.ini file. ;[Summon] ;apiId = myAccessId ;apiKey = mySecretKey ; This section must be filled in if you plan to use the optional WorldCat ; search module. Otherwise, it may be ignored. ;[WorldCat] ;Your WorldCat search API key ;apiKey = "long-search-api-key-goes-here" ;Your holdings symbol (usually a three-letter code) - used for excluding your ; institution's holdings from the search results. ;OCLCCode = MYCODE ; This section must be filled in to use Relais functionality. When ; activated, this function will allow users to place ILL requests on unavailable ; items through the record holdings tab. ; ; If you set apikey below, requests may be made from within VuFind through a ; pop-up; if you omit apikey but set loginUrl and symbol, links will be provided ; to Relais. Setting loginUrl and symbol is strongly recommended in all cases, ; since links will be used as a fallback if the API fails. ;[Relais] ; Your library's holdings symbol (e.g. PVU for Villanova) ;symbol="XYZ" ; The pickup location to use for your institution (currently multiple pickup ; locations are not supported here). ;pickupLocation = "DEFAULT" ; Barcode number (or other user ID) to use for lookups when none is provided ;patronForLookup="99999999" ; API key (may vary for testing vs. production) ;apikey="your-relais-api-key-goes-here" ; Timeout for HTTP requests (in seconds; set high, as Relais can be slow) ;timeout = 500 ; Your institution's login URL for the remote Relais system (used to provide ; a link when the API fails) ;loginUrl = https://mysite.relais-host.com/user/login.html ; TEST VALUES (uncomment for testing) ;group="DEMO" ;authenticateurl="https://demo.relais-host.com/portal-service/user/authentication" ;availableurl="https://demo.relais-host.com/dws/item/available" ;addurl="https://demo.relais-host.com/dws/item/add" ; PRODUCTION VALUES (uncomment for live use) ;group="EZB" ;authenticateurl="https://mysite.relais-host.com/portal-service/user/authentication" ;availableurl="https://mysite.relais-host.com/dws/item/available" ;addurl="https://mysite.relais-host.com/dws/item/add" ; DPLA key -- uncomment and fill in to use DPLATerms recommendations (see also ; searches.ini). ;[DPLA] ;apiKey = http://dp.la/info/developers/codex/policies/#get-a-key ; These settings affect dynamic DOI-based link inclusion; this can provide links ; to full text or contextual information. [DOI] ; This setting controls whether or not DOI-based links are enabled, and which ; API is used to fetch the data. Currently supported options: BrowZine (requires ; credentials to be configured in BrowZine.ini), Demo (which generates fake data ; to simulate use of a real service, for testing), Unpaywall or false (to disable). ; Disabled by default. You may also use a comma-separated list of resolvers if you ; want to try multiple sources. ;resolver = BrowZine ; If you use multiple values in the resolver setting above, you can determine how the ; software should behave when multiple resolvers return results for the same DOI. ; You can choose "first" (only return results from the first matching resolver -- ; the default behavior) or "merge" (merge together all results and show them all). ;multi_resolver_mode = first ;unpaywall_api_url = "https://api.unpaywall.org/v2" ; Unpaywall needs an email adress, see https://unpaywall.org/products/api ;unpaywall_email = "your@email.org" ; The following settings control where DOI-based links are displayed: show_in_results = true ; include in search results show_in_record = false ; include in core record metadata show_in_holdings = false ; include in holdings tab of record view ; Whether to load any third-party icons for the DOI services via VuFind's cover ; loader proxy to avoid any privacy implications. Ensure that the necessary domains ; are allowed in Content/coverproxyCache[] setting. Default is false. proxy_icons = true ; Whether to open links in a new window. Default is false. ;new_window = false ; These settings affect OpenURL generation and presentation; OpenURLs are used to ; help users find resources through your link resolver and to manage citations in ; Zotero. [OpenURL] ; If a resolver base URL is enabled, it will be used to link from records to your ; OpenURL resolver. An OpenURL resolver is typically used to e.g. link to full text ; from article metadata, but it may provide other services too. Extra parameters may ; be added if necessary. ;url = "http://openurl.myuniversity.edu/sfx_local" ; This string will be included as part of your OpenURL referer ID (the full string ; will be "info:sid/[your rfr_id setting]:generator"). You may be able to configure ; special behavior in your link resolver based on this ID -- for example, you may ; wish to prevent the resolver from linking to VuFind when links came from VuFind ; (to avoid putting a user in an infinite loop). rfr_id = vufind.svn.sourceforge.net ; By specifying your link resolver type, you can allow VuFind to optimize its ; OpenURLs for a particular platform. Current legal values: "sfx", "360link", ; "JOP", "Redi", "Alma", "demo" or "generic" (default is "generic" if commented out; ; "demo" generates fake values for use in testing the embed setting below). ;resolver = sfx ; Some link resolver drivers can filter resource links based on specific criteria. ; This setting indicates which filter reasons should NOT be used to exclude ; resource links. This is currently ONLY supported by the Alma resolver driver. ; (default is "Date Filter" if commented out, for backwards compatibility) ; You may add new filters to the array by adding new lines in the format shown below ; Currently known valid values include: Date Filter ; ignoredFilterReasons[] = "Date Filter" ; To deactivate this setting you can set ; ignoredFilterReasons = false or one line ignoredFilterReasons = "" ; If you want OpenURL links to open in a new window, set this setting to the ; desired Javascript window.open parameters. If you do not want a new window ; to open, set this to false or comment it out. window_settings = "toolbar=no,location=no,directories=no,buttons=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=550,height=600" ; If you want to display a graphical link to your link resolver, uncomment the ; settings below. graphic should be a URL; graphic_width and graphic_height ; should be sizes in pixels. ; Note: You will probably will need to add URL of image to img-src setting ; in contentsecuritypolicy.ini file ;graphic = "http://myuniversity.edu/images/findIt.gif" ;graphic_width = 50 ;graphic_height = 20 ; If your link resolver can render an image in response to an OpenURL, you can ; specify the base URL for image generation here: ;dynamic_graphic = "http://my-link-resolver/image" ; If dynamic_graphic is set above, the dynamic image can be used instead of the ; standard text or static-image-based OpenURL link (true), it can be disabled ; (false), or it can be displayed in addition to the regular link ("both"). ;image_based_linking_mode = both ; The following settings control where OpenURL links are displayed: show_in_results = true ; include in search results show_in_record = false ; include in core record metadata show_in_holdings = false ; include in holdings tab of record view ; If set to true, this setting will attempt to embed results from the link ; resolver directly in search results instead of opening a new window or page. ; This will override the window_settings option if set! Embedding is currently ; unsupported when the resolver setting above is set to "other". embed = false ; When embed is true and this is set to true results from the link resolver will ; be loaded automatically (default is false, which requires a user click to trigger ; the loading). Alternatively you can provide a comma-separated list of view areas ; (cf. show_in_* settings) to autoload embedded OpenURLs only in certain views. ; Notice: autoloading in results view might put some load on your linkresolver (each ; results view could perform searches.ini->[General]->default_limit requests). You ; might reduce load on the linkresolver by using the resolver_cache setting (see ; below). embed_auto_load = false ; When embed is true, you can set this to an absolute path on your system in order ; to cache link resolver results to disk. Be sure that the chosen directory has ; appropriate permissions set! Leave the setting commented out to skip caching. ; Note that the contents of this cache will not be expired by VuFind; you should ; set up an external process like a cron job to clear out the directory from time ; to time. ;resolver_cache = /usr/local/vufind/resolver_cache ; This setting controls whether we should display an OpenURL link INSTEAD OF other ; URLs associated with a record (true) or IN ADDITION TO other URLs (false). replace_other_urls = true ; EZproxy is optional. This section only needs to exist if you ; are using EZProxy to provide off-site access to online materials. ;[EZproxy] ;host = http://proxy.myuniversity.edu ; By default, when the 'host' setting above is active, VuFind will prefix links in ; records using EZproxy's "?qurl=" mechanism. If you need to set a host for ticket ; authentication (below) but you want to disable the prefixing behavior, set this ; to false. ;prefixLinks = true ; Use a web service to determine whether to prefix each link, ignoring prefixLinks ; above unless the web service call fails. Query the configured URL via HTTP GET ; and a single query parameter, 'url', set to the link domain. The web service ; should return a body with a single number, '1' to prefix and '0' if not. The ; web service should be hosted closely such that query time is minimal. See ; https://github.com/lehigh-university-libraries/ezproxy-url-checker for an OSS ; implementation of this protocol that extracts the answers from EZproxy config. ;prefixLinksWebServiceUrl = http://localhost:8888/proxyUrl ; Duration (seconds) to cache web service response data. Default is 600. ;prefixLinksWebServiceCacheLifetime = 600 ; Uncomment the following line and change the password to something secret to enable ; EZproxy ticket authentication. ;secret = "verysecretpassword" ; ; To enable ticket authentication in EZproxy, you will also need the following in ; EZproxy's user.txt or ezproxy.usr for older versions (without the leading ; semicolons and spaces): ; ; ::CGI=https://vufind-server/ExternalAuth/EzproxyLogin?url=^R ; ::Ticket ; TimeValid 10 ; SHA512 verysecretpassword ; ; Uncomment and modify the following line to use another hashing algorithm with the ; EZproxy authentication if necessary. SHA512 is the default, but it requires at ; least EZproxy version 6.1. Use "SHA1" for older EZproxy versions, and remember to ; replace SHA512 with SHA1 also in EZproxy's configuration file. ;secret_hash_method = "SHA512" ; Uncomment the following line to disable relaying of user name to EZproxy on ticket ; authentication: ;anonymous_ticket = true ; Uncomment the following line to disable logging of successful ticket ; authentication requests in VuFind: ;disable_ticket_auth_logging = true ; These settings affect RefWorks record exports. They rarely need to be changed. [RefWorks] vendor = VuFind url = https://www.refworks.com ; These settings affect EndNote Web record exports. They rarely need to be changed. [EndNoteWeb] vendor = VuFind url = https://www.myendnoteweb.com/EndNoteWeb.html ; These settings affect your OAI server if you choose to use it. ; ; If identifier is set, its value will be used as part of the standard OAI ; identifier prefix. It should only ever be set to a domain name that you ; control! If it is not set, your ID values will not be prefixed. ; ; If admin_email is not set, the main email under [Site] will be used instead. ; ; page_size may be used to specify the number of records returned per request. ; Default is 100. A higher number may improve overall harvesting performance, but ; will also make a single response page larger and slower to produce. ; ; If set_field is set, the named Solr field will be used to generate sets on ; your OAI-PMH server. If it is not set, sets will not be supported. ; ; If set_query is set (as an array mapping set names to Solr queries -- see ; examples below), the specified queries will be exposed as OAI sets. If ; you use both set_field and set_query, be careful about the names you choose ; for your set queries. set_query names will trump set_field values when ; there are collisions. ; ; default_query may be used to specify a filter for the default set, i.e. records ; returned when a set is not specified. ; ; If vufind_api_format_fields is set, the listed fields (as defined in ; SearchApiRecordFields.yaml) are returned when metadata prefix ; "oai_vufind_json" is used. ; ; record_format_filters allows mapping from requested OAI metadataPrefix to query ; filters. They can be used e.g. to limit results to records that can be returned in ; the requested format. ; ; delete_lifetime controls how many days' worth of deleted records to include in ; responses. Records deleted before the cut-off will not be included in responses. ; Omit this setting to return all deleted records. This can be useful for long-lived ; systems with many deleted records, to prevent full harvests from becoming unwieldy. ; ; use_cursor controls whether or not to use Solr's cursor functionality for deep ; pagination of results. This defaults to true and is normally the preferred option, ; but if you custom code to apply Solr features (such as result grouping/field ; collapsing) that are incompatible with cursor-based pagination, you should turn ; the feature off here. ; ;[OAI] ;identifier = myuniversity.edu ;repository_name = "MyUniversity Catalog" ;admin_email = oai@myuniversity.edu ;page_size = 1000 ;set_field = "format" ;set_query['eod_books'] = "institution:kfu AND publishDate:[1911 TO 1911]" ;set_query['eod_ebooks'] = "format:eBook" ;default_query = "institution:kfu" ;vufind_api_format_fields = "id,authors,cleanIsbn,cleanIssn,formats,title" ;record_format_filters[marc21] = "record_format:marc" ;delete_lifetime = 365 ;use_cursor = true ; Proxy Server is Optional. [Proxy] ;host = your.proxy.server ;port = 8000 ; Uncomment one of the following lines to set proxy type to SOCKS 5 or SOCKS 5 with ; name resolution done by proxy. Setting either of these will make VuFind use the ; curl adapter for HTTP requests. ;type = socks5 ;type = socks5_hostname ; This setting can be used to define a reqular expression pattern for addresses that ; should be considered local and bypass proxy when making requests. Default is: ;local_addresses = "@^(localhost|127(\.\d+){3}|\[::1\])@" ; Following example bypasses also any address starting with '192.168.': ;local_addresses = "@^(localhost|127(\.\d+){3}|\[::1\]|192\.168\.)@" ; If VuFind is running behind a proxy that uses X-Real-IP/X-Forwarded-For headers, ; you should configure this setting on so that VuFind reports correct user IP ; addresses, and sets permissions appropriately. CONFIGURE THIS WITH CARE! It is ; possible to spoof IP addresses, and configuring this to differentiate between ; legitimate headers from your proxy and spoofed values is critical to protecting ; your content. ; ; The setting should be an ordered, comma-separated list of headers, with optional ; colon-separated modifiers specifying behavior. ; ; Header values can be any keys in PHP's $_SERVER superglobal array; these are ; the most commonly used options: ; - HTTP_X_FORWARDED_FOR ; - HTTP_X_REAL_IP ; ; Supported behaviors (if unspecified, "single" is the default behavior): ; - first (pick the first comma-separated value; e.g. "a" in "a, b, c") ; - last (pick the last comma-separated value; e.g. "c" in "a, b, c") ; - single (enforce single values; completely ignore multi-valued headers) ; ; See also forwarded_ip_filter below for a way to filter out known IP addresses ; of internal network devices before applying first/last/single settings. ; ; When commented out or set to false, only the regular REMOTE_ADDR value will ; be used for IP detection. REMOTE_ADDR will also be used as the default value ; if none of the configured headers are populated. ; ; If you need to implement more nuanced functionality, you can extend or ; override the VuFind\Net\UserIpReader class to implement your own logic. ; ; You can use a header-modifying browser plugin to determine how your proxy ; will respond to spoofing attempts. ; ; See this wiki page for additional notes and comments: ; https://vufind.org/wiki/administration:security#proxies_and_ip_authentication ; ; The example below, if uncommented, will use X-Real-IP if found, and the ; rightmost value of X-Forwarded-For otherwise (resorting to REMOTE_ADDR only ; if no relevant X- headers are found). ;allow_forwarded_ips = "HTTP_X_REAL_IP:single,HTTP_X_FORWARDED_FOR:last" ; This setting can be used in combination with allow_forwarded_ips to prevent ; known IP addresses of internal proxies and network devices from being reported ; as end user IP addresses. You can repeat the setting for each IP address that ; you wish to exclude. The first/last/single processing parameters used by ; allow_forwarded_ips will be applied AFTER removing addresses filtered here. ;forwarded_ip_filter[] = 1.2.3.4 ; Default HTTP settings can be loaded here. These values will be passed to ; the \Laminas\Http\Client's setOptions method. [Http] ;sslcapath = "/etc/ssl/certs" ; e.g. for Debian systems ;sslcafile = "/etc/pki/tls/cert.pem" ; e.g. for CentOS systems ;timeout = 30 ; default timeout if not overridden by more specific code/settings ; Example: Using a CURL Adapter instead of the defaultAdapter (Socket); note ; that you may also need to install CURL and PHP/CURL packages on your server. ;adapter = 'Laminas\Http\Client\Adapter\Curl' ; Set curl options if required. See ; https://www.php.net/manual/en/function.curl-setopt.php for available options and ; https://github.com/curl/curl/blob/master/include/curl/curl.h for their numeric ; values. ;curloptions[52] = true ; Spelling Suggestions ; ; Note: These settings affect the VuFind side of spelling suggestions; you ; may also wish to adjust some Solr settings in solr/biblio/conf/schema.xml ; and solr/biblio/conf/solrconfig.xml. [Spelling] enabled = true ; Number of suggestions to display on screen. This list is filtered from ; the number set in solr/biblio/conf/solrconfig.xml so they can differ. limit = 3 ; Show the full modified search phrase on screen ; rather then just the suggested word phrase = false ; Offer expansions on terms as well as basic replacements expand = true ; Set the list of spellcheck dictionaries used in a Solr query. The ; available dictionaries are defined in solrconfig.xml. ; To improve performance by ignoring the more complicated 'shingle' (mini ; phrases) based dictionary, disable 'default' to use only 'basicSpell'. ; To use Solr's DirectSolrSpellChecker dictionary, enable 'direct' and ; disable the others. ; See https://solr.apache.org/guide/solr/latest/query-guide/spell-checking.html ; for configuration of solrconfig.xml spellcheck parameters. dictionaries[] = default dictionaries[] = basicSpell ;dictionaries[] = direct ; This setting skips spell checking for purely numeric searches; spelling ; suggestions on searches for ISBNs and OCLC numbers are not generally very ; useful. skip_numeric = true ; These settings control what events are logged and where the information is ; stored. ; ; VuFind currently supports four logging levels: alert (severe fatal error), ; error (fatal error), notice (non-fatal warning) and debug (informational). ; ; Each logging level can be further broken down into five levels of verbosity. ; You can specify the desired level by adding a dash and a number after the ; level in the configuration string -- for example, alert-2 or error-5. ; The higher the number, the more detailed the logging messages. If verbosity ; is not specified, it defaults to 1 (least detailed). ; ; Several logging methods are available, and each may be configured to log any ; combination of levels. ; ; You may enable multiple logging mechanisms if you want -- in fact, it is ; recommended, since the failure of one logging mechanism (i.e. database down, ; file system full) may then be reported to another. ; ; If database is uncommented, messages will be logged to the named MySQL table. ; The table can be created with this SQL statement: ; CREATE TABLE log_table ( id INT NOT NULL AUTO_INCREMENT, ; logtime TIMESTAMP NOT NULL, ident CHAR(16) NOT NULL, ; priority INT NOT NULL, message TEXT, PRIMARY KEY (id) ); ; ; If file is uncommented, messages will be logged to the named file. Be sure ; that Apache has permission to write to the specified file! ; ; If email is uncommented, messages will be sent to the provided email address. ; Be careful with this setting: a flood of errors can easily bog down your mail ; server! [Logging] ;database = log_table:alert,error,notice,debug ; NOTE : Make sure the log file exists and that Apache has write permission. ; NOTE : Windows users should avoid drive letters (eg. c:\vufind) because ; the colon will be used in the string parsing. "/vufind" will work ;file = /var/log/vufind.log:alert,error,notice,debug ;email = alerts@myuniversity.edu:alert-5,error-5 ; Get URL from https://YOURSLACK.slack.com/apps/manage/custom-integrations ;slack = #channel_name:alert,error ;slackurl = https://hooks.slack.com/services/your-private-details ;slackname = "VuFind Log" ; username messages are posted under ; You can also use the Slack settings to hook into Discord: ; - Get your url from Server Settings > Webhooks ; - Add /slack to the end of your url for Slack-compatible messages ; https://discordapp.com/developers/docs/resources/webhook#execute-slackcompatible-webhook ; You can use Office365 webhooks to send messages to a Microsoft Team channel. ; In the "Connectors" setting on a channel, you can add "Incoming Webhook." This ; will provide a URL that you can paste into the office365_url setting. ; If you are concerned about rate limits, you might also wish to set up the ; VuOwma message aggregator; see https://github.com/FalveyLibraryTechnology/VuOwma ;office365_url = "https://outlook.office.com/webhook/xxx/IncomingWebhook/yyy" ; This setting controls the error levels that will be logged to Office365; if ; commented out, Office365 logging will be disabled ;office365 = alert,error ; This setting controls the title on the messages displayed in Office365: ;office365_title = "VuFind Log" ; Specify a reference id to inject in all log messages, for use later in querying ; the logs. See https://docs.laminas.dev/laminas-log/processors/#referenceid. ; May be useful in tracking excessive use violations of licensed content. ; - Default, false, includes no reference id. ; - 'username' logs the currently logged-in username, if there is one. ;reference_id = false ; This section can be used to specify a "parent configuration" from which ; the current configuration file will inherit. You can chain multiple ; configurations together if you wish. [Parent_Config] ; Full path to parent configuration file: ;path = /usr/local/vufind/application/config/config.ini ; Path to parent configuration file (relative to the location of this file): ;relative_path = ../parentconfig/config.ini ; A comma-separated list of config sections from the parent which should be ; completely overwritten by the equivalent sections in this configuration; ; any sections not listed here will be merged on a section-by-section basis. ;override_full_sections = "Languages,AlphaBrowse_Types" ; This setting is for allowing arrays to be merged with the values of their parents ; arrays. If override_full_sections is set for a section the arrays will always be ; overridden. ; For legacy reasons merging of arrays is disabled by default. ;merge_array_settings = false ; This section controls which language options are available to your users. ; If you offer more than one option, a control will appear in the user ; interface to allow user selection. If you only activate one language, ; the control will be hidden. ; ; The name of each setting below (i.e. en, de, fr) is a language code and ; corresponds with one of the translation files found in the web/lang ; directory. The value of each setting is the on-screen name of the language, ; and will itself be subject to translation through the language files! ; ; Enable "debug" to see the keys of the translation instead of a translation. ; This can be helpful in development environments but should be deactivated ; in production. ; ; The order of the settings is significant -- they will be displayed on screen ; in the same order they are defined here. ; ; Be sure that this section includes the default language set in the [Site] ; section above. [Languages] ;debug = "Debug" en = "English" ; American spellings ;en-gb = "English" ; British spellings de = "German" es = "Spanish" fr = "French" it = "Italian" ja = "Japanese" nl = "Dutch" ;nl-be = "Flemish Dutch" pt = "Portuguese" pt-br = "Brazilian Portugese" zh-cn = "Simplified Chinese" zh = "Chinese" tr = "Turkish" he = "Hebrew" ga = "Irish" cy = "Welsh" el = "Greek" ca = "Catalan" eu = "Basque" ru = "Russian" cs = "Czech" fi = "Finnish" sv = "Swedish" pl = "Polish" da = "Danish" sl = "Slovene" ar = "Arabic" bn = "Bengali" gl = "Galician" vi = "Vietnamese" hr = "Croatian" hi = "Hindi" hy = "Armenian" uk = "Ukrainian" se = "Northern Sámi" mn = "Mongolian" mi = "Maaori" ; This section contains special cases for languages such as right-to-left support [LanguageSettings] ; Comma-separated list of languages to display in right-to-left mode rtl_langs = "ar,he" ; This section controls the behavior of the Browse module. The result_limit ; setting controls the maximum number of results that may display in any given ; result box on the Browse screen. You can set to -1 for no limit; however, ; setting a very high (or no) limit may result in "out of memory" errors if you ; have a large index! [Browse] result_limit = 100 ; These settings can be used to turn specific browse types on or off; the order ; of the settings in the configuration below will also control the order of the ; options displayed in the web interface: tag = true ; allow browsing of Tags dewey = false ; allow browsing of Dewey Decimal call numbers lcc = true ; allow browsing of LC call numbers author = true ; allow browsing of authors topic = true ; allow browsing of subject headings genre = true ; allow browsing of genre subdivisions region = true ; allow browsing of region subdivisions era = true ; allow browsing of era subdivisions ; You can use this setting to change the default alphabet provided for browsing: ;alphabet_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ; Uncomment to sort lists alphabetically (instead of by popularity); note that ; this will not changed the values returned -- you will still get only the ; <result_limit> most popular entries -- it only affects display order. ;alphabetical_order = true ; This section is used to configure bulk actions. [BulkActions] ; Set the limit of items for each action. Set 0 to disable the action and hide the button. ; Depending on your setup you may be able to increase the limits or have to decrease them ; for the actions to work properly. limits["default"] is used for all actions that do not have ; a limit themselves. limits["default"] = 100 limits["email"] = 100 limits["export"] = 100 limits["print"] = 100 limits["saveCart"] = 100 limits["delete"] = 100 ; This section controls the availability of export methods. ; ; Each entry may be a comma-separated list of contexts in which the export ; option will be presented. Valid options: ; ; bulk - Included in batch export contexts ; record - Included in single-record export contexts ; ; If you simply set a field to true, only "record" mode will be enabled. ; If you set a field to false, all export contexts will be disabled. ; ; Note that some options may be disabled for records that do not support them, ; regardless of the setting chosen here. You can edit the separate export.ini ; file to add new export formats and change the behavior of existing ones. [Export] RefWorks = "record,bulk" EndNote = "record,bulk" EndNoteWeb = "record,bulk" MARC = false MARCXML = false RDF = false BibTeX = false RIS = false [BulkExport] ; Export behavior to use when no bulkExportType setting is found in the matching ; format section of export.ini; default is 'link' if not overridden below. See ; export.ini for more details on available options. ;defaultType = download ;AddThis is optional. It uses the Add This tool available from www.addthis.com ; and requires the username generated when an analytics account is registered. ;[AddThis] ;key = yourUsername ; This section controls how item status information is presented in search results. [Item_Status] ; Usually, there is only one location or call number for each item; however, when ; multiple values are found, there are several possible behaviors: ; first = display the first value found, ignore the rest ; all = show all of the values found, separated by commas ; msg = show a message like "Multiple Call Numbers" or "Multiple Locations" ; group = show availability statuses for each location on a separate line, ; followed by callnumber information (valid for multiple_locations only) multiple_call_nos = first multiple_locations = msg ; If your ILS driver supports services, VuFind will display a more detailed ; availability message. This setting may be used to indicate that one particular ; status is preferred over all others and should be displayed by itself when ; found. This is useful because some drivers will always provide both "loan" and ; "presentation" services, but most users will only care about "loan" (since in- ; library use is implied by the ability to borrow an item). Set this to false to ; always display all services. preferred_service = "loan" ; Show the full location, call number, availability for each item. ; You can customize the way each item's status is displayed by overriding the ; ajax/status-full.phtml template. ; When enabled, this causes the multiple_call_nos, multiple_locations and ; preferred_service settings to be ignored. show_full_status = false ; You can set this to the name of an alphabetic browse handler (see the ; [AlphaBrowse_Types] section) in order to link call numbers displayed on the ; holdings tab and in status messages to a specific browse list. Set to false ; to disable call number linking. callnumber_handler = false ; Load settings for result list. If you set "load_batch_wise" to true the statuses of multiple ; records will be loaded batch wise. Otherwise each status will be loaded asynchronously. ; Set "load_observable_only" to true if you want the statuses of the records only to be loaded ; when they are visible. Otherwise all statuses of the records on the page will be loaded. load_batch_wise = true load_observable_only = true ; This section controls the behavior of the Record module. [Record] ; Set this to true in order to enable "next" and "previous" links to navigate ; through the current result set from within the record view. next_prev_navigation = false ; Set this to true in order to enable "first" and "last" links to navigate ; through the content result set from within the record view. Note, this ; may cause slow behavior with some installations. The option will only work ; when next_prev_navigation is also set to true. first_last_navigation = false ; Setting this to true will cause VuFind to skip the results page and ; proceed directly to the record page when a search has only one hit. jump_to_single_search_result = false ; You can enable this setting to show links to related MARC records using certain ; 7XX fields. Just enter a comma-separated list of the MARC fields that you wish ; to make use of. ;marc_links = "760,762,765,767,770,772,773,774,775,776,777,780,785,787" ; In the marc_links_link_types enter the fields you want the module to use to ; construct the links. The module will run through the link types in order ; until it finds one that matches. If you don't have id numbers in the fields, ; you can also use title to construct a title based search. id represents a raw ; bib id, dlc represents an LCCN. Default setting: ;marc_links_link_types = id,oclc,dlc,isbn,issn,title ; Set use_visibility_indicator to false if you want to show links that are marked as ; "Do not show" in the MARC record (indicator 1). Otherwise, these links will be ; suppressed. (Default = true) ;marc_links_use_visibility_indicator = false ; When displaying publication information from 260/264, this separator will be ; placed between repeating subfield values (default is to rely on existing ISBD ; punctuation, but this can be used when ISBD punctuation is absent (e.g. ", "). ;marcPublicationInfoSeparator = " " ; If you have a custom index, you might want to change the field where the full ; MARC record is supposed to be. The field will be checked and ignored, if it is ; not a valid index field or does not exist in the record or index schema. ; If you have multiple fields with MARC content, you may add all of them ; by using a comma sepated list. The first field is the preferred one, if it does not ; exist, the next ones are taken. ; (Default = "fullrecord") preferredMarcFields = "fullrecord" ; When displaying publication information from 260/264, this can be set to true ; to make 264 information completely replace 260 information. Default is false, ; which will display information from 260 AND 264 when both fields are populated. ; Note that this only affects display, not indexing; both fields will always be ; made searchable. ;replaceMarc260 = false ; Set the URI-pattern of the server which serves the raw Marc-data. (see ; https://vufind.org/wiki/configuration:remote_marc_records for more information ; on how to set up a remote service for raw Marc-data) ;remote_marc_url = http://127.0.0.1/%s ; You can use this setting to hide holdings information for particular named locations ; as returned by the catalog. hide_holdings[] = "World Wide Web" ; This array controls which Related modules are used to display sidebars on the ; record view page. ; ; Available options: ; Channels - Display links to channels of content related to record ; Bookplate - Display a bookplate image or something similar ; Similar - Similarity based on Solr lookup ; WorldCatSimilar - Similarity based on WorldCat lookup related[] = "Similar" ; The following settings are for the related Bookplate module. They can be ; enabled here by uncommenting below or from another config file of your choice. ; To add them to another config file just pass the .ini file name and section ; where they are found to the related module like so: ;related[] = "Bookplate:Filename:Section" ; How many items are displayed on the similar items carousel record tab. ; Default is 40. ;similar_carousel_items = 40 ; URLs for bookplates if enabled. The following tokens can be used: ; %%img%% - image name, partial image name or full URL. ; %%thumb%% - thumbnail image name, partial thumbnail image name or full URL. ; If you index the entire path to bookplate images, you will only need to use ; the token, e.g. bookplate_full = %%img%%, otherwise you can build URLs similar ; to the ones below. ;bookplate_full = https://your-institution.edu/bookplates/%%img%%-full.jpg ;bookplate_thumb = https://your-institution.edu/bookplates/%%thumb%%-thumb.jpg ; Data field with an array of image titles, parallel with bookplate_images_field. ; Is required for alt text, even if bookplate_display_title is set to false. ;bookplate_titles_field = "donor_str_mv" ; Data field with an array of strings that represent the unique parts of image names, ; or full URLs to images, parallel with bookplate_titles_field. ;bookplate_images_field = "donor_code_str_mv" ; Data field with an array of strings that represent the unique parts of thumbnail ; image names or full URLs to thumbnail images, parallel with bookplate_titles_field. ;bookplate_thumbnails_field = "donor_code_str_mv" ; Display bookplate titles below bookplate images ;bookplate_display_title = true ; This setting controls which citations are available; set to true for all supported ; options (default); set to false to disable citations; set to a comma-separated list ; to activate only selected formats (available options: APA, Chicago, MLA). The ; comma-separated list option may also be used to customize citation display order. ;citation_formats = APA,Chicago,MLA ; Only display x number of subjects in the bib display on the full record by default. ; Additional subjects are hidden by default and expandable via a "more..." button. ; Enable by setting to a number, e.g. 3, to display 3 subjects and hide the rest. ;subjectLimit = false ; Only display x number of items in the holdings tab on the full record by default. ; Additional items are hidden by default and expandable via a "more..." button. ; Enable by setting to a number, e.g. 3, to display 3 items and hide the rest. ;holdingsItemLimit = false ; Whether to always display the index fields in staff view (i.e. also for MARC ; records). Default is false. ;alwaysDisplayIndexRecordInStaffView = false ; Embed schema.org RDFa metadata into record displays? includeSchemaOrgMetadata = true ; This setting controls the display order of subject headings from MARC records. ; If set to "record" (the default) it will retain the order of headings from the MARC record. ; If set to "numerical", it will sort numerically by MARC tag. ;marcSubjectHeadingsSort = "numerical" ; The following two sections control the Alphabetic Browse module. [AlphaBrowse] ; This setting controls how many headings are displayed on each page of results: page_size = 20 ; How many headings to show before the match (or the spot where the match ; would have been found). Default is 0 for backwards compatibility. rows_before = 0 ; highlight the match row (or spot where match would have been)? default false highlighting = false ; AlphaBrowse results are not subject to dynamic filtering. If you have default ; filters defined in searches.ini, you most likely will want to disable them when ; users navigate from browse results to search results, to ensure that the result ; count is consistent between the browse listing and the search listing. However, ; in the rare situation that you have configured default filters that BROADEN ; rather than NARROW search results, you will likely want to change this setting ; to false to avoid inconsistencies. bypass_default_filters = true ; SEE ALSO: the General/includeAlphaBrowse setting in searchbox.ini, for including ; alphabrowse options in the main search drop-down options. ; This section controls the order and content of the browse type menu in the ; Alphabetic Browse module. The key is the browse index to use, the value is the ; string to display to the user (subject to translation). [AlphaBrowse_Types] topic = "By Topic" author = "By Author" title = "By Title" lcc = "By Call Number" ;dewey = "By Call Number" ; This section controls the return of extra columns for the different browses. ; The key is the browse index, the value is a colon-separated string of extra ; Solr fields to return for display to the user. ; Values should be in translation file as browse_value. [AlphaBrowse_Extras] title = "author:format:publishDate" lcc = title dewey = title ; This section allows you to configure the values used for Cryptography; the ; HMACkey can be set to any value you like and should never be shared. It is used ; to prevent users from tampering with certain URLs (for example, "place hold" form ; submissions) [Security] HMACkey = mySuperSecretValue ; This section sets global defaults for caches; file caching is used by default. ; A custom directory for caching can be defined by the environment variable ; VUFIND_CACHE_DIR (see httpd-vufind.conf). The default location is inside the ; local settings directory. [Cache] ; Uncomment the following line to disable all caching ;disabled = true ; Set time to live value for caches (in seconds), 0 means maximum possible. ;ttl = 0 ; Override umask for cache directories and files. ;umask = 022 ; Permissions for framework-created cache directories and files, subject to umask ; Default dir_permission seems to be 0700. ;dir_permission = 0700 ; Default file_permission seems to be 0600. ;file_permission = 0600 ; The following Cache_ sections are empty. You can use them to override the ; default settings from the [Cache] section in the given context if necessary. [Cache_GoogleCover] [Cache_OrbCover] ; This section controls the "Collections" module -- the special view for records ; that represent collections, and the mechanism for browsing these records. [Collections] ; Control whether or not the collections module is enabled in search results. ; If set to true any search results which are collection level items will ; link to the respective collections page rather than the record page ; (default = false). ;collections = true ; Control default tab of Collection view (default = CollectionList); see also ; CollectionTabs.ini. ;defaultTab = CollectionList ; This controls where data is retrieved from to build the Collections/Home page. ; It can be set to Index (use the Solr index) or Alphabetic (use the AlphaBrowse ; index). Index is subject to "out of memory" errors if you have many (150000+) ; collections; Alphabetic has no memory restrictions but requires generation of ; a browse index using the index-alphabetic-browse tool. (default = Index) ;browseType = Index ; This string is the delimiter used between title and ID in the hierarchy_browse ; field of the Solr index. Default is "{{{_ID_}}}" but any string may be used; ; be sure the value is consistent between this configuration and your indexing ; routines. ;browseDelimiter = "{{{_ID_}}}" ; This controls the page size within the Collections/Home page (default = 20). ;browseLimit = 20 ; List of record routes that are converted to collection routes (used to map ; route names when a record identifies itself as a collection and the collections ; setting above is true). route[record] = collection route[search2record] = search2collection ; This section addresses hierarchical records in the Solr index [Hierarchy] ; Name of hierarchy driver to use if no value is specified in the hierarchytype ; field of the Solr index. driver = Default ; Should we display hierarchy trees? (default = false) ;showTree = true ; "Search within trees" can be disabled here if set to "false" (default = true) search = true ; You can limit the number of search results highlighted when searching the tree; ; a limit is recommended if you have large trees, as otherwise large numbers of ; results can cause performance problems. If treeSearchLimit is -1 or not set, ; results will be unlimited. treeSearchLimit = 100 ; Whether hierarchy fields are used for linking between container records and their ; children (default = false). This is an alternative to the full collections support ; (see the [Collections] section), so only one of them should be enabled ; at a time e.g. unless custom record drivers are used. When using this setting, ; you may also wish to enable the ComponentParts tab in RecordTabs.ini. ;simpleContainerLinks = true ; If true, throw an exception if hierarchy parent and sequence data is out of sync. validateHierarchySequences = true ; This section will be used to configure the feedback module. ; Set "tab_enabled" to true in order to enable the feedback module. ; Forms are configured in FeedbackForms.yaml [Feedback] ;tab_enabled = true ; Default values for form recipient and email subject, if not overridden for a ; specific form in FeedbackForms.yaml ;recipient_email = "feedback@myuniversity.edu" ;recipient_name = "Your Library" ;email_subject = "VuFind Feedback" ; This is the information for where feedback emails are sent from. ;sender_email = "noreply@vufind.org" ;sender_name = "VuFind Feedback" ; Note: for additional details about stats (including additional notes on Google ; Analytics and Matomo/Piwik), look at the wiki page: ; https://vufind.org/wiki/configuration:usage_stats ; Uncomment this section and provide your Container ID key to enable Google Tag Manager. ; For information on installing GTM and identifying your GTM Container ID, see: ; https://support.google.com/tagmanager/answer/6103696 ;[GoogleTagManager] ;gtmContainerId = "GTM-1234567" ; Uncomment this section and provide your API key to enable Google Analytics. ;[GoogleAnalytics] ;apiKey = "mykey" ; Options to pass to the ga() function's create call; if omitted, defaults to ; 'auto'. The example below can be uncommented to work around a common problem ; with browsers complaining about problems with the samesite attribute. Note ; that the value of this setting must be valid Javascript code, so be careful ; about quoting and escaping. ; Note: only supported when universal is set to true. ;create_options_js = "{cookie_flags: 'max-age=7200;secure;samesite=none'}" ; Matomo analytics version 4 and later (for version 3 and earlier, use Piwik section ; below): ; Uncomment this section and provide your Matomo server address and site id to enable ; Matomo analytics. [Matomo] ;url = "http://server.address/matomo/" ;site_id = 1 ; Uncomment and modify the following settings to track additional information about ; searches and displayed records with Matomo's custom dimensions. Each entry maps an ; information field to a custom dimension. The list of settings below contains all ; the fields available. Note that you may need to increase the custom dimensions ; limit in Matomo to track all the information needed (see the custom dimensions ; configuration page in Matomo for more information). ;custom_dimensions[Facets] = 1 ;custom_dimensions[FacetTypes] = 2 ;custom_dimensions[SearchType] = 3 ;custom_dimensions[SearchBackend] = 4 ;custom_dimensions[Sort] = 5 ;custom_dimensions[Page] = 6 ;custom_dimensions[Limit] = 7 ;custom_dimensions[View] = 8 ;custom_dimensions[RecordFormat] = 9 ;custom_dimensions[RecordData] = 10 ;custom_dimensions[RecordInstitution] = 11 ;custom_dimensions[Context] = 12 ; Uncomment the following setting to track additional information about searches ; and displayed records with Matomo's custom variables. Matomo recommends using ; custom dimensions instead, but you can choose to use either or both. ; Note: To use custom variables you must reconfigure Matomo by making sure that the ; Custom Variables plugin is enabled, switching to Matomo's root directory and ; running this command to raise the default limit of custom variables from 5 to 10: ; ./console customvariables:set-max-custom-variables 10 ;custom_variables = true ; By default, searches are tracked using the format "Backend|Search Terms." ; If you need to differentiate searches coming from multiple VuFind instances using ; a shared site_id, you can set the searchPrefix to add an additional prefix to ; the string, for example "SiteA|Backend|Search Terms." Most users will want to ; leave this disabled. ;searchPrefix = "SiteA|" ; Uncomment the following setting to disable cookies for privacy reasons. ; see https://matomo.org/faq/general/faq_157/ for more information. ;disableCookies = true ; Piwik and Matomo 3.x (for Matomo version 4 and later, use Matomo section above): ; The Piwik product has been renamed to Matomo, but for backward compatibility, ; the terminology has not yet been changed in VuFind. Uncomment this section and ; provide your Matomo or Piwik server address and site id to enable Matomo/Piwik ; analytics. Note: VuFind's Matomo/Piwik integration uses several custom variables; ; to take advantage of them, you must reconfigure Matomo/Piwik by switching ; to its root directory and running this command to raise a default limit: ; ./console customvariables:set-max-custom-variables 10 [Piwik] ;url = "http://server.address/piwik/" ;site_id = 1 ; Uncomment the following setting to track additional information about searches ; and displayed records with Matomo/Piwik's custom variables ;custom_variables = true ; By default, searches are tracked using the format "Backend|Search Terms." ; If you need to differentiate searches coming from multiple VuFind instances using ; a shared site_id, you can set the searchPrefix to add an additional prefix to ; the string, for example "SiteA|Backend|Search Terms." Most users will want to ; leave this disabled. ;searchPrefix = "SiteA|" ; Uncomment the following setting to disable cookies for privacy reasons. ; see https://matomo.org/faq/general/faq_157/ for more information. ;disableCookies = true ; Uncomment portions of this section to activate tabs in the search box for switching ; between search modules. Keys are search backend names, values are labels for use in ; the user interface (subject to translation). If you need multiple tabs for a single ; backend, append a colon and a suffix to each backend name (e.g. Solr:main) and add ; the filters in the [SearchTabsFilters] section. [SearchTabs] ;Solr = Catalog ;Summon = Summon ;WorldCat = WorldCat ;Solr:filtered = "Catalog (Main Building Books)" ;EDS = "EBSCO Discovery Service" ;EIT = "EBSCO Integration Toolkit" ;Primo = "Primo Central" ; Add any hidden filters in this section for search tab specific filtering [SearchTabsFilters] ;Solr:filtered[] = 'building:"main library"' ;Solr:filtered[] = "format:book" ; You can bind a permission to a search tab in this section. ; This controls to whom the tab should be displayed. ; Use the format tabName = permission. The permission should be configured ; in permissions.ini (who should see the tab) ; and permissionBehavior.ini (what should be displayed instead of the tab). ; Note that this ONLY controls whether or not the tab is displayed; if you wish to ; restrict actual searching, you will also need to make sure that the relevant ; controller(s) are blocking access using the same named permission. [SearchTabsPermissions] ;EIT = access.EITModule ;Primo = access.PrimoModule ; This section contains additional settings impacting Search Tabs behavior. [SearchTabsSettings] ; If set to true, result counts will be displayed next to inactive tabs (by performing ; searches in the background using AJAX). Default = false. ;show_result_counts = false ; Uncomment portions of this section to label searches from particular sources in the ; search history display. Keys are search backend names, values are labels for use in ; the user interface (subject to translation). [SearchHistoryLabels] ;Solr = Catalog ;Summon = Summon ;WorldCat = WorldCat ;SolrWeb = "Library Website" ;EDS = "EBSCO Discovery Service" ; Activate Captcha validation on select forms ; VuFind can use Captcha validation to prevent bots from using certain actions of ; your instance. ;[Captcha] ; Valid type values: ; - dumb (ask the user to reverse a random string; only recommended for testing) ; - figlet (generate a text-based message for the user to interpret) ; - image (generate a local image for the user to interpret) ; - interval (allow an action after a specified time has elapsed from session start ; or previous action) ; - recaptcha (use Google's ReCaptcha service) ; If multiple values are given, the user will be able to pick his favorite. ; See below for additional type-specific settings. ;types[] = recaptcha ; The "forms" setting controls the contexts in which CAPTCHA will be presented. It ; can be either a comma-separated list of forms, or "*" to display CAPTCHA on all ; supported forms. Valid forms values: ; changeEmail, changePassword, email, feedback, newAccount, passwordRecovery, ; sms, userComments ; Note: when "feedback" is active, Captcha can be conditionally disabled on a ; form-by-form basis with the useCaptcha setting in FeedbackForms.yaml. ;forms = * ; Figlet options, see: ; https://docs.laminas.dev/laminas-captcha/adapters/#laminascaptchafiglet ;figlet_length = 8 ; Image options, see: ; https://docs.laminas.dev/laminas-captcha/adapters/#laminascaptchaimage ;image_length = 8 ;image_width = 200 ;image_height = 50 ;image_fontSize = 24 ;image_dotNoiseLevel = 100 ;image_lineNoiseLevel = 5 ; Interval options: ; Minimum interval between actions (seconds, default is 60): ;action_interval = 60 ; Minimum time between session start and first action (seconds, default is ; action_interval): ;time_from_session_start = 0 ; See http://www.google.com/recaptcha for more information on reCAPTCHA and to ; create keys for your domain. Make sure that SSL settings are correct in the ; [Http] section, or your Captcha may not work. ;recaptcha_siteKey = "get your reCaptcha key at" ;recaptcha_secretKey = "https://www.google.com/recaptcha/admin/create" ; Valid theme values: dark, light ;recaptcha_theme = light ; This section can be used to display default text inside the search boxes, useful ; for instructions. Format: ; ; backend = Placeholder text ; ; You can use a "default" setting if you want a standard string displayed across ; all backends not otherwise specified. You can qualify backend names with a ; colon-delimited suffix if you wish to use special placeholders in combination ; with filtered search tabs (see [SearchTabsFilters] above). [SearchPlaceholder] ;default = "Enter search terms here..." ;Solr = "Search the catalog" ;Solr:filtered = "Search the filtered catalog" ;Summon = "Search Summon" ; This section controls VuFind's social features. [Social] ; Comments may be "enabled" or "disabled" (default = "enabled") comments = enabled ; Whether rating is enabled (true or false, default is false) rating = false ; Whether the user is allowed to remove a rating (true or false, default is true) remove_rating = true ; Favorite lists may be "enabled", "disabled", "public_only" or "private_only" ; (default = "enabled") ; The public_only/private_only settings restrict the type of list users may ; create. If you change this to a more restrictive option, it is your responsibility ; to update the user_list database table to update the status of existing lists. lists = enabled ; The following two settings are equivalent to default_limit / limit_options in ; searches.ini, but used to control the page sizes of lists of favorites: lists_default_limit = 20 ;lists_limit_options = 10,20,40,60,80,100 ; If multi page selection is activated one can select elements on one page in the favorite list ; and the elements will stay selected when switching to another page. multi_page_favorites_selection = true ; Choose which type of select_all checkbox should be shown in the favorite list. ; on_page - selects all elements on the current page ; global - selects all elements of the current list (only works if multi page selection is enabled) ; both - shows on_page and global (only works if multi page selection is enabled) ; none - disable select_all checkboxes checkbox_select_all_favorites_type = both ; This section controls what happens when a record title in a favorites list ; is clicked. VuFind can either embed the full result directly in the list using ; AJAX or can display it at its own separate URL as a full HTML page. ; See the [List] section of searches.ini for all available options. lists_view=full ; Tags may be "enabled" or "disabled" (default = "enabled") ; When disabling tags, don't forget to also turn off tag search in searches.ini. tags = enabled ; User list tags may be "enabled" or "disabled" (default = "disabled") listTags = disabled ; This controls the maximum length of a single tag; it should correspond with the ; field size in the tags database table. max_tag_length = 64 ; This controls whether tags are case-sensitive (true) or always forced to be ; represented as lowercase strings (false -- the default). case_sensitive_tags = false ; If this setting is set to false, users will not be presented with a search ; drop-down or advanced search link when searching/viewing tags. This is recommended ; when using a multi-backend system (e.g. Solr + Summon + WorldCat). If set to ; true, the standard Solr search options and advanced search link will be shown ; in the tag screens; this is recommended when using a Solr-only configuration. show_solr_options_in_tag_search = false ; These settings control VuFind's APIs. ; See https://vufind.org/wiki/development:apis for more information. [API] ; Description of the API displayed in the OpenAPI specification and Swagger UI ; (may contain Markdown, see https://spec.commonmark.org/): description = "The REST API provides access to search functions and records contained in the search index." ; URL pointing to a Terms of Service page (optional, default is none): ;termsOfServiceUrl = "https://something" [Sorting] ; By default, VuFind sorts text in a locale-agnostic way; if this setting is ; turned on, the current user-selected locale will impact sort order. ;use_locale_sorting = true