diff --git a/local/alpha/config/vufind/EmailProfiles.ini b/local/alpha/config/vufind/EmailProfiles.ini new file mode 100644 index 0000000000000000000000000000000000000000..3c4996cdaa0baf75b8d9e5fd175d221e3bcb4cc0 --- /dev/null +++ b/local/alpha/config/vufind/EmailProfiles.ini @@ -0,0 +1,23 @@ +;#################################################################### +;##################### DO NOT DELETE THIS HEADER #################### +;################### Leipzig University Library © 2015 ############## +; +; This is the default ALPHA-INI-file and inherits +; all the settings from the INI-file defined in [Parent_Config] which +; points to the default INI-file located in the folder vufind2/local +; + +[Parent_Config] +relative_path = ../../../config/vufind/EmailProfiles.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" + +; +; Add ALPHA-specific customization after this header. +; +;##################### DO NOT DELETE THIS HEADER #################### +;#################################################################### + diff --git a/local/alpha/config/vufind/permissions.ini b/local/alpha/config/vufind/permissions.ini new file mode 100644 index 0000000000000000000000000000000000000000..549310be873e2d46732544079721d76b574f48fe --- /dev/null +++ b/local/alpha/config/vufind/permissions.ini @@ -0,0 +1,22 @@ +;#################################################################### +;##################### DO NOT DELETE THIS HEADER #################### +;################### Leipzig University Library © 2015 ############## +; +; This is the default ALPHA-INI-file and inherits +; all the settings from the INI-file defined in [Parent_Config] which +; points to the default INI-file located in the folder vufind2/local +; + +[Parent_Config] +relative_path = ../../../config/vufind/permissions.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" + +; +; Add ALPHA-specific customization after this header. +; +;##################### DO NOT DELETE THIS HEADER #################### +;#################################################################### diff --git a/local/alpha/languages/PDA/de.ini b/local/alpha/languages/PDA/de.ini new file mode 100644 index 0000000000000000000000000000000000000000..8dd50712ff742b8cc0749a00574a49e95bb89bf4 --- /dev/null +++ b/local/alpha/languages/PDA/de.ini @@ -0,0 +1,18 @@ +;#################################################################### +;##################### DO NOT DELETE THIS HEADER #################### +;################### Leipzig University Library © 2015 ############## +; +; This is a default ALPHA-LANGUAGE-file and inherits +; all the settings from the LANGUAGE-file defined in @parent_ini which +; points to the default LANGUAGE-file located in the folder +; vufind2/local/languages +; + +@parent_ini = "../../languages/PDA/de.ini" + +; +; Add ALPHA-specific customization after this header. +; +;##################### DO NOT DELETE THIS HEADER #################### +;#################################################################### + diff --git a/local/alpha/languages/PDA/en.ini b/local/alpha/languages/PDA/en.ini new file mode 100644 index 0000000000000000000000000000000000000000..8fd031f83fe015a4dd290ba4517959961ddbda53 --- /dev/null +++ b/local/alpha/languages/PDA/en.ini @@ -0,0 +1,18 @@ +;#################################################################### +;##################### DO NOT DELETE THIS HEADER #################### +;################### Leipzig University Library © 2015 ############## +; +; This is a default ALPHA-LANGUAGE-file and inherits +; all the settings from the LANGUAGE-file defined in @parent_ini which +; points to the default LANGUAGE-file located in the folder +; vufind2/local/languages +; + +@parent_ini = "../../languages/PDA/en.ini" + +; +; Add ALPHA-specific customization after this header. +; +;##################### DO NOT DELETE THIS HEADER #################### +;#################################################################### + diff --git a/local/config/vufind/EmailProfiles.ini b/local/config/vufind/EmailProfiles.ini new file mode 100644 index 0000000000000000000000000000000000000000..80e6b70db53d6f61936f4b254d8c131e8eb95782 --- /dev/null +++ b/local/config/vufind/EmailProfiles.ini @@ -0,0 +1,31 @@ +; These Email Profiles can be used for mailing forms etc. + +;[Acquisition] +;to = team@finc.info +;from_unknown = team@finc.info +;subject_acquisition = "Ihr Auftrag: %s, %s" + +;[ReportError] +;to = team@finc.info +;to_name = "Finc Team" +;from = team@finc.info +;from_name = "Finc Team" +;subject = "Fehlermeldung für Titel %s (%s)" + +;[EmailHoldJournal] +;to = team@finc.info +;to_name = "Finc Team" +;from = team@finc.info +;from_name = "Finc Team" +;subject = "Zeitschriftenbestellung" + +; Profile for patron driven acquisition. +;[Pda] +; Destination email address to pda in-house service. +;to = team@finc.info +;to_name = "Finc Team" +; Return email address +;from = team@finc.info +;from_name = "Finc Team" +; Text snippet for email subject. +;subject = "Ihr Auftrag: %s, %s, %s" diff --git a/local/config/vufind/config.ini b/local/config/vufind/config.ini index cf6a647f31d9737df8a3ddcb5bc5990ca4dba45f..fb41674fd38868890228618738f90f95b93c7ef6 100644 --- a/local/config/vufind/config.ini +++ b/local/config/vufind/config.ini @@ -1447,6 +1447,36 @@ max_tag_length = 64 ;isil[] = "DE-15-292" ;bik = "952000-4" +; This section contains all site related customization for finc +;[CustomSite] +; Combine more formats to one css class. If false first format entry will taken +; to display icon symbol +;combinedIcons = false +;namespace = ubl +; +; Fields of study used as required information in forms such as Acquisiton and PDA: +;field_of_study[] = misc +;field_of_study[] = bio +;field_of_study[] = geo +;field_of_study[] = hist +;field_of_study[] = art +;field_of_study[] = ling +;field_of_study[] = math +;field_of_study[] = med +;field_of_study[] = mus +;field_of_study[] = nat +;field_of_study[] = paed +;field_of_study[] = phil +;field_of_study[] = pol +;field_of_study[] = psy +;field_of_study[] = jur +;field_of_study[] = soz +;field_of_study[] = sport +;field_of_study[] = vet +;field_of_study[] = theo +;field_of_study[] = ethno +;field_of_study[] = wiwi + ; This section contains all index related customizations for finc [CustomIndex] ; The indexExtension allows to select library specific index fields (e.g. @@ -1479,7 +1509,7 @@ localMarcFieldOfLibraryMapping[] = "bas:985" ; localMarcFieldOfLibraryMapping ;localMarcFieldOfLibraryNamespace = "ubl" -; This section configures the form for patrdon driven acquisition suggestions. +; This section configures the form for acquisition suggestions. ;[Acquisition] ; Email address to receive the acquisition suggestions ;to = erwerbungsservice@ub.uni-leipzig.de @@ -1487,10 +1517,6 @@ localMarcFieldOfLibraryMapping[] = "bas:985" ;from_unknown = katalog@ub.uni-leipzig.de ; Email subject ;subject_acquisition = "Ihr Auftrag: %s, %s" -; Subjects that are shown in a dropdown menu on the acquisition form (the values will -; be translated in the frontend and the email-templates, so make sure you have the -; translations in your language files) -;nepcategories = nep_misc, nep_bio, nep_geo, nep_hist, nep_art, nep_ling, nep_math, nep_med, nep_mus, nep_nat, nep_paed, nep_phil, nep_pol, nep_psy, nep_jur, nep_soz, nep_sport, nep_vet, nep_theo, nep_ethno, nep_wiwi ; This section allows to set resolver for certain content types for Marc field 856 ; set in subfield $2 (refs #6554 and http://www.loc.gov/marc/bibliographic/bd856.html) diff --git a/local/config/vufind/permissions.ini b/local/config/vufind/permissions.ini new file mode 100644 index 0000000000000000000000000000000000000000..7a5212f3f7faaf01aa018fe4a63870d4b9c5da17 --- /dev/null +++ b/local/config/vufind/permissions.ini @@ -0,0 +1,126 @@ +; This file controls how permissions are assigned to roles within VuFind. +; +; Each section of the file contains a group of rules that grant permissions. The name +; of the section is unimportant as long as each section has a unique name. This +; section contains several keys: +; +; require - Set to 'ALL' to require all conditions in the section to be met in +; order to grant the permission(s). Set to 'ANY' to allow any one or +; more of the conditions to grant the permission(s). Defaults to 'ALL' +; if unset. Note that this rule is used for combining the output of +; permission provider services. When a single permission provider +; accepts multiple lines of configuration, the way those lines are +; combined may vary from provider to provider (see below). +; permission - The name(s) of the permission(s) to grant. May be a single string or +; an array of strings. +; +; Any other keys in the section should be the names of permission provider services. +; The values associated with these keys will be passed along to the services. +; You can define your own permission providers, or use some of the following: +; +; ipRange - Grant the permission to the single IP adresse or to the range. +; Accepts a single IP adresse or a range with a minus character without +; blanks as separator. Also partial addresses can be used (e.g. 192.168 +; denotes 192.168.0.0-192.168.255.255) and IPv6 addresses are also +; supported (unless PHP is compiled with IPv6 disabled). +; ipRegEx - Grant the permission to IP addresses matching the provided regular +; expression(s). Accepts a string or an array; if an array is passed, +; permission will be granted if ANY one of the expressions matches. +; role - Grant the permission automatically to the role or roles specified +; (accepts a string or an array). Note that VuFind uses 'guest' for +; logged-out users and 'loggedin' for all logged-in users. You may +; define additional roles with custom code. +; serverParam - Grant the permission if request server params match the given rules. +; Accepts a string or an array; if an array is passed permission will +; be granted if ALL of the rules match. Rules are specified as +; <server param name> [modifier] <value> [<value 2> ... <value n>] +; with optional modifier ~ (match instead of string comparison, values +; are treated as regular expressions), ! (not) or !~ (no match). Only +; one of the values must match (OR). +; shibboleth - Same as serverParam with support for Shibboleth multi-valued +; attributes (values separated by semicolons). The IdP entityId can be +; referenced with idpentityid. Please note that only checking the IdP +; entityId is dangerous (no authorization, anybody with a valid login +; gets the permission) so this should always be combined with a second +; rule that checks an attribute. +; username - Grant the permission to logged-in users whose usernames match the +; specified value(s). Accepts a string or an array. +; +; Example configuration (grants the "sample.permission" permission to users named +; admin1 or admin2, or anyone coming from the IP addresses 1.2.3.4 or 1.2.3.5): +; +; [sample.rules] +; require = ANY +; username[] = admin1 +; username[] = admin2 +; ipRegEx = "/1\.2\.3\.4|1\.2\.3\.5/" +; ipRange[] = "1.2.3.4" +; ipRange[] = "1.2.3.7-1.2.5.254" +; permission = sample.permission +; +; List of permissions that you may wish to configure: +; +; access.AdminModule - Controls access to the admin panel (if enabled in config.ini) +; access.DebugMode - Allows ?debug=true GET parameter to turn on debug mode +; access.EDSExtendedResults - Controls visibility of protected EDS results +; access.EITModule - Controls access to the EBSCO EIT module (if active) +; access.StaffViewTab - Controls access to the staff view tab in record mode +; access.SummonExtendedResults - Controls visibility of protected Summon results + +; Configuration for permitting PDA form action +;[default.PDA] +;role = loggedin +;catUserType = UBL:pdaAccessGranted +;permission = access.PDAForm + +; Show staff view for all users by default +[default.StaffViewTab] +role[] = guest +role[] = loggedin +permission = access.StaffViewTab + +; Example for dynamic debug mode +;[default.DebugMode] +;username[] = admin +;permission = access.DebugMode + +; Example for EDS +;[default.EDSModule] +;ipRange[] = "127.0.0.1" +;ipRange[] = "192.168.11" +;permission = access.EDSExtendedResults + +; Examples for Shibboleth +; +; Only users that have either common-lib-terms and entityid from idp1 or +; member and entityid from idp2 may have access to EITModule +;[shibboleth.EITModule1] +;shibboleth[] = "entityid https://testidp1.example.org/idp/shibboleth" +;shibboleth[] = "affiliation member@example.org" +;permission = access.EITModule +; +;[shibboleth.EITModule2] +;shibboleth[] = "entityid https://testidp2.example.org/idp/shibboleth" +;shibboleth[] = "entitlement urn:mace:dir:entitlement:common-lib-terms" +;permission = access.EITModule +; +; Only users with a staff affiliation can access the staff view tab +;[shibboleth.StaffView] +;shibboleth = "affiliation staff@example.org" +;permission = access.StaffViewTab + +; Example for conditional filters (see [ConditionalHiddenFilters] in +; searches.ini for details) +;[conditionalFilter.MyUniversity] +;require = ANY +;ipRange[] = 1.2.3.1-1.2.3.254 +;role = loggedin +;permission = conditionalFilter.MyUniversity + +; Examples for PrimoCentral (see [Institutions] section +; in Primo.ini for details) +;[default.primoOnCampusRule] +;require = ANY +;ipRange[] = 1.2.3.1-1.2.3.254 ; for the IP-range of your university's network +;role = loggedin ; if you want to allow authenticated users to use Primo module +;permission = primoOnCampus.MYINSTITUTION diff --git a/local/dev/config/vufind/EmailProfiles.ini.sample b/local/dev/config/vufind/EmailProfiles.ini.sample new file mode 100644 index 0000000000000000000000000000000000000000..5b1ada9133ff52b82150b8259ffe2c9c7bb70d60 --- /dev/null +++ b/local/dev/config/vufind/EmailProfiles.ini.sample @@ -0,0 +1,22 @@ +;#################################################################### +;##################### DO NOT DELETE THIS HEADER #################### +;################### Leipzig University Library © 2015 ############## +; +; This is the default DEV-INI-file and inherits +; all the settings from the INI-file defined in [Parent_Config] which +; points to the default INI-file located in the folder vufind2/local +; + +[Parent_Config] +relative_path = ../../../config/vufind/EmailProfiles.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 = "Acquisition" + +; +; Add DEV-specific customization after this header. +; +;##################### DO NOT DELETE THIS HEADER #################### +;#################################################################### diff --git a/local/dev/config/vufind/permissions.ini.sample b/local/dev/config/vufind/permissions.ini.sample new file mode 100644 index 0000000000000000000000000000000000000000..e2893bc5b94f28da10c42bd13e1e4b7c37492ef8 --- /dev/null +++ b/local/dev/config/vufind/permissions.ini.sample @@ -0,0 +1,22 @@ +;#################################################################### +;##################### DO NOT DELETE THIS HEADER #################### +;################### Leipzig University Library © 2015 ############## +; +; This is the default DEV-INI-file and inherits +; all the settings from the INI-file defined in [Parent_Config] which +; points to the default INI-file located in the folder vufind2/local +; + +[Parent_Config] +relative_path = ../../../config/vufind/permissions.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" + +; +; Add DEV-specific customization after this header. +; +;##################### DO NOT DELETE THIS HEADER #################### +;#################################################################### diff --git a/local/dev/languages/PDA/de.ini b/local/dev/languages/PDA/de.ini new file mode 100644 index 0000000000000000000000000000000000000000..aeb4c2a27c9f8af9351edd9419cfb2defeb75a57 --- /dev/null +++ b/local/dev/languages/PDA/de.ini @@ -0,0 +1,18 @@ +;#################################################################### +;##################### DO NOT DELETE THIS HEADER #################### +;################### Leipzig University Library © 2015 ############## +; +; This is a default DEV-LANGUAGE-file and inherits +; all the settings from the LANGUAGE-file defined in @parent_ini which +; points to the default LANGUAGE-file located in the folder +; vufind2/local/languages +; + +@parent_ini = "../../languages/PDA/de.ini" + +; +; Add DEV-specific customization after this header. +; +;##################### DO NOT DELETE THIS HEADER #################### +;#################################################################### + diff --git a/local/dev/languages/PDA/en.ini b/local/dev/languages/PDA/en.ini new file mode 100644 index 0000000000000000000000000000000000000000..4623eaafd29dd2d4ee60a14975d270cd6c39236e --- /dev/null +++ b/local/dev/languages/PDA/en.ini @@ -0,0 +1,18 @@ +;#################################################################### +;##################### DO NOT DELETE THIS HEADER #################### +;################### Leipzig University Library © 2015 ############## +; +; This is a default DEV-LANGUAGE-file and inherits +; all the settings from the LANGUAGE-file defined in @parent_ini which +; points to the default LANGUAGE-file located in the folder +; vufind2/local/languages +; + +@parent_ini = "../../languages/PDA/en.ini" + +; +; Add DEV-specific customization after this header. +; +;##################### DO NOT DELETE THIS HEADER #################### +;#################################################################### + diff --git a/local/languages/PDA/de.ini b/local/languages/PDA/de.ini new file mode 100644 index 0000000000000000000000000000000000000000..6dbde3552ba1feafde1863e16db3c28010d1709f --- /dev/null +++ b/local/languages/PDA/de.ini @@ -0,0 +1,61 @@ +; ----- +; field of study +;------ +fos_misc = "Allgemeines" +fos_bio = "Biologie" +fos_geo = "Geographie, Geowissenschaften" +fos_hist = "Geschichte" +fos_art = "Kunst" +fos_ling = "Literatur- und Sprachwissenschaft" +fos_math = "Mathematik, Informatik" +fos_med = "Medizin" +fos_mus = "Musik" +fos_nat = "Naturwissenschaften, Chemie, Physik, Technik" +fos_paed = "Pädagogik" +fos_phil = "Philosophie" +fos_pol = "Politik" +fos_psy = "Psychologie" +fos_jur = "Recht" +fos_soz = "Soziologie" +fos_sport = "Sport" +fos_vet = "Tiermedizin" +fos_theo = "Theologie" +fos_ethno = "Volks- und Völkerkunde" +fos_wiwi = "Wirtschaftswissenschaft" + +; ----- +; pda +;------ + +Acquisition = "Erwerbung" + +Please purchase = "Bitte beschaffen" + +pda_initial_text = "Dieser Titel ist noch nicht im Bestand der UB Leipzig. Studierende und Angehörige der Universität Leipzig können gebührenfrei einen Beschaffungsauftrag für die Universitätsbibliothek auslösen." +pda_restriction_text = "Dieser Dienst steht nur Studierenden und Angehörigen der Universität Leipzig zur Verfügung." +pda_interlibraray_loan_text = "Alternativ können Sie prüfen, ob der Titel über die Fernleihe zur Verfügung gestellt werden kann." +pda_order_text = "Sie lösen für diesen Titel einen Beschaffungsauftrag aus." +pda_price_text = "Der Titel kostet die Universitätsbibliothek Leipzig etwa :::PRICE:::." +pda_delivery_text = "Die Lieferzeit beträgt in der Regel <strong>zwei bis vier Wochen</strong>." + +pda_form_statement_label = "Bitte begründen Sie Ihren Vorschlag" +pda_form_field_of_study_label = "Fachgebiet" +pda_form_field_of_study_text = "Bitte wählen Sie ein Fachgebiet" +pda_form_interlibrary_button = "Fernleihe prüfen" +pda_form_proposal_label = "Ihr Erwerbungsvorschlag" + +pda_tab_order_button = "Beschaffungsauftrag auslösen" +pda_tab_interlibrary_button = "Verfügbarkeit über Fernleihe prüfen" +pda_open_new_window = "Hinweis: Die Verfügbarkeit per Fernleihe wird extern, in einem neuen Fenster geprüft." + +pda_form_title = "Erwerbungsvorschlag" +pda_form_subtitle = "Ihr Erwerbungsvorschlag" +pda_form_suggestions_limit = "Bitte senden Sie pro Formular nur einen Erwerbungsvorschlag." + +pda_send_success = "Ihr Erwerbungsvoschlag wurde erfolgreich an die betreffende Dienststelle übermittelt." + +pda_error_statement_blank = "Bitte geben Sie eine Begründung an." +pda_error_proposal_blank = "Bitte geben Sie einen Erwerbungsvorschlag an." +pda_error_field_of_study_blank = "Bitte geben Sie ein Fachgebiet an." + +note_mandatory_fields = "Anmerkung: Mit einem * markierte Felder müssen ausgefüllt werden." \ No newline at end of file diff --git a/local/languages/PDA/en.ini b/local/languages/PDA/en.ini new file mode 100644 index 0000000000000000000000000000000000000000..38bb4ddb61a5f498105277d526c1696433da2d81 --- /dev/null +++ b/local/languages/PDA/en.ini @@ -0,0 +1,61 @@ +; ----- +; field of study +;------ +fos_misc = "General" +fos_bio = "Biology" +fos_geo = "Geography, Geosciences" +fos_hist = "History" +fos_art = "Arts" +fos_ling = "Philology and Linguistics" +fos_math = "Mathematics and Computer Science" +fos_med = "Medicine" +fos_mus = "Music" +fos_nat = "Natural sciences, Chemistry, Physics, Engineering" +fos_paed = "Education" +fos_phil = "Philosophy" +fos_pol = "Political Science" +fos_psy = "Psychology" +fos_jur = "Law" +fos_soz = "Sociology" +fos_sport = "Sport Science" +fos_vet = "Veterinary Medicine" +fos_theo = "Theology" +fos_ethno = "Ethnology" +fos_wiwi = "Economics" + +; ----- +; pda +;------ + +Acquisition = "Acquisition" + +Please purchase = "Please purchase" + +pda_initial_text = "This title is not currently held by the Leipzig University Library. Students and members of Leipzig University may initiate a purchase free of charge." +pda_restriction_text = "This services is only available for students and members of Leipzig University." +pda_interlibraray_loan_text = "You may also check if this title is available via inter-library loan." +pda_order_text = "You are about to initiate a purchase order for this title." +pda_price_text = "The costs of approximately :::PRICE::: will be covered by the Leipzig University Library." +pda_delivery_text = "The delivery time frame is about <strong>2-4 weeks</strong>." + +pda_form_statement_label = "Please give reasons for your suggestion" +pda_form_field_of_study_label = "Field of study" +pda_form_field_of_study_text = "Please select a field of study" +pda_form_interlibrary_button = "Check interlibrary loans" +pda_form_proposal_label = "Your acquisition proposal" + +pda_tab_order_button = "Initiate purchase order" +pda_tab_interlibrary_button = "Check availability via interlibrary loans" +pda_open_new_window = "Note: Interlibrary loan availability will be checked in a new window." + +pda_form_title = "Suggestions for acquisition" +pda_form_subtitle = "Your acquisition proposal" +pda_form_suggestions_limit = "Please send only one acquisition proposal at once." + +pda_send_success = "Your proposal for acquisition has been sent successfully." + +pda_error_statement_blank = "Reasons for suggestion must not be blank." +pda_error_proposal_blank = "Proposal for acquisition must not be blank." +pda_error_field_of_study_blank = "Field of study must not be blank." + +note_mandatory_fields = "Please note: All fields marked with an asterik * are required." diff --git a/local/languages/de.ini b/local/languages/de.ini index 8780fb5c3e9e44abee3bdc3ec491216b32c804e5..a516d862274a1bf1e6ce6a385a7e1a42ade895aa 100644 --- a/local/languages/de.ini +++ b/local/languages/de.ini @@ -1,8 +1,8 @@ ; Formate entsprechend der format_map_de15.properties Book = Buch eBook = E-Book -ElectronicBook = E-Book -ElectronicBookPart = "E-Book-Kapitel" +ElectronicBook = E-Book +ElectronicBookPart = "E-Book-Kapitel" ElectronicJournal = "Elektronische Zeitschrift" Electronicjournal = "Elektronische Zeitschrift" ElectronicSerial = "Elektronische Zeitschrift" @@ -1768,34 +1768,6 @@ Zhuang = Zhuang Zulu = Zulu Zuni = Zuni -nep_misc = "Allgemeines" -nep_bio = "Biologie" -nep_geo = "Geographie, Geowissenschaften" -nep_hist = "Geschichte" -nep_art = "Kunst" -nep_ling = "Literatur- und Sprachwissenschaft" -nep_math = "Mathematik, Informatik" -nep_med = "Medizin" -nep_mus = "Musik" -nep_nat = "Naturwissenschaften, Chemie, Physik, Technik" -nep_paed = "Pädagogik" -nep_phil = "Philosophie" -nep_pol = "Politik" -nep_psy = "Psychologie" -nep_jur = "Recht" -nep_soz = "Soziologie" -nep_sport = "Sport" -nep_vet = "Tiermedizin" -nep_theo = "Theologie" -nep_ethno = "Volks- und Völkerkunde" -nep_wiwi = "Wirtschaftswissenschaft" - -Category = "Fachgebiet" -Check interlibrary loans = "Fernleihe prüfen" -Check availability via interlibrary loans = "Verfügbarkeit über Fernleihe prüfen" -Initiate purchase order = "Beschaffungsauftrag auslösen" -Please purchase = "Bitte beschaffen" - ;------ ;missing lines from en.ini (compiled from files in /usr/local/vufind2/languages, /usr/local/vufind2/local/dev/languages) ;------ @@ -1827,19 +1799,6 @@ guser_dunning_process = "User account is blocked due to a dunning process" ################### finc-spezifisch hinzugefuegt ########################## p. = S. -Suggestions for acquisition = Erwerbungsvorschlag -Your acquisition proposal = Ihr Erwerbungsvorschlag -Subject area = Fachgebiet -Please select a subject area = Bitte wählen Sie ein Fachgebiet -Please give reasons for your suggestion = Bitte begründen Sie Ihren Vorschlag -Please send only one form per acquisition proposal. = Bitte senden Sie pro Formular nur einen Erwerbungsvorschlag. -acquisition_success = Ihr Erwerbungsvorschlag wurde erfolgreich gesendet. -note_mandatory_fields = Anmerkung: Mit einem * markierte Felder müssen ausgefüllt werden. -Reasons for suggestion not be blank = Bitte geben Sie eine Begründung an. -Proposal for acquisition should not be blank = Bitte geben Sie einen Erwerbungsvorschlag an. -Subject area should not be blank = Bitte geben Sie ein Fachgebiet an. -acquisition_success = Ihr Erwerbungsvorschlag wurde erfolgreich gesendet. - APAAI Citation = APA Zitierstil MLAAI Citation = MLA Zitierstil ISBD Citation = ISBD Zitierstil @@ -1856,3 +1815,10 @@ footer_ezb = "Elektronische Zeitschriftenbibliothek (EZB)" footer_kvk = "Karlsruher Virtueller Katalog (KVK)" footer_dbis = "Datenbankinformationssystem (DBIS)" footer_nwb = "nwb-Datenbank" + +; source providers +sid_3 = "Nielsen" +sid_51 = "VuB" + +; Tab to Close-text for closing FNDTN ToolTips +Tap to close = "Zum Schliessen antippen" diff --git a/local/languages/en.ini b/local/languages/en.ini index 7d21ed992294b2caf342a34beda9d920fca07bdf..4be81e701aa3cc5d8387dfee40bfb2b04a60c107 100644 --- a/local/languages/en.ini +++ b/local/languages/en.ini @@ -669,31 +669,6 @@ DE-Zi4 = "Zittau/Görlitz University of Applied Sciences" DE-Zwi2 = "University of Applied Sciences Zwickau" ;Dresden SLUB = "Sächsische Landesbibliothek & Staats- und Universitätsbibliothek Dresden (SLUB)" -;select fields for NE-Print -nep_misc = "Micellaneous" -nep_bio = "Biology" -nep_geo = "Geography, Geosciences" -nep_hist = "History" -nep_art = "Arts" -nep_ling = "Literary and linguistics" -nep_math = "Mathematics, Computer science" -nep_med = "Human medicine" -nep_mus = "Music" -nep_nat = "Natural science, Chemistry, Physic, Engineering" -nep_paed = "Pedagogy" -nep_phil = "Philosophy" -nep_pol = "Politic" -nep_psy = "Psychology" -nep_jur = "Law" -nep_soz = "Sociology" -nep_sport = "Sport science" -nep_vet = "Veterinary medicine" -nep_theo = "Theology" -nep_ethno = "Ethnology" -nep_wiwi = "Economics" - -Category = "Subject" - ;------ ;missing lines from de.ini (compiled from files in /usr/local/vufind2/languages, /usr/local/vufind2/local/dev/languages) ;------ @@ -1763,31 +1738,18 @@ Zapotec = Zapotec Zhuang = Zhuang Zulu = Zulu Zuni = Zuni -Check interlibrary loans = Check interlibrary loans -Check availability via interlibrary loans = Check availability via interlibrary loans -Initiate purchase order = Initiate purchase order -Please purchase = Please purchase - ################### finc-spezifisch hinzugefuegt ########################## p. = p. -Suggestions for acquisition = Suggestions for acquisition -Your acquisition proposal = Your acquisition proposal -Subject area = Subject area -Please select a subject area = Please select a subject area -Please give reasons for your suggestion = Please give reasons for your suggestion -Please send only one form per acquisition proposal. = Please send only one form per acquisition proposal. -acquisition_success = Your proposal for acquisition has been sent successfully. -note_mandatory_fields = Please note: All fields marked with an asterik * are required. -Reasons for suggestion not be blank = Reasons for suggestion not be blank -Proposal for acquisition should not be blank = Proposal for acquisition should not be blank -Subject area should not be blank = Subject area should not be blank -acquisition_success = Your proposal for acquisition has been sent successfully. APAAI Citation = APA Citation MLAAI Citation = MLA Citation ISBD Citation = ISBD Citation +;source provider +sid_3 = "Nielsen" +sid_51 = "VuB" + ; Branding for Wiso etc SID48 = WISO - Online-Datenbank für Studium und Wissenschaft @@ -1797,3 +1759,6 @@ footer_ezb = "Electronic Journals Library (EZB)" footer_kvk = "Karlsruhe Virtual Catalog (KVK)" footer_dbis = "Database Information System (DBIS)" footer_nwb = "Database nwb" + +; Tab to Close-text for closing FNDTN ToolTips +Tap to close = "Tap to close" \ No newline at end of file diff --git a/module/finc/config/module.config.php b/module/finc/config/module.config.php index 396d3e41314102d725bd2d26107799db7a418be6..3c35a3e05f643838d26d71ee5e2c29a46d502c52 100644 --- a/module/finc/config/module.config.php +++ b/module/finc/config/module.config.php @@ -8,8 +8,11 @@ $config = [ ] ], 'controllers' => [ + 'factories' => [ + 'record' => 'finc\Controller\Factory::getRecordController' + ], 'invokables' => [ - 'my-research' => 'finc\Controller\MyResearchController', + 'my-research' => 'finc\Controller\MyResearchController' ], ], 'vufind' => [ @@ -26,6 +29,7 @@ $config = [ 'solrdefault' => 'finc\RecordDriver\Factory::getSolrDefault', 'solrmarc' => 'finc\RecordDriver\Factory::getSolrMarc', 'solrmarcfinc' => 'finc\RecordDriver\Factory::getSolrMarcFinc', + 'solrmarcfincpda' => 'finc\RecordDriver\Factory::getSolrMarcFincPDA', 'solrmarcremote' => 'finc\RecordDriver\Factory::getSolrMarcRemote', 'solrmarcremotefinc' => 'finc\RecordDriver\Factory::getSolrMarcRemoteFinc', 'solrai' => 'finc\RecordDriver\Factory::getSolrAI', @@ -35,6 +39,7 @@ $config = [ 'invokables' => [ 'additional' => 'finc\RecordTab\Additional', 'staffviewai' => 'finc\RecordTab\StaffViewAI', + 'acquisitionpda' => 'finc\RecordTab\AcquisitionPDA', ], ], ], @@ -65,6 +70,21 @@ $config = [ ], 'defaultTab' => null, ], + 'finc\RecordDriver\SolrMarcFincPDA' => [ + 'tabs' => [ + /* 'Holdings' => 'HoldingsILS',*/ + 'AcquisitionPDA' => 'AcquisitionPDA', + 'Description' => 'Description', + 'TOC' => 'TOC', 'UserComments' => 'UserComments', + 'Reviews' => 'Reviews', 'Excerpt' => 'Excerpt', + 'Preview' => 'preview', + 'HierarchyTree' => 'HierarchyTree', 'Map' => 'Map', + 'Similar' => 'SimilarItemsCarousel', + 'Details' => 'StaffViewMARC', + 'Additional' => 'Additional', + ], + 'defaultTab' => null, + ], 'finc\RecordDriver\SolrAI' => [ 'tabs' => [ 'Holdings' => 'HoldingsILS', 'Description' => 'Description', @@ -80,27 +100,36 @@ $config = [ ], ], ], + // Authorization configuration: + 'zfc_rbac' => [ + 'vufind_permission_provider_manager' => [ + 'factories' => [ + 'catUserType' => 'finc\Role\PermissionProvider\Factory::getCatUserType', + ], + ], + ], +]; + +$nonTabRecordActions = [ + 'PDA' ]; + +// Define record view routes -- route name => controller +// Define record view routes once again to add new nonTabRecordActions +$recordRoutes = [ + 'record' => 'Record' +]; + + // Define static routes -- Controller/Action strings $staticRoutes = [ 'MyResearch/Acquisition' ]; -// Build static routes -foreach ($staticRoutes as $route) { - list($controller, $action) = explode('/', $route); - $routeName = str_replace('/', '-', strtolower($route)); - $config['router']['routes'][$routeName] = [ - 'type' => 'Zend\Mvc\Router\Http\Literal', - 'options' => [ - 'route' => '/' . $route, - 'defaults' => [ - 'controller' => $controller, - 'action' => $action, - ] - ] - ]; -} +$routeGenerator = new \VuFind\Route\RouteGenerator($nonTabRecordActions); +$routeGenerator->addRecordRoutes($config, $recordRoutes); +//$routeGenerator->addDynamicRoutes($config, $dynamicRoutes); +$routeGenerator->addStaticRoutes($config, $staticRoutes); return $config; diff --git a/module/finc/src/finc/Controller/Factory.php b/module/finc/src/finc/Controller/Factory.php new file mode 100644 index 0000000000000000000000000000000000000000..8396c31f817a3ea9cf417a54c8f31f8c82ba5eed --- /dev/null +++ b/module/finc/src/finc/Controller/Factory.php @@ -0,0 +1,57 @@ +<?php +/** + * Factory for controllers. + * + * PHP version 5 + * + * Copyright (C) Villanova University 2014. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind + * @package View_Helpers + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org/wiki/development Wiki + */ +namespace finc\Controller; +use Zend\ServiceManager\ServiceManager; + +/** + * Factory for controllers. + * + * @category VuFind + * @package View_Helpers + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org/wiki/development Wiki + * + * @codeCoverageIgnore + */ +class Factory +{ + /** + * Construct the RecordController. + * + * @param ServiceManager $sm Service manager. + * + * @return RecordController + */ + public static function getRecordController(ServiceManager $sm) + { + return new RecordController( + $sm->getServiceLocator()->get('VuFind\Config')->get('config') + ); + } +} \ No newline at end of file diff --git a/module/finc/src/finc/Controller/MyResearchController.php b/module/finc/src/finc/Controller/MyResearchController.php index 03264a411cd4332f6cf72fd4bb20c375ceffe03f..d7d389f6aaac81968f704fad90826a6d8b4eb38f 100644 --- a/module/finc/src/finc/Controller/MyResearchController.php +++ b/module/finc/src/finc/Controller/MyResearchController.php @@ -28,18 +28,18 @@ namespace finc\Controller; use Zend\Validator\StringLength, - Zend\I18n\Validator\Int, + Zend\I18n\Validator\IsInt, finc\Mailer\Mailer; /** - * Controller for the acqusition area. + * Controller for the user account area. * - * @category VuFind2 + * @category VuFind * @package Controller * @author Demian Katz <demian.katz@villanova.edu> * @author Gregor Gawol <gawol@ub.uni-leipzig.de> * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License - * @link http://vufind.org Main Site + * @link https://vufind.org Main Site */ class MyResearchController extends \VuFind\Controller\MyResearchController { @@ -59,21 +59,11 @@ class MyResearchController extends \VuFind\Controller\MyResearchController */ private function _getSubjectList() { - if (count($this->_subjectlist) <= 0) { - $this->_subjectlist = explode( - ",", - (isset($this->getConfig()->Acquisition->nepcategories) - ? $this->getConfig()->Acquisition->nepcategories : '') + $this->_subjectlist = (isset($this->getConfig()->CustomSite->subject) + ? $this->getConfig()->CustomSite->subject->toArray() : [] ); - - foreach ($this->_subjectlist as $key => $subject) { - // trim subject to avoid translation errors with preceding/trailing - // whitespaces - $this->_subjectlist[$key] = trim($subject); - } } - return $this->_subjectlist; } @@ -112,7 +102,7 @@ class MyResearchController extends \VuFind\Controller\MyResearchController */ protected function processAcquisition($user) { - $validatorAlnum = new Int(); + $validatorAlnum = new IsInt(); $validatorString = new StringLength(['min' => 1]); $valueArr = []; @@ -126,19 +116,19 @@ class MyResearchController extends \VuFind\Controller\MyResearchController if ($validatorAlnum->isValid($subject)) { $this->flashMessenger()->addMessage( - 'Subject area should not be blank', 'error' + 'PDA::pda_error_subject_blank', 'error' ); $error = true; } if (!$validatorString->isValid($proposal)) { $this->flashMessenger()->addMessage( - 'Reasons for suggestion not be blank', 'error' + 'PDA::pda_error_proposal_blank', 'error' ); $error = true; } if (!$validatorString->isValid($reasons)) { $this->flashMessenger()->addMessage( - 'Proposal for acquisition should not be blank', 'error' + 'PDA::pda_error_statement_blank', 'error' ); $error = true; } @@ -176,7 +166,7 @@ class MyResearchController extends \VuFind\Controller\MyResearchController $config->Acquisition->subject_acquisition, $this->translate($subject), $user->username ) - : $this->translate('Suggestions for acquisition') + : $this->translate('PDA::pda_form_title') ); $from_unknown = (isset($config->Acquisition->from_unknown) ? $config->Acquisition->from_unknown : ''); @@ -201,7 +191,7 @@ class MyResearchController extends \VuFind\Controller\MyResearchController $message_html, $message_text ); - $this->flashMessenger()->addMessage('acquisition_success', 'info'); + $this->flashMessenger()->addMessage('PDA::pda_send_success', 'info'); } catch (MailException $e) { $this->flashMessenger()->addMessage($e->getMessage(), 'error'); } diff --git a/module/finc/src/finc/Controller/PdaTrait.php b/module/finc/src/finc/Controller/PdaTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..1110c535e53de21bd132136192724bdf92e8ca36 --- /dev/null +++ b/module/finc/src/finc/Controller/PdaTrait.php @@ -0,0 +1,247 @@ +<?php +/** + * PDA Trait + * + * PHP version 5 + * + * Copyright (C) Villanova University 2010. + * Copyright (C) Leipzig University Library 2015. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind + * @package Controller + * @author Demian Katz <demian.katz@villanova.edu> + * @author Frank Morgner <morgnerf@ub.uni-leipzig.de> + * @author André Lahmann <lahmann@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org Main Site + */ +namespace finc\Controller; +use VuFind\Exception\Mail as MailException, + Zend\Validator\StringLength, + Zend\Validator\Identical, + finc\Mailer\Mailer; + +/** + * PDA Trait + * + * @category VuFind + * @package Controller + * @author Demian Katz <demian.katz@villanova.edu> + * @author Frank Morgner <morgnerf@ub.uni-leipzig.de> + * @author André Lahmann <lahmann@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org Main Site + */ +trait PdaTrait +{ + /** + * Profile to be used for email + */ + //const PDA_EMAIL_PROFILE = 'Pda'; + + /** + * PDA action - controller method + * + * @todo Open issue: Implementation of accession/domain check of user by PAIA. + * + * @return \Zend\View\Model\ViewModel + */ + public function pdaAction() + { + // Check with the set accessPermission if the user is authorized to use PDA + $accessPermission = 'access.PDAForm'; + + if (!($user = $this->getUser())) { + return $this->forceLogin(); + } + + $auth = $this->getAuthorizationService(); + if (!$auth) { + throw new \Exception('Authorization service missing'); + } + + if (!$auth->isGranted($accessPermission)) { + $this->flashMessenger()->addMessage('PDA::pda_restriction_text', 'error'); + $view = $this->createViewModel(); + $view->setTemplate('record/pdamessage'); + return $view; + } + + // User is authorized to use PDA + + // Start collecting params for PDA + $params = [ + 'username' => trim($user->username), + 'email' => trim($user->email), + 'firstname' => trim($user->firstname), + 'lastname' => trim($user->lastname) + ]; + + // Create view + $view = $this->createPDAEmailViewModel(); + + // Set up reCaptcha + //todo: testen! + $view->useRecaptcha = $this->recaptcha()->active('pda'); + + // Process form submission + if ($this->formWasSubmitted('submit', $view->useRecaptcha)) { + + // Collect the data submitted by form + $params['field_of_study'] = !empty($view->pdaFieldOfStudy) ? $view->pdaFieldOfStudy : ''; + $params['statement'] = !empty($view->pdaStatement) ? $view->pdaStatement : ''; + + // Validate data submitted by form + $isValid = true; + $validatorStrLength = new StringLength(['min' => 10]); + $validatorIdentical = new Identical('-1'); + + if (!$validatorStrLength->isValid($params['statement'])) { + $this->flashMessenger() + ->addMessage('PDA::pda_error_statement_blank', 'error'); + $isValid = false; + } + if ($validatorIdentical->isValid($params['field_of_study'])) { + $this->flashMessenger() + ->addMessage('PDA::pda_error_field_of_study_blank', 'error'); + $isValid = false; + } + if (!$isValid) { + $view->setTemplate('record/pdaform'); + return $view; + } + + // All params are valid, set timestamp for current params set + $params['timestamp'] = date('d.m.Y H:i'); + + // Attempt to send the email and show an appropriate flash message: + try { + $this->sendPdaEmail($params); + $this->flashMessenger()->addMessage('PDA::pda_send_success', 'success'); + return $this->redirectToRecord(); + } catch (MailException $e) { + $this->flashMessenger()->addMessage($e->getMessage(), 'error'); + } + } + + // Display the template: + $view->setTemplate('record/pdaform'); + return $view; + } + + /** + * Create a new ViewModel to use as a PDA-Email form. + * + * @param array $params Parameters to pass to ViewModel constructor. + * + * @return ViewModel + */ + protected function createPDAEmailViewModel($params = null) + { + // Build view: + $view = $this->createViewModel($params); + + // Load configuration: + $config = $this->getServiceLocator()->get('VuFind\Config')->get('config'); + $view->fieldOfStudyList = isset($config->CustomSite->field_of_study) + ? $config->CustomSite->field_of_study->toArray() : []; + + // Send parameters back to view so form can be re-populated: + if ($this->getRequest()->isPost()) { + $view->pdaFieldOfStudy = $this->params()->fromPost('pdaFieldOfStudy'); + $view->pdaStatement = $this->params()->fromPost('pdaStatement'); + } + + return $view; + } + + /** + * Send PDA order via e-mail. + * + * @param $params Data to be used for Email template + * + * @return void + * @throws MailException + */ + protected function sendPdaEmail($params) + { + $emailProfile = $this->getEmailProfile('Pda'); + $renderer = $this->getViewRenderer(); + + // Collect the records metadata + $keyMethodMapper = [ + 'id' => 'getUniqueID', + 'author' => 'getCombinedAuthors', + 'title' => 'getTitle', + 'price' => 'getPrice', + 'publisher' => 'getPublishers', + 'format' => 'getFormats', + 'language' => 'getLanguages', + 'publishDate' => 'getPublicationDetails', + 'isbn' => 'getISBNs', + 'physical' => 'getPhysicalDescriptions', + 'footnote' => 'getFootnotes', + 'source_id' => 'getSourceID' + ]; + $driver = $this->loadRecord(); + foreach ($keyMethodMapper as $var => $method) { + $params[$var] = $driver->tryMethod($method); + } + $params['driver'] = $driver; + + // Custom template for emails (html-only) + $bodyHtml = $renderer->render( + 'Email/acquisitionpda-html.phtml', $params + ); + // Custom template for emails (text-only) + $bodyPlain = $renderer->render( + 'Email/acquisitionpda-plain.phtml', $params + ); + + // Build the subject + $subject = (isset($emailProfile->subject)) + ? sprintf( + $emailProfile->subject, + $params['id'], + $this->translate('PDA::fos_' . $params['field_of_study']), + $params['username'] + ) : $this->translate('PDA::Acquisition'); + + // Set reply address and name if available + $replyTo = isset($params['email']) ? $params['email'] : ''; + $replyToName + = (isset($params['firstname']) && isset($params['lastname'])) && !empty($replyTo) + ? $params['firstname'] . ' ' . $params['lastname'] + : ''; + + // Get mailer + $mailer = new Mailer( + $this->getServiceLocator() + ->get('VuFind\Mailer')->getTransport() + ); + + // Send the email + $mailer->sendTextHtml( + $emailProfile->to, + $emailProfile->from, + $replyTo, + $replyToName, + $subject, + $bodyHtml, + $bodyPlain + ); + } +} diff --git a/module/finc/src/finc/Controller/RecordController.php b/module/finc/src/finc/Controller/RecordController.php new file mode 100644 index 0000000000000000000000000000000000000000..237902a93db7e850c5603506d86b7bfa6e5dc767 --- /dev/null +++ b/module/finc/src/finc/Controller/RecordController.php @@ -0,0 +1,67 @@ +<?php +/** + * Record Controller + * + * PHP version 5 + * + * Copyright (C) Villanova University 2010. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind + * @package Controller + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org Main Site + */ +namespace finc\Controller; + +/** + * Record Controller + * + * @category VuFind + * @package Controller + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org Main Site + */ +class RecordController extends \VuFind\Controller\RecordController +{ + use PdaTrait; + + /** + * Constructor + * + * @param \Zend\Config\Config $config VuFind configuration + */ + public function __construct(\Zend\Config\Config $config) + { + // Call standard record controller initialization: + parent::__construct($config); + } + + /** + * Returns the email profile configured in MailForms.ini + * + * @param $profile + * @return array + */ + protected function getEmailProfile($profile) + { + $mailConfig + = $this->getServiceLocator()->get('VuFind\Config')->get('EmailProfiles'); + + return isset($mailConfig->$profile) ? $mailConfig->$profile : []; + } +} diff --git a/module/finc/src/finc/ILS/Driver/PAIA.php b/module/finc/src/finc/ILS/Driver/PAIA.php index a3dc38904c27dcbb688c4ab24d5790af05423afb..66e0603af0b328a4a289b47cf1549b7823c8a3fe 100644 --- a/module/finc/src/finc/ILS/Driver/PAIA.php +++ b/module/finc/src/finc/ILS/Driver/PAIA.php @@ -725,7 +725,7 @@ class PAIA extends DAIA * details - array of values returned by the getRenewDetails method * identifying which items to renew * - * @return array - An associative array with two keys: + * @return array - An associative array with two keys: * blocks - An array of strings specifying why a user is blocked from * renewing (false if no blocks) * details - Not set when blocks exist; otherwise, an array of @@ -921,7 +921,8 @@ class PAIA extends DAIA ? $user_response['email'] : ''); $user['major'] = null; $user['college'] = null; - + $user['type'] = (isset($user_response['type']) + ? $user_response['type'] : ''); return $user; } diff --git a/module/finc/src/finc/Mailer/Mailer.php b/module/finc/src/finc/Mailer/Mailer.php index 3d00cdcd20a20c86595a86314e24abaed076ae9d..b0c4c12b67a247f2088acd3359efe95d4ff598e5 100644 --- a/module/finc/src/finc/Mailer/Mailer.php +++ b/module/finc/src/finc/Mailer/Mailer.php @@ -103,7 +103,8 @@ class Mailer extends \VuFind\Mailer\Mailer $mimeBody = new MimeMessage(); $mimeBody->addPart($alternativePart); - $reply_to = $reply_name . '<' . $reply . '>'; + //$reply_to = $reply_name . '<' . $reply . '>'; + $reply_to = $reply; $message = $this->getNewTextHtmlMessage() ->addFrom($from) diff --git a/module/finc/src/finc/RecordDriver/Factory.php b/module/finc/src/finc/RecordDriver/Factory.php index d34d7cf9e2c906da34696e3300e2ef715fe15c8d..8281c7f0be3df47be0ccef97da3eb5a89b4345f2 100644 --- a/module/finc/src/finc/RecordDriver/Factory.php +++ b/module/finc/src/finc/RecordDriver/Factory.php @@ -82,6 +82,29 @@ class Factory return $driver; } + /** + * Factory for SolrMarcPDA record driver. + * + * @param ServiceManager $sm Service manager. + * + * @return SolrMarcPDA + */ + public static function getSolrMarcFincPDA(ServiceManager $sm) + { + $driver = new SolrMarcFincPDA( + $sm->getServiceLocator()->get('VuFind\Config')->get('config'), + null, + $sm->getServiceLocator()->get('VuFind\Config')->get('searches') + ); + //$driver->attachILS( + // $sm->getServiceLocator()->get('VuFind\ILSConnection'), + // $sm->getServiceLocator()->get('VuFind\ILSHoldLogic'), + // $sm->getServiceLocator()->get('VuFind\ILSTitleHoldLogic') + //); + $driver->attachSearchService($sm->getServiceLocator()->get('VuFind\Search')); + return $driver; + } + /** * Factory for SolrMarcRemote record driver. * diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincPDA.php b/module/finc/src/finc/RecordDriver/SolrMarcFincPDA.php new file mode 100644 index 0000000000000000000000000000000000000000..eba0f0b63b6e561885e38f5b6d5138831d75fdd8 --- /dev/null +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincPDA.php @@ -0,0 +1,102 @@ +<?php +/** + * Model for PDA MARC records in Solr. + * + * PHP version 5 + * + * Copyright (C) Villanova University 2010. + * Copyright (C) Leipzig University Library 2015. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind + * @package RecordDrivers + * @author Frank Morgner <morgnerf@ub.uni-leipzig.de> + * @author André Lahmann <lahmann@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org/wiki/vufind2:record_drivers Wiki + */ +namespace finc\RecordDriver; + +use VuFindHttp\HttpServiceAwareInterface as HttpServiceAwareInterface, + Zend\Log\LoggerAwareInterface as LoggerAwareInterface; + +/** + * Model for PDA MARC records in Solr. + * + * @category VuFind + * @package RecordDrivers + * @author Frank Morgner <morgnerf@ub.uni-leipzig.de> + * @author André Lahmann <lahmann@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org/wiki/vufind2:record_drivers Wiki + */ +class SolrMarcFincPDA extends SolrMarcFinc implements + HttpServiceAwareInterface, LoggerAwareInterface +{ + use \VuFindHttp\HttpServiceAwareTrait; + use \VuFind\Log\LoggerAwareTrait; + + /** + * Get the price in Euro for the record. + * + * @return string Price in Euro for the record. Currency will be added in view + * via SafeMoneyFormat View-Helper + */ + public function getPrice() + { + // currency format should be conform to ISO 4217 + $currency = $this->getFirstFieldValue('365', ['c']); + $price = $this->getFirstFieldValue('365', ['b']); + $ecbEuroUrl = "http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"; + + if (!empty($currency) && !empty($price)) { + // if currency format is not EUR try to convert the value using daily + // updated xml of ECB + if ($currency != "EUR") { + try { + $response = $this->httpService->get($ecbEuroUrl); + } catch (\Exception $e) { + $this->debug("Could not retrieve Euro exchange rate from url:" . + $ecbEuroUrl . "\nExited with exception: " . + $e->getMessage()); + } + + if ($response->isSuccess()) { + if (false !== ($xml = simplexml_load_string($response->getBody())) + ) { + foreach ($xml->Cube->Cube->Cube as $rate) { + if ($rate['currency']->__toString() == $currency) { + // conversion rate available for current currency, so + // return the converted price + return ((1 / $rate['rate']->__toString()) * $price); + } + } + } + } + } + } + return !empty($price) ? $price : ''; + } + + /** + * Do we have an attached ILS connection? + * + * @return bool + */ + protected function hasILS() + { + return false; + } +} \ No newline at end of file diff --git a/module/finc/src/finc/RecordTab/AcquisitionPDA.php b/module/finc/src/finc/RecordTab/AcquisitionPDA.php new file mode 100644 index 0000000000000000000000000000000000000000..b4a3e96c886667e887b0e0af04dfdc69f3aa63dd --- /dev/null +++ b/module/finc/src/finc/RecordTab/AcquisitionPDA.php @@ -0,0 +1,63 @@ +<?php +/** + * Acquisition tab + * + * PHP version 5 + * + * Copyright (C) Villanova University 2010. + * Copyright (C) Leipzig University Library 2015. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind2 + * @package RecordTabs + * @author Demian Katz <demian.katz@villanova.edu> + * @author Frank Morgner <morgnerf@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org/wiki/vufind2:record_tabs Wiki + */ +namespace finc\RecordTab; + +/** + * Holdings (ILS) tab + * + * @category VuFind2 + * @package RecordTabs + * @author Demian Katz <demian.katz@villanova.edu> + * @author Frank Morgner <morgnerf@ub.uni-leipzig.de> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org/wiki/vufind2:record_tabs Wiki + */ +class AcquisitionPDA extends \VuFind\RecordTab\AbstractBase +{ + /** + * Get the on-screen description for this tab. + * + * @return string + */ + public function getDescription() + { + return 'PDA::Acquisition'; + } + + /** + * Is this tab active? + * + * @return bool + */ + public function isActive() + { + return true; + } +} \ No newline at end of file diff --git a/module/finc/src/finc/RecordTab/Additional.php b/module/finc/src/finc/RecordTab/Additional.php index c1b3b3ef793981d06d111c90f7302b98c5719ac4..da201140ad1ada6802e261266e2835d4df3a62ba 100644 --- a/module/finc/src/finc/RecordTab/Additional.php +++ b/module/finc/src/finc/RecordTab/Additional.php @@ -1,6 +1,6 @@ <?php /** - * Description tab + * Additional tab * * PHP version 5 * @@ -56,6 +56,6 @@ class Additional extends \VuFind\RecordTab\AbstractBase */ public function isActive() { - return $this->getRecordDriver()->tryMethod('hasAdditionalItems');; + return $this->getRecordDriver()->tryMethod('hasAdditionalItems'); } } \ No newline at end of file diff --git a/module/finc/src/finc/Role/PermissionProvider/CatUserType.php b/module/finc/src/finc/Role/PermissionProvider/CatUserType.php new file mode 100644 index 0000000000000000000000000000000000000000..bd541c2145596c0d8b2e721f0ce7dcbef326a65a --- /dev/null +++ b/module/finc/src/finc/Role/PermissionProvider/CatUserType.php @@ -0,0 +1,88 @@ +<?php +/** + * Username permission provider for VuFind. + * + * PHP version 5 + * + * Copyright (C) Villanova University 2007. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind2 + * @package Authorization + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://www.vufind.org Main Page + */ +namespace finc\Role\PermissionProvider; +use VuFind\Auth\ILSAuthenticator; +use ZfcRbac\Service\AuthorizationService; + +/** + * Username permission provider for VuFind. + * + * @category VuFind2 + * @package Authorization + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://www.vufind.org Main Page + */ +class CatUserType implements \VuFind\Role\PermissionProvider\PermissionProviderInterface +{ + /** + * Authorization object + * + * @var AuthorizationService + */ + protected $auth; + + /** + * ILSAuthenticator object + * + * @var ILSAuthenticator + */ + protected $ilsAuth; + + /** + * Constructor + * + * @param AuthorizationService $authorization Authorization service + * @param ILSAuthenticator $ILSAuthenticator ILSAuthenticator service + */ + public function __construct(AuthorizationService $authorization, ILSAuthenticator $ILSAuthenticator) + { + $this->auth = $authorization; + $this->ilsAuth = $ILSAuthenticator; + } + + /** + * Return an array of roles which may be granted the permission based on + * the options. + * + * @param mixed $options Options provided from configuration. + * + * @return array + */ + public function getPermissions($options) + { + $patron = $this->ilsAuth->storedCatalogLogin(); + + if (isset($patron['type']) + && array_intersect($patron['type'], (array) $options)) { + return ['loggedin']; + } + + return []; + } +} diff --git a/module/finc/src/finc/Role/PermissionProvider/Factory.php b/module/finc/src/finc/Role/PermissionProvider/Factory.php new file mode 100644 index 0000000000000000000000000000000000000000..b19ca3f9f3a56014490ce936562626846a924652 --- /dev/null +++ b/module/finc/src/finc/Role/PermissionProvider/Factory.php @@ -0,0 +1,58 @@ +<?php +/** + * Permission Provider Factory Class + * + * PHP version 5 + * + * Copyright (C) Villanova University 2014. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind + * @package Authorization + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org/wiki/development:plugins:hierarchy_components Wiki + */ +namespace finc\Role\PermissionProvider; +use Zend\ServiceManager\ServiceManager; + +/** + * Permission Provider Factory Class + * + * @category VuFind + * @package Authorization + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org/wiki/development:plugins:hierarchy_components Wiki + * + * @codeCoverageIgnore + */ +class Factory +{ + /** + * Factory for Username + * + * @param ServiceManager $sm Service manager. + * + * @return Username + */ + public static function getCatUserType(ServiceManager $sm) + { + return new CatUserType( + $sm->getServiceLocator()->get('ZfcRbac\Service\AuthorizationService'), + $sm->getServiceLocator()->get('VuFind\ILSAuthenticator') + ); + } +} diff --git a/module/finc/src/finc/View/Helper/Root/Factory.php b/module/finc/src/finc/View/Helper/Root/Factory.php index 2dd01149e58bccf4d4868fabd5ff36f564824466..b63bc6db6104b014ee4159cc79e6723579443cf1 100644 --- a/module/finc/src/finc/View/Helper/Root/Factory.php +++ b/module/finc/src/finc/View/Helper/Root/Factory.php @@ -41,7 +41,6 @@ use Zend\ServiceManager\ServiceManager; */ class Factory { - /** * Construct the Record helper. * @@ -56,6 +55,16 @@ class Factory ); } + /** + * Construct the Record helper. + * + * @return RecordLink + */ + public static function getInterlibraryLoanLink() + { + return new InterlibraryLoanLink(); + } + /** * Construct the Citation helper. * diff --git a/module/finc/src/finc/View/Helper/Root/InterlibraryLoanLink.php b/module/finc/src/finc/View/Helper/Root/InterlibraryLoanLink.php new file mode 100644 index 0000000000000000000000000000000000000000..129856e6be6e74350025974a1ae94458f16e36d0 --- /dev/null +++ b/module/finc/src/finc/View/Helper/Root/InterlibraryLoanLink.php @@ -0,0 +1,66 @@ +<?php +/** + * Record link view helper + * + * PHP version 5 + * + * Copyright (C) Villanova University 2010. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind2 + * @package View_Helpers + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org/wiki/vufind2:developer_manual Wiki + */ +namespace finc\View\Helper\Root; + +use Zend\View\Helper\AbstractHelper; + +/** + * Record link view helper + * + * @category VuFind2 + * @package View_Helpers + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org/wiki/vufind2:developer_manual Wiki + */ +class InterlibraryLoanLink extends AbstractHelper +{ + + /** + * Given a record driver, generate a URL for interlibrary loans to SWB. + * + * @param \VuFind\RecordDriver\AbstractBase $driver Host Record. + * + * @return string + */ + public function getSwbLink($driver) + { + $url_search = "http://flportal.bsz-bw.de/servlet/locator?sigel=15"; + $url_default = "http://flportal.bsz-bw.de/jsp/start.jsp?sigel=15"; + + foreach (array('issn', 'isbn') as $signifier) { + $method = "getClean" . strtoupper($signifier); + $$signifier = $driver->$method(); + if (!empty($$signifier)) { + return $url_search . "&" . $signifier . "=" . $$signifier; + } + } + return $url_default; + } +} + diff --git a/module/finc/src/finc/View/Helper/Root/Record.php b/module/finc/src/finc/View/Helper/Root/Record.php index 9e46537437d5c418f8554c4867529ec0da38571d..44e99fc98c401917a863c919cf562b6fd8dfae66 100644 --- a/module/finc/src/finc/View/Helper/Root/Record.php +++ b/module/finc/src/finc/View/Helper/Root/Record.php @@ -59,7 +59,7 @@ class Record extends \VuFind\View\Helper\Root\Record /** * Render the link of the type ISN. * - * @param array $issns Array with ISSNS + * @param array $issns Array with ISSNS * * @return string */ diff --git a/module/finc/src/finc/View/Helper/Root/ResultFeed.php b/module/finc/src/finc/View/Helper/Root/ResultFeed.php index d6cb2b1a29679f00afb807b2db93c69844e0d12b..64f9d2e0a5b572a6b1793733ee122b58ab91c864 100644 --- a/module/finc/src/finc/View/Helper/Root/ResultFeed.php +++ b/module/finc/src/finc/View/Helper/Root/ResultFeed.php @@ -44,7 +44,7 @@ class ResultFeed extends \VuFind\View\Helper\Root\ResultFeed /** * Support method to turn a record driver object into an RSS entry. * - * @param Feed $feed Feed to update + * @param Feed $feed Feed to update * @param \VuFind\RecordDriver\AbstractBase $record Record to add to feed * * @return void diff --git a/themes/finc/scss/default.scss b/themes/finc/scss/default.scss index 5c9906123e1dc0fbd200e35ff7be0848b1fb657c..e04918b67feaae9329c35617010d33125d30b461 100644 --- a/themes/finc/scss/default.scss +++ b/themes/finc/scss/default.scss @@ -33,6 +33,21 @@ header.fixed { left:auto;max-width: $row-width; } .navbar-brand { margin: .5rem .5rem .5rem 0; } +// Avoid Button groups being placed to far left (e.g. pda tab) - works for all other button groups too +.button-group > li:first-of-type {margin-left: 0} +// Avoid wavy underlines and other tooltip stylings on buttons +.button { + &.has-tip, + &.has-tip:hover, + &.has-tip:focus { + border-bottom: none; + color: $button-font-color; + cursor:$cursor-pointer-value; + font-weight: 300; + } + &.has-tip.white {color: #fff} +} + // LIST VIEW // Source-id branding (WISO etc) .branding {display: none} @@ -85,4 +100,15 @@ table.citation th {min-width: 18%} } } +// FORMS +form label {font-size: 1rem;} + + +// ALERT BOXES +.alert-box {font-size: 1rem} +// MODALS +// Make sure, distance to close-button is sufficient +.modal-body .alert-box { margin-top: 1.5rem; } +// Secondary close button +.reveal-modal .secondary.close-reveal-modal { @include button-style($bg:$secondary-color); border-left-color: #fff; font-weight: 300; font-size: .8125rem; line-height: 15px; position: relative; right: auto; top: auto;} \ No newline at end of file diff --git a/themes/finc/templates/Email/acquisitionpda-html.phtml b/themes/finc/templates/Email/acquisitionpda-html.phtml new file mode 100644 index 0000000000000000000000000000000000000000..7d0cb87806ee5fccd34a6dbabc40060e6f99bb4f --- /dev/null +++ b/themes/finc/templates/Email/acquisitionpda-html.phtml @@ -0,0 +1,146 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<head> + <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> + <title>Zeitschriftenbestellung</title> +</head> +<body style="font-family: Arial, Verdana, sans-serif;"> +<h2 style="padding:10px 0;">Benutzergesteuerte Erwerbung</h2> +<table width="800" border="0"> + <tr valign="top"> + <td width="390"> + Name: <strong><?= $lastname ?>, <?= $firstname ?></strong><br/> + Lesekarte-Nr.: <strong><?= $username ?></strong><br/> + Email: <a href="mailto:<?= $email ?>"><?= $email ?></a><br/> + <br/> + <? if ($statement): ?> + Begründung des Benutzers: + <br/><br/> + <span style="font-size: 12px"><?= $statement ?></span> + <br/><br/> + <? endif; ?> + </td> + <td width="20"> </td> + <td width="390"> + hat folgenden Titel bestellt:<br/> + <br/> + <strong><?= $title ?></strong><br/> + <? if ($author): ?>von + <? foreach ($author as $auth): ?> + <?= $auth ?> + <? endforeach; ?> + <? endif; ?><br/> + <br/> + Link: <a href="<?=$this->serverUrl($this->recordLink()->getUrl($driver))?>" title="<?= $title ?>"><?=$this->serverUrl($this->recordLink()->getUrl($driver))?></a><br/> + Katalog-ID: <a href="<?= $this->serverUrl($this->recordLink()->getUrl($driver)) ?>" + title="<?= $title ?>"><?= $id ?></a><br/> + <br/> + für das Fachgebiet: <?= $this->transEsc('PDA::bos_' . $field_of_study) ?><br/> + <br/> + <table> + <? if ($price): ?> + <tr> + <td width="100" style="font-size: 11px">Preis:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <?= $this->safeMoneyFormat($price) ?> + </td> + </tr> + <? endif; ?> + <? if ($publisher): ?> + <tr> + <td style="font-size: 11px">Verlag:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <? foreach ($publisher as $pub): ?> + <?= $pub ?> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? if ($format): ?> + <tr> + <td style="font-size: 11px">Format:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <? foreach ($format as $for): ?> + <?= $this->transEsc($for) ?> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? if ($language): ?> + <tr> + <td style="font-size: 11px">Sprache:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <? foreach ($language as $lang): ?> + <?= $this->transEsc($lang) ?> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? if ($publishDate): ?> + <tr> + <td style="font-size: 11px">veröffentlicht:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <? foreach ($publishDate as $date): ?> + <?= $date ?> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? if ($isbn): ?> + <tr> + <td style="font-size: 11px">ISBN/ISN:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <? foreach ($isbn as $isn): ?> + <?= $isn ?> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? if ($physical): ?> + <tr> + <td style="font-size: 11px">Beschreibung:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <? foreach ($physical as $phys): ?> + <?= $phys ?> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? if ($footnote): ?> + <tr> + <td style="font-size: 11px">Fussnote:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <? foreach ($footnote as $foot): ?> + <?= $foot ?> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? if ($source_id): ?> + <tr> + <td style="font-size: 11px">Quelle:</td> + <td width="5"> </td> + <td style="font-size: 11px"> + <?= $this->transEsc('sid_' . $source_id) ?> + </td> + </tr> + <? endif; ?> + </table> + </td> + </tr> + <tr valign="top"> + <td width="800" colspan="3"> + Zeitpunkt der Bestellung: <?= $timestamp ?> + </td> + </tr> +</table> +</body> +</html> \ No newline at end of file diff --git a/themes/finc/templates/Email/acquisitionpda-plain.phtml b/themes/finc/templates/Email/acquisitionpda-plain.phtml new file mode 100644 index 0000000000000000000000000000000000000000..7bd03ca2224ae9d39e7d801b7ffc8198ea2b9834 --- /dev/null +++ b/themes/finc/templates/Email/acquisitionpda-plain.phtml @@ -0,0 +1,70 @@ +== Benutzergesteuerte Erwerbung == + +Name: <?= $lastname ?>, <?= $firstname ?> + +Lesekarte-Nr.: <?= $username ?> + +Email: <?= $email ?> + +hat folgenden Titel bestellt: + +<?= $title ?> + +<? if ($author): ?> + von <? foreach ($author as $au): ?><?= $au ?> <? endforeach; ?> +<? endif; ?> + +Link: <?= $this->serverUrl($this->recordLink()->getUrl($driver)) ?> + +für das Fachgebiet: <?= $this->transEsc('PDA::bos_' . $field_of_study) ?> + +------------------------------------------ + +<? if ($statement): ?>Begründung des Benutzers: + + <?= $statement ?> +<? endif; ?> + +------------------------------------------ + +<? if ($price): ?> + Preis: <?= $this->safeMoneyFormat($price) ?> + +<? endif; ?> +<? if ($publisher): ?> + Verlag: <? foreach ($publisher as $pub): ?><?= $pub ?> <? endforeach; ?> + +<? endif; ?> +<? if ($format): ?> + Format: <? foreach ($format as $form): ?><?= $this->transEsc($form) ?> <? endforeach; ?> + +<? endif; ?> +<? if ($language): ?> + Sprache: <? foreach ($language as $lang): ?><?= $this->transEsc($lang) ?> <? endforeach; ?> + +<? endif; ?> +<? if ($publishDate): ?> + veröffentlicht: <? foreach ($publishDate as $date): ?><?= $date ?> <? endforeach; ?> + +<? endif; ?> +<? if ($isbn): ?> + ISBN/ISN: <? foreach ($isbn as $isn): ?><?= $isn ?> <? endforeach; ?> + +<? endif; ?> +<? if ($physical): ?> + Beschreibung: <? foreach ($physical as $desc): ?><?= $desc ?> <? endforeach; ?> + +<? endif; ?> +<? if ($footnote): ?> + Fussnote: <? foreach ($footnote as $ftn): ?><?= $ftn ?> <? endforeach; ?> + +<? endif; ?> +<? if ($source_id): ?> + Quelle: <?= $this->transEsc('sid_' . $source_id) ?> + +<? endif; ?> + + +------------------------------------------ + +Zeitpunkt der Bestellung: <?= $timestamp ?> \ No newline at end of file diff --git a/themes/finc/templates/RecordTab/acquisitionpda.phtml b/themes/finc/templates/RecordTab/acquisitionpda.phtml new file mode 100644 index 0000000000000000000000000000000000000000..a150d7327abc720d4d947ffc81d9cf044e37dadd --- /dev/null +++ b/themes/finc/templates/RecordTab/acquisitionpda.phtml @@ -0,0 +1,28 @@ +<!-- recordtab - acquistionpda.phtml --> +<? +// Set page title. +$this->headTitle( + $this->translate('PDA::Acquisition') . ': ' . + $this->driver->getBreadcrumb() +); + // Get some variables + $id = $this->driver->getUniqueId(); + $controllerClass = 'controller:' . $this->record($this->driver)->getController(); +?> + <div class="row collapse"> + <div class="small-12 columns"> + <h2><?= $this->transEsc('PDA::Acquisition') ?></h2> + <p><?= $this->transEsc('PDA::pda_initial_text') ?></p> + <p class="alert-box warning"><?= $this->transEsc('PDA::pda_restriction_text') ?></p> + <ul class="button-group"> + <li> + <? /* Leave title in here -- it is used for the tooltip! - CK */ ?> + <a class="button small has-tip white" data-tooltip data-options="touch_close_text: '<?= $this->transEsc('Tap to close')?>'" aria-haspopup="true" title="<?= $this->transEsc('PDA::pda_open_new_window')?>" href="<?= $this->interlibraryloan()->getSwbLink($this->driver) ?>" target="_blank"><?= $this->transEsc('PDA::pda_tab_interlibrary_button') ?></a> + </li> + <li> + <a class="button small pda-button <?= $controllerClass ?>" data-lightbox href="<?= $this->url('record-pda', array('id' => $id)) ?>" rel="nofollow"><?= $this->transEsc('PDA::pda_tab_order_button') ?></a> + </li> + </ul> + </div> + </div> +<!-- recordtab - acquistionpda.phtml - END --> \ No newline at end of file diff --git a/themes/finc/templates/footer.phtml b/themes/finc/templates/footer.phtml index 04b454d5edb4837439f4cf18ff1aa16d15b63e07..649ef791b1b1d3875f35f589aef6dc861661559e 100644 --- a/themes/finc/templates/footer.phtml +++ b/themes/finc/templates/footer.phtml @@ -14,7 +14,7 @@ <li><a href="<?=$this->url('alphabrowse-home')?>"><?=$this->transEsc('Browse Alphabetically')?></a></li> <li><a href="<?=$this->url('search-reserves')?>"><?=$this->transEsc('Course Reserves')?></a></li> <li><a href="<?=$this->url('search-newitem')?>"><?=$this->transEsc('New Items')?></a></li> - <!--<li><a href="<?=$this->url('myresearch-acquisition')?>"><?=$this->transEsc('Suggestions for acquisition')?></a></li>--> + <li><a href="<?=$this->url('myresearch-acquisition')?>"><?=$this->transEsc('Suggestions for acquisition')?></a></li> </ul> </li> <li> diff --git a/themes/finc/templates/layout/layout.phtml b/themes/finc/templates/layout/layout.phtml new file mode 100644 index 0000000000000000000000000000000000000000..2ea62ca591284f0c8edb74bb5d25b3cfe1c030ce --- /dev/null +++ b/themes/finc/templates/layout/layout.phtml @@ -0,0 +1,190 @@ +<?=$this->doctype('HTML5')?> +<html lang="<?=$this->layout()->userLang?>" <? if ($this->layout()->rtl): ?>dir="rtl" <? endif; ?>> + <head> + <?$this->headThemeResources()?> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"/> + <meta name="viewport" content="width=device-width,initial-scale=1.0"/> + <?=$this->headMeta()?> + <?=$this->headTitle()?> + <? + // Set up OpenSearch link: + $this->headLink( + array( + 'href' => $this->url('search-opensearch') . '?method=describe', + 'type' => 'application/opensearchdescription+xml', + 'title' => $this->transEsc('Library Catalog Search'), + 'rel' => 'search' + ) + ); + ?> + <!-- RTL styling --> + <? /* should work out-of-the-box in FNDTN - + just change lang and dir in the <html class="no-js" lang="ar" dir="rtl"> + and activate and change line 144 in foundation/_settings.scss to $text-direction: rtl; - CK */ + ?> + <?=$this->headLink()?> + <?=$this->headStyle()?> + <? + if (!isset($this->renderingError)) { + // Add translation strings + $this->jsTranslations()->addStrings( + array( + 'pda_send_success' => 'PDA::pda_send_success', + 'add_tag_success' => 'add_tag_success', + 'bulk_email_success' => 'bulk_email_success', + 'bulk_noitems_advice' => 'bulk_noitems_advice', + 'bulk_save_success' => 'bulk_save_success', + 'close' => 'close', + 'error_occurred' => 'An error has occurred', + 'go_to_list' => 'go_to_list', + 'libphonenumber_invalid' => 'libphonenumber_invalid', + 'libphonenumber_invalidcountry' => 'libphonenumber_invalidcountry', + 'libphonenumber_invalidregion' => 'libphonenumber_invalidregion', + 'libphonenumber_notanumber' => 'libphonenumber_notanumber', + 'libphonenumber_toolong' => 'libphonenumber_toolong', + 'libphonenumber_tooshort' => 'libphonenumber_tooshort', + 'libphonenumber_tooshortidd' => 'libphonenumber_tooshortidd', + 'loading' => 'Loading', + 'sms_success' => 'sms_success', + 'number_thousands_separator' => ['number_thousands_separator', null, ','] + ) + ); + // Add libphonenumber.js strings + $this->jsTranslations()->addStrings( + array( + "Phone number invalid" => 'libphonenumber_invalid', + "Invalid country calling code" => 'libphonenumber_invalidcountry', + "Invalid region code" => 'libphonenumber_invalidregion', + "The string supplied did not seem to be a phone number" => 'libphonenumber_notanumber', + "The string supplied is too long to be a phone number" => 'libphonenumber_toolong', + "The string supplied is too short to be a phone number" => 'libphonenumber_tooshort', + "Phone number too short after IDD" => 'libphonenumber_tooshortidd' + ) + ); + // Deal with cart stuff: + $cart = $this->cart(); + if ($cart->isActive()) { + $this->headScript()->appendFile("vendor/cookies.js"); + $this->headScript()->appendFile("cart.js"); + $domain = $cart->getCookieDomain(); + $this->headScript()->appendScript( + 'var cartCookieDomain = ' . (!empty($domain) ? "'$domain'" : 'false') . ';' + ); + $this->jsTranslations()->addStrings( + array( + 'addBookBag' => 'Add to Book Bag', + 'bookbagFull' => 'bookbag_full_msg', + 'bookbagMax' => $cart->getMaxSize(), + 'bookbagStatusFull' => 'bookbag_full', + 'confirmDelete' => 'confirm_delete', + 'confirmEmpty' => 'bookbag_confirm_empty', + 'itemsAddBag' => 'items_added_to_bookbag', + 'itemsInBag' => 'items_already_in_bookbag', + 'removeBookBag' => 'Remove from Book Bag', + 'viewBookBag' => 'View Book Bag' + ) + ); + } + $this->headScript()->appendScript( + 'var userIsLoggedIn = ' . ($this->auth()->isLoggedIn() ? 'true' : 'false') . ';' + ); + } + + // Session keep-alive + if ($this->KeepAlive()) { + $this->headScript()->appendScript('var keepAliveInterval = ' + . $this->KeepAlive()); + $this->headScript()->appendFile("keep_alive.js"); + } + ?> + <? + $root = rtrim($this->url('home'), '/'); + $translations = $this->jsTranslations()->getJSON(); + $dsb = DEFAULT_SEARCH_BACKEND; + $setupJS = <<<JS +VuFind.path = '{$root}'; +VuFind.defaultSearchBackend = '{$dsb}'; +VuFind.addTranslations({$translations}); +JS; + $this->headScript()->appendScript($setupJS); + ?> + <?=$this->headScript()?> + </head> + <body class="<?=$this->layoutClass('offcanvas-row')?><? if ($this->layout()->rtl): ?> rtl<? endif; ?>"> + <? // Set up the search box -- there are three possible cases: + // 1. No search box was set; we should default to the normal box + // 2. It was set to false; we should display nothing + // 3. It is set to a custom string; we should display the provided version + // Set up default search box if no data was provided from the template; + // this covers case 1. Cases 2 and 3 are then covered by logic below. + if (!isset($this->layout()->searchbox)) { + $this->layout()->searchbox = $this->render('search/searchbox.phtml'); + } + ?> + <div class="row collapse"> + <header role="banner" class="sticky contain-to-grid hide-for-print"> + <a class="sr-only" href="#searchslots"><?=$this->transEsc('Skip to search') ?></a> + <a class="sr-only" href="#content"><?=$this->transEsc('Skip to content') ?></a> + <?=$this->render('header.phtml')?> + <nav class="nav searchbox large-12 large-centered columns hide-for-medium-up hide-for-print"> + <?=$this->layout()->searchbox ?> + </nav> + <? if((!isset($this->layout()->showBreadcrumbs) || $this->layout()->showBreadcrumbs == true) + && !empty($this->layout()->breadcrumbs) + && $this->layout()->breadcrumbs !== false + ): ?> + <ul class="breadcrumbs large-12 large-centered columns hide-for-print"> + <? if(is_array($this->layout()->breadcrumbs)): ?> + <? if(count($this->layout()->breadcrumbs) > 1): ?> + <?=$this->render('breadcrumbs/multi.phtml', array( + 'parents' => $this->layout()->breadcrumbs, + 'title' => $this->layout()->title, + 'from' => $this->layout()->from + )) ?> + <? else: ?> + <?=$this->render('breadcrumbs/default.phtml', array( + 'parents' => $this->layout()->breadcrumbs, + 'title' => $this->layout()->title + )) ?> + <? endif; ?> + <? else: ?> + <?=$this->layout()->breadcrumbs ?> + <? endif; ?> + </ul> + <? endif; ?> + </header> + </div> + + <div class="row"> + <div id="content" role="main" class="main panel template-dir-<?=$this->templateDir?> template-name-<?=$this->templateName?>"> + <div class="container"> + <?=$this->layout()->content ?> + </div> + </div> + </div> + <div class="row"> + <footer role="contentinfo" class="panel hide-for-print"> + <div class="container"> + <?=$this->render('footer.phtml')?> + <?=$this->layout()->poweredBy ?> + </div> + </footer> +</div> +<!-- MODAL IN CASE WE NEED ONE --> +<div id="modal" class="reveal-modal medium hide-for-print" data-reveal tabindex="-1" role="dialog" aria-labelledby="modalTitle" aria-hidden="true"> + <div class="modal-body"><?=$this->transEsc('Loading') ?> ...</div> + <a class="close-reveal-modal" aria-label="Close"><span class="sr-only"><?=$this->transEsc('close') ?></span> ×</a> +</div> +<!-- MODAL - END --> + +<div class="offcanvas-toggle" data-toggle="offcanvas"><i class="fa"></i></div> +<div class="offcanvas-overlay" data-toggle="offcanvas"></div> +<?=$this->googleanalytics()?> +<?=$this->piwik()?> +<? /* Initializing call for FOUNDATION functions */ ?> + <script> + $(document).foundation(); + </script> + </body> +</html> \ No newline at end of file diff --git a/themes/finc/templates/myresearch/acquisition.phtml b/themes/finc/templates/myresearch/acquisition.phtml index 1318bc92cd33359ffc71b40c17dbd54b89284897..c9774d6c92bacc5e53c30a56745cacf74358719a 100644 --- a/themes/finc/templates/myresearch/acquisition.phtml +++ b/themes/finc/templates/myresearch/acquisition.phtml @@ -1,26 +1,27 @@ <!-- myresearch - acquisition.phtml --> <? // Set up page title: -$this->headTitle($this->translate('Suggestions for acquisition')); +$this->headTitle($this->translate('PDA::pda_form_title')); // Set up breadcrumbs: -$this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') . '">' . $this->transEsc('Your Account') . '</a></li> <li class="active">' . $this->transEsc('Suggestions for acquisition') . '</li>'; +$this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') . '">' . $this->transEsc('Your Account') . '</a></li> <li class="active">' . $this->transEsc('PDA::pda_form_title') . '</li>'; ?> <div class="row"> <div class="<?=$this->layoutClass('mainbody')?>"> - <h2><?=$this->transEsc('Your acquisition proposal') ?></h2> + <h2><?=$this->transEsc('PDA::pda_form_subtitle') ?></h2> <?=$this->flashmessages() ?> <form class="form-horizontal" method="post" action="" name="acquisitionForm"> - <h6><?=$this->transEsc('Please send only one form per acquisition proposal.') ?></h6> + <h6><?=$this->transEsc('PDA::pda_form_suggestions_limit') ?></h6> <div class="form-group row"> - <label class="col-sm-3 medium-3 columns control-label" for="acquisition_subject"><?=$this->transEsc('Subject area') ?><span class="required">*</span></label> + <label class="col-sm-3 medium-3 columns control-label" for="subject"><?=$this->transEsc('PDA::pda_form_branch_of_study_label') ?><span class="required">*</span></label> <div class="col-sm-9 medium-9 columns"> <select name="subject" class="form-control auto"> - <option value="-1"><?=$this->transEsc('Please select a subject area') ?></option> + <option value="-1"><?=$this->transEsc('PDA::pda_form_subject_text') ?></option> <? if (isset($subjectlist) && is_array($subjectlist)): ?> <? foreach ($subjectlist as $value): ?> - <option value="<?=$value?>" <? if (isset($values['subject']) && ($values['subject'] != '-1') && ($values['subject'] == $value)): ?> selected="selected"<? endif; ?>><?=$this->transEsc($value)?></option> + <option + value="<?= $value ?>" <? if (isset($values['subject']) && ($values['subject'] != '-1') && ($values['subject'] == $value)): ?> selected="selected"<? endif; ?>><?= $this->transEsc('PDA::subject_' . $value) ?></option> <? endforeach; ?> <? endif; ?> </select> @@ -30,7 +31,7 @@ $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') . </div> </div> <div class="form-group row"> - <label class="col-sm-3 medium-3 columns control-label" for="acquistion_reasons"><?=$this->transEsc('Please give reasons for your suggestion') ?><span class="required">*</span></label> + <label class="col-sm-3 medium-3 columns control-label" for="acquistion_reasons"><?=$this->transEsc('PDA::pda_form_statement_label') ?><span class="required">*</span></label> <div class="col-sm-9 medium-9 columns"> <textarea id="acquisition_reasons" type="text" cols="50" rows="5" name="reasons"><? if (isset($values['reasons']) && !empty($values['reasons'])): ?><?=$this->transEsc($values['reasons']) ?><? endif; ?></textarea> <br /> @@ -40,9 +41,9 @@ $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') . </div> </div> <div class="form-group row"> - <label class="col-sm-3 medium-3 columns control-label" for="acquistion_proposal"><?=$this->transEsc('Your acquisition proposal') ?><span class="required">*</span></label> + <label class="col-sm-3 medium-3 columns control-label" for="acquistion_proposal"><?=$this->transEsc('PDA::pda_form_proposal_label') ?><span class="required">*</span></label> <div class="col-sm-9 medium-9 columns"> - <textarea id="acquisition_proposal" type="text" cols="50" rows="5" name="proposal"><? if (isset($values['proposal']) && !empty($values['proposal'])): ?><?=$this->transEsc($values['proposal']) ?><? endif; ?></textarea> + <textarea id="acquisition_proposal" type="text" cols="50" rows="5" name="proposal"><?=(isset($values['proposal']) && !empty($values['proposal'])) ? $values['proposal'] : ''?></textarea> <br /> <? /*if (isset($error) && in_array('proposal', $error)): ?> <span class="error-form"><?=$this->transEsc('Proposal for acquisition should not be blank') ?></span> @@ -56,7 +57,7 @@ $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') . </div> <div class="form-group row"> <div class="col-sm-9 col-sm-offset-3 medium-9 columns medium-offset-3"> - <?=$this->transEsc('note_mandatory_fields') ?> + <?=$this->transEsc('PDA::note_mandatory_fields') ?> </div> </div> </form> diff --git a/themes/finc/templates/record/pdaform.phtml b/themes/finc/templates/record/pdaform.phtml new file mode 100644 index 0000000000000000000000000000000000000000..b3b8f6d4991c6e96bf2591360970a07c6c31b89b --- /dev/null +++ b/themes/finc/templates/record/pdaform.phtml @@ -0,0 +1,58 @@ +<!-- record - PDAFORM.phtml --> +<? + // Set page title. + $this->headTitle($this->translate('PDA::Acquisition')); + + // Set up breadcrumbs: + $this->layout()->breadcrumbs = '<li>' . $this->searchMemory()->getLastSearchLink($this->transEsc('Search'), '', '</li>') + . '<li>' . $this->recordLink()->getBreadcrumb($this->driver) . '</li>' + . '<li class="active">' . $this->transEsc('PDA::Acquisition') . '</li>'; +?> +<h2><?=$this->transEsc('PDA::Acquisition') ?>: <span class="title-in-heading"><?=$this->escapeHtml($this->driver->getBreadcrumb())?></span></h2> +<form method="post" name="acquisitionPDAForm" action="<?=$this->recordLink()->getActionUrl($this->driver, 'PDA')?>"> + <?=$this->flashmessages()?> + <p> + <?=$this->translate('PDA::pda_order_text')?> + <?=(strlen($price = $this->driver->getPrice()) > 0) ? $this->translate('PDA::pda_price_text', [':::PRICE:::'=>$this->safeMoneyFormat($price)]) : ''?> + <?=$this->translate('PDA::pda_delivery_text')?> + </p> + <div class="row collapse"> + <label class="medium-3 columns" for="pdaStatement"><?=$this->transEsc('PDA::pda_form_statement_label')?><span class="required">*</span>:</label> + <div class="medium-9 columns"> + <textarea id="pdaStatement" class="auto" name="pdaStatement" rows="5" type="text" cols="50"><?=isset($this->pdaStatement) ? $this->pdaStatement : ''?></textarea> + </div> + + <label class="medium-3 columns" for="pdaSubject"><?=$this->transEsc('PDA::pda_form_field_of_study_label') ?><span class="required">*</span>:</label> + <div class="medium-9 columns"> + <select name="pdaFieldOfStudy" class="form-control"> + <option value="-1"><?=$this->transEsc('PDA::pda_form_field_of_study_text')?></option> + <? if (isset( $this->fieldOfStudyList) && is_array( $this->fieldOfStudyList)): ?> + <? foreach ( $this->fieldOfStudyList as $value): ?> + <option value="<?=$value?>" <? if (!empty($this->pdaFieldOfStudy) && $value==$this->pdaFieldOfStudy): ?> selected="selected"<? endif; ?>><?= $this->transEsc('PDA::fos_' . $value) ?></option> + <? endforeach; ?> + <? endif; ?> + </select> + </div> + <div class="medium-9 columns medium-offset-3"> + <span> + <?=$this->recaptcha()->html($this->useRecaptcha) ?> + </span> + <ul class="button-group"> + <li> + <input type="submit" class="button small" role="button" name="submit" value="<?=$this->transEsc('Submit')?>"/> + </li> + <li> + <a class="button small has-tip" data-tooltip data-options="touch_close_text: '<?= $this->transEsc('Tap to close')?>'" aria-haspopup="true" title="<?= $this->transEsc('PDA::pda_open_new_window')?>" href="<?= $this->interlibraryloan()->getSwbLink($this->driver) ?>" target="_blank"><?= $this->transEsc('PDA::pda_tab_interlibrary_button') ?> + </a> + </li> + <li> + <button class="small secondary close-reveal-modal" href="#"><?=$this->transEsc('Reset')?></button> + </li> + </ul> + <p> + <?= $this->transEsc('PDA::note_mandatory_fields') ?> + </p> + </div> + </div> +</form> +<!-- record - PDAFORM.phtml end --> \ No newline at end of file diff --git a/themes/finc/templates/record/pdamessage.phtml b/themes/finc/templates/record/pdamessage.phtml new file mode 100644 index 0000000000000000000000000000000000000000..92abd70fccd5e444c683c8baf577d79e106e3b6c --- /dev/null +++ b/themes/finc/templates/record/pdamessage.phtml @@ -0,0 +1,12 @@ +<!-- record - PDAMESSAGE.phtml --> +<? + // Set page title. + $this->headTitle($this->translate('PDA::Acquisition')); + + // Set up breadcrumbs: + $this->layout()->breadcrumbs = '<li>' . $this->searchMemory()->getLastSearchLink($this->transEsc('Search'), '', '</li>') + . '<li>' . $this->recordLink()->getBreadcrumb($this->driver) . '</li>' + . '<li class="active">' . $this->transEsc('PDA::Acquisition') . '</li>'; +?> +<?=$this->flashmessages()?> +<!-- record - PDAMESSAGE.phtml end --> \ No newline at end of file diff --git a/themes/finc/theme.config.php b/themes/finc/theme.config.php index b272225e9f3ad698f14accfa4567fe5d0367a824..b80e47a13f99cc00b54fd34f6cd602acc3748fa9 100644 --- a/themes/finc/theme.config.php +++ b/themes/finc/theme.config.php @@ -4,6 +4,8 @@ return array( 'helpers' => array( 'factories' => array( 'record' => 'finc\View\Helper\Root\Factory::getRecord', + 'interlibraryloan' => + 'finc\View\Helper\Root\Factory::getInterlibraryLoanLink', 'citation' => 'finc\View\Helper\Root\Factory::getCitation', ), 'invokables' => array( diff --git a/themes/foundation5/js/lightbox.js b/themes/foundation5/js/lightbox.js index a37736d3efc885309dcda3d76951c146451f187b..cc003b34665e0d8c5e696f68734ccc8eed74f9ec 100644 --- a/themes/foundation5/js/lightbox.js +++ b/themes/foundation5/js/lightbox.js @@ -70,7 +70,7 @@ VuFind.register('lightbox', function() { if ('undefined' == typeof type) { type = 'info'; } - _html('<div class="alert-box '+type+'">'+message+'</div><button class="button small close-reveal-modal">' + VuFind.translate('close') + '</button>'); + _html('<div class="alert-box '+type+'">'+message+'</div><a class="close-reveal-modal"><span class="sr-only">' + VuFind.translate('close') + '</span></a>'); _modal.foundation('reveal', 'open'); }; var flashMessage = function(message, type) {