====== Displaying a Custom Field: VuFind® 3.x Example ====== // This example shows you how to set up a custom module, custom theme and custom record driver. It assumes that you have already added a custom field to your Solr index named RecID -- you can see more concrete examples of adding fields on the [[indexing:adding_facets|Adding Facets]] page. // 1. Create a custom module (if you haven't already done so) cd $VUFIND_HOME php install.php * At the prompt "What module name would you like to use? [blank for none]" type in your module name * Link configuration to apache’s config.d directory per the install.php directions * Restart apache (sudo /etc/init.d/apache2 restart) 2. From $VUFIND_HOME enter the following code generator command: php public/index.php generate extendservice vufind/plugin_managers/recorddriver/factories/solrmarc ModuleName * You should see the following: Saved file: /usr/local/vufind/module/ModuleName/src/ModuleName/RecordDriver/SolrMarc.php Saved file: /usr/local/vufind/module/ModuleName/src/ModuleName/RecordDriver/Factory.php Successfully updated /usr/local/vufind/module/ModuleName/config/module.config.php * If you get an error like "Class ModuleName\RecordDriver\Factory does not exist", or if the files do not get written, then do the following: export VUFIND_LOCAL_MODULES=ModuleName php public/index.php generate extendservice vufind/plugin_managers/recorddriver/factories/solrmarc ModuleName 3. Update the SolrMarc.php file to add a new field. * Make sure the namespace line reads “namespace ModuleName\RecordDriver;” * Add the getter method. See below for an example, but also reference the SolrMarc.php file in /module/VuFind/src/VuFind/RecordDriver/ for more examples of getter code. Example: fields['recID']) ? $this->fields['recID'] : ''; } } 4. Customize the template where you want to use that field by copying the appropriate files into your custom theme. cd $VUFIND_HOME/themes mkdir ThemeName * Make the following sub-directory structure: ThemeName/templates/RecordDriver/SolrDefault/ * Put the following content in $VUFIND_HOME/themes/ThemeName/theme.config.php: 'bootstrap3' ); * cd $VUFIND_HOME/themes/bootstrap3/templates/RecordDriver/SolrDefault/, and copy core.phtml and result-list.phtml to new theme’s SolrDefault directory * Edit core.phtml and result-list.phtml to add new fields for display. Example: driver->getRecordID(); if (!empty($recordID)): ?> transEsc('Record ID')?>: escapeHtml($recordID)?> * Edit local/config/vufind/config.ini to set theme = ThemeName