Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
development [2015/12/09 19:09] – ↷ Links adapted because of a move operation demiankatz | development [2016/05/24 14:18] – [VuFind Planning] crhallberg |
---|
====== VuFind 2.x Developer Manual ====== | ====== VuFind Developer Manual ====== |
| |
This page covers development of VuFind 2.x; for earlier versions, see the [[legacy:vufind_1.x_developer_manual|VuFind 1.x Developer Manual]]. | This page covers development of VuFind 2.x and later; for earlier versions, see the [[legacy:vufind_1.x_developer_manual|VuFind 1.x Developer Manual]]. |
| |
===== Coding Standards ===== | ===== Prerequisites ===== |
* PHP Code - [[http://pear.php.net/manual/en/standards.php|PEAR Coding Standards]] | * [[development:coding_standards|Coding Standards]] - How to conform to VuFind's style. |
| * [[development:recommended_tools|Recommended Tools]] - Suggestions for successful VuFind development. |
| * [[development:making_pull_requests|Making Pull Requests]] |
| |
For help with standards compliance, see the [[vufind2:recommended_tools#style|recommended tools page]]. | ===== About VuFind ===== |
===== Development Tools ===== | * [[development:architecture|Architecture Notes]] - Information on VuFind's design and dependencies. |
| * [[development:howtos|How-Tos]] - Step-by-step instructions on various VuFind development tasks. |
| * [[development:plugins|Plugins]] - Information on the types of plug-ins used to extend VuFind functionality. |
| * [[development:testing|Testing]] - Notes on testing VuFind. |
| |
* [[vufind2:git|Git]] - Notes on aiding development with version tracking. | |
* [[vufind2:recommended_tools|Recommended Tools]] - Suggestions for successful VuFind development. | |
| |
===== Architecture Notes ===== | ===== External Links ===== |
* [[vufind2:cookies|Cookies]] - Notes on VuFind's use of cookies. | |
* [[vufind2:data_model_key_concepts|Data Model / Key Concepts]] - Key ideas in the VuFind 2.0 architecture. | |
* [[vufind2:record_driver_method_master_list|Record Driver Method Master List]] - A reference to get methods used by record drivers. | |
* [[vufind2:database_schema|Database Schema]] | |
* [[vufind2:directory_layout|Directory Layout]] | |
* [[..:Index Schema|Index Schema]] | |
* [[..:authority_control#authority_index|Authority Index Schema]] | |
* [[vufind2:language_localization_support|Language / Localization Support]] | |
* [[vufind2:search_service|Search Service]] | |
===== General Information ===== | |
| |
* [[vufind2:why_vufind_2.0|Why VuFind 2.0?]] - Some of the reasons for a new major release. | ==== VuFind Planning ==== |
* [[vufind2:customizing_vufind_2.0|Customizing VuFind 2.0]] - How to change VuFind's behavior. | |
* [[vufind2:zend_framework_2.0|Zend Framework 2]] - Information about VuFind 2.0's underlying framework. | |
| |
===== Plugins ===== | |
| |
VuFind features integration points for a variety of plugins. The [[vufind2:general_plugin_information]] page describes general principles for building plugins. The list below offers specifics for each type of plugin. | |
| |
* [[vufind2:authentication_handlers|Authentication Handlers]] - Custom login functionality | |
* [[vufind2:autosuggesters|Autosuggesters]] - Sources for autocomplete suggestions | |
* [[vufind2:database_gateways|Database Gateways]] - Interfacing with database tables and rows | |
* [[vufind2:hierarchy_components|Hierarchy Components]] - Support tools for [[..:hierarchies and collections]] | |
* [[vufind2:building_an_ils_driver|ILS Drivers]] - Interfacing with integrated library systems | |
* [[vufind2:link_resolver_drivers|Link Resolver Drivers]] - Interfacing with OpenURL resolvers for embedded results | |
* [[vufind2:permission_provider_plugins|Permission Provider Plugins]] - Permission providers are part of VuFind's [[vufind2:authorization]] mechanism. | |
* [[vufind2:recommendation_modules|Recommendation Modules]] - Providing context-sensitive suggestions in search results | |
* [[vufind2:record_drivers|Record Drivers]] - Representing metadata in an object format recognized by VuFind | |
* [[vufind2:record_tabs|Record Tabs]] - Objects representing tabs on the record view page | |
* [[vufind2:building_a_related_record_module|Related Records Modules]] - Providing context-sensitive suggestions in record views | |
* [[vufind2:session_handlers|Session Handlers]] - Custom PHP session storage mechanisms | |
* [[vufind2:statistics_drivers|Statistics Drivers]] - Modules for gathering search/record view statistics | |
| |
===== How-Tos ===== | |
* [[..:Adding Facets|Adding Facets]] - How to add a new facet to searches. | |
* [[vufind2:authorization|Authorization]] - Information on how VuFind handles user authorization. | |
* [[vufind2:building_an_ils_driver|Building an ILS Driver]] - How to connect to your Integrated Library System. | |
* [[vufind2:building_a_controller|Building a Controller]] - How to add new pages and functionality to the interface. | |
* [[vufind2:building_a_view_helper|Building a View Helper]] - How to add custom behavior to templates. | |
* [[..:autocomplete#building_custom_suggestions|Building Custom Autosuggestions]] - How to customize VuFind's autocomplete functionality. | |
* [[vufind2:connecting_a_new_external_data_source|Connecting a New External Data Source]] - Building a VuFind module for a new data source that can't be indexed directly into VuFind (i.e. third-party API) | |
* [[vufind2:customizing_the_user_interface|Customizing the User Interface]] - Basics on customizing the presentation layer of VuFind. | |
* [[vufind2:displaying_a_custom_field|Displaying a Custom Field]] - How to make a new field visible in the VuFind environment. | |
* [[..:searches_customizing_tuning_adding|Displaying a New Search Field]] - How to add search fields to the VuFind web interface | |
* [[vufind2:supporting_a_new_citation_style|Supporting a New Citation Style]] - How to add a citation style to VuFind. | |
* [[vufind2:supporting_a_new_export_format|Supporting a New Export Format]] - How to add support to export metadata from VuFind to files/third-party systems. | |
* [[vufind2:supporting_a_new_metadata_format|Supporting a New Metadata Format]] - How to add a record driver and build an importer for non-MARC records. | |
| |
===== Planning ===== | |
| |
* [[https://github.com/vufind-org/vufind/pulls|GitHub pull requests]] - A place to view and discuss work in progress on new features. | * [[https://github.com/vufind-org/vufind/pulls|GitHub pull requests]] - A place to view and discuss work in progress on new features. |
* [[http://vufind.org/jira|JIRA]] - VuFind's issue tracker. | * [[http://vufind.org/jira|JIRA]] - VuFind's issue tracker. |
| * [[http://vufind.slack.com|Slack]] - Email crhallberg@gmail.com for an invitation to the Slack if you cannot sign up directly. |
| |
===== Testing ===== | ==== Other Notes ==== |
| |
* [[..:Continuous Integration|Continuous Integration]] - Notes on project-level VuFind testing. | |
* [[..:Testing Checklist|Testing Checklist]] - Feature list helpful for validating functionality of VuFind code. | |
* [[vufind2:unit_tests|Unit Tests]] - Notes on building and running tests for VuFind components. | |
| |
===== External Resources ===== | |
* [[http://wiki.code4lib.org/index.php/Working_with_MaRC|Working with MARC]] - This Code4Lib page offers useful resources for dealing with MARC records. | * [[http://wiki.code4lib.org/index.php/Working_with_MaRC|Working with MARC]] - This Code4Lib page offers useful resources for dealing with MARC records. |
| |