]> git.evergreen-ils.org Git - working/Evergreen.git/blob - docs/admin_initial_setup/designing_your_catalog.adoc
LP2061136 - Stamping 1405 DB upgrade script
[working/Evergreen.git] / docs / admin_initial_setup / designing_your_catalog.adoc
1 Designing your catalog
2 ======================
3
4 Introduction
5 ------------
6
7 When people want to find things in your Evergreen system, they will check the
8 catalog. In Evergreen, the catalog is made available through a web interface,
9 called the _OPAC_ (Online Public Access Catalog). In the latest versions of the
10 Evergreen system, the OPAC is built on a set of programming modules called the
11 Template Toolkit. You will see the OPAC sometimes referred to as the _TPAC_.
12
13 In this chapter, we'll show you how to customize the OPAC, change it from its
14 default configuration, and make it your own.
15
16 Configuring and customizing the public interface
17 ------------------------------------------------
18
19 The public interface is referred to as the TPAC or Template Toolkit (TT) within
20 the Evergreen community. The template toolkit system allows you to customize the
21 look and feel of your OPAC by editing the template pages (.tt2) files as well as
22 the associated style sheets.   
23
24 Locating the default template files
25 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26
27 The default URL for the TPAC on a default Evergreen system is
28 _http://localhost/eg/opac/home_ (adjust _localhost_ to match your hostname or IP
29 address).
30
31 The default template file is installed in _/openils/var/templates/opac_.
32
33 You should generally avoid touching the installed default template files, unless
34 you are contributing changes for Evergreen to adopt as a new default. Even then,
35 while you are developing your changes, consider using template overrides rather
36 than touching the installed templates until you are ready to commit the changes
37 to a branch. See below for information on template overrides.
38
39 Mapping templates to URLs
40 ~~~~~~~~~~~~~~~~~~~~~~~~~
41
42 The mapping for templates to URLs is straightforward. Following are a few
43 examples, where _<templates>_ is a placeholder for one or more directories that
44 will be searched for a match:
45
46 * _http://localhost/eg/opac/home => /openils/var/<templates>/opac/home.tt2_
47 * _http://localhost/eg/opac/advanced =>
48 /openils/var/<templates>/opac/advanced.tt2_
49 * _http://localhost/eg/opac/results => 
50 /openils/var/<templates>/opac/results.tt2_
51
52 The template files themselves can process, be wrapped by, or include other
53 template files. For example, the _home.tt2_ template currently involves a number
54 of other template files to generate a single HTML file.
55
56 Example Template Toolkit file: _opac/home.tt2_.
57 ----
58 [%  PROCESS "opac/parts/header.tt2";
59     WRAPPER "opac/parts/base.tt2";
60     INCLUDE "opac/parts/topnav.tt2";
61     ctx.page_title = l("Home") %]
62     <div id="search-wrapper">
63       [% INCLUDE "opac/parts/searchbar.tt2" %]
64     </div>
65     <div id="content-wrapper">
66         <div id="main-content-home">
67              <div class="common-full-pad"></div>
68              [% INCLUDE "opac/parts/homesearch.tt2" %]
69              <div class="common-full-pad"></div>
70         </div>
71      </div>
72 [% END %]
73 ----
74 Note that file references are relative to the top of the template directory.
75
76 How to override template files
77 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
78
79 Overrides for template files or TPAC pages go in a directory that parallels the
80 structure of the default templates directory. The overrides then get pulled in
81 via the Apache configuration.
82
83 The following example demonstrates how to create a file that overrides the
84 default "Advanced search page" (_advanced.tt2_) by adding a new 
85 _templates_custom_ directory and editing the new file in that directory.
86
87 ----
88 bash$ mkdir -p /openils/var/templates_custom/opac
89 bash$ cp /openils/var/templates/opac/advanced.tt2 \
90          /openils/var/templates_custom/opac/.
91 bash$ vim /openils/var/templates_custom/opac/advanced.tt2
92 ----
93
94 Configuring the custom templates directory in Apache's eg.conf
95 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96
97 You now need to teach Apache about the new custom template directory. Edit
98 _/etc/apache2/sites-available/eg.conf_ and add the following _<Location /eg>_
99 element to each of the _<VirtualHost>_ elements in which you want to include the
100 overrides. The default Evergreen configuration includes a VirtualHost directive
101 for port 80 (HTTP) and another one for port 443 (HTTPS); you probably want to
102 edit both, unless you want the HTTP user experience to be different from the
103 HTTPS user experience.
104
105 ----
106 <VirtualHost *:80>
107     # <snip>
108
109     # - absorb the shared virtual host settings
110     Include eg_vhost.conf
111     <Location /eg>
112         PerlAddVar OILSWebTemplatePath "/openils/var/templates_custom"
113     </Location>
114
115     # <snip>
116 </VirtualHost>
117 ----
118
119 Finally, reload the Apache configuration to pick up the changes. You should now
120 be able to see your change at _http://localhost/eg/opac/advanced_ where
121 _localhost_ is the hostname of your Evergreen server.
122
123 Adjusting colors for your public interface
124 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
125
126 You may adjust the colors of your public interface by editing the _colors.tt2_
127 file. The location of this file is in 
128 _/openils/var/templates/opac/parts/css/colors.tt2_. When you customize the
129 colors of your public interface, remember to create a custom file in your custom
130 template folder and edit the custom file and not the file located in your default
131 template.    
132
133 Adjusting fonts in your public interface
134 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135
136 Font sizes can be changed in the _colors.tt2_ file located in
137 _/openils/var/templates/opac/parts/css/_. Again, create and edit a custom
138 template version and not the file in the default template.
139
140 Other aspects of fonts such as the default font family can be adjusted in
141 _/openils/var/templates/opac/css/style.css.tt2_. 
142
143 Media file locations in the public interface
144 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145 The media files (mostly PNG images) used by the default TPAC templates are stored
146 in the repository in _Open-ILS/web/images/_ and installed in
147 _/openils/var/web/images/_.
148
149 Changing some text in the public interface
150 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
151
152 Out of the box, TPAC includes a number of placeholder text and links. For
153 example, there is a set of links cleverly named Link 1, Link 2, and so on in the
154 header and footer of every page in TPAC. Here is how to customize that for a 
155 _custom templates_ skin.
156
157 To begin with, find the page(s) that contain the text in question. The simplest
158 way to do that is with the grep -s command. In the following example, search for
159 files that contain the text "Link 1":
160
161 ----
162 bash$ grep -r "Link 1" /openils/var/templates/opac
163 /openils/var/templates/opac/parts/topnav_links.tt2
164 4:            <a href="http://example.com">[% l('Link 1') %]</a>
165 ----
166
167
168 Next, copy the file into our overrides directory and edit it with vim.
169
170 Copying the links file into the overrides directory.
171
172 ----
173 bash$ cp /openils/var/templates/opac/parts/topnav_links.tt2 \
174 /openils/var/templates_custom/opac/parts/topnav_links.tt2
175 bash$ vim /openils/var/templates_custom/opac/parts/topnav_links.tt2
176 ----
177
178 Finally, edit the link text in _opac/parts/header.tt2_. Content of the
179 _opac/parts/header.tt2_ file.
180
181 ----
182 <div id="gold-links-holder">
183     <div id="gold-links">
184         <div id="header-links">
185             <a href="http://example.com">[% l('Link 1') %]</a>
186             <a href="http://example.com">[% l('Link 2') %]</a>
187             <a href="http://example.com">[% l('Link 3') %]</a>
188             <a href="http://example.com">[% l('Link 4') %]</a>
189             <a href="http://example.com">[% l('Link 5') %]</a>
190         </div>
191     </div>
192 </div>
193 ----
194
195 For the most part, the page looks like regular HTML, but note the `[%_(" ")%]`
196 that surrounds the text of each link. The `[% ... %]` signifies a TT block,
197 which can contain one or more TT processing instructions. `l(" ... ");` is a
198 function that marks text for localization (translation); a separate process can
199 subsequently extract localized text as GNU gettext-formatted PO (Portable
200 Object) files.
201
202 As Evergreen supports multiple languages, any customization to Evergreen's
203 default text must use the localization function. Also, note that the
204 localization function supports placeholders such as `[_1]`, `[_2]` in the text;
205 these are replaced by the contents of variables passed as extra arguments to the
206 `l()` function.
207
208 Once the link and link text has been edited to your satisfaction, load the page
209 in a Web browser and see the live changes immediately.
210
211 Adding translations to PO file
212 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
213
214 After you have added custom text in translatable form to a TT2 template, you need to add the custom strings and its translations to the PO file containing the translations. Evergreen PO files are stored  in _/openils/var/template/data/locale/_ 
215
216 The PO file consists of pairs of the text extracted from the code:  Message ID  denoted as _msgid_ and message string denoted as _msgstr_.  When adding the custom string to PO file: 
217
218 * The line with English expressions must start with _msgid_. The English term must be enclosed in double apostrophes. 
219 * The line with translation start with /msgstr/. The translation to local language must be and enclosed in enclosed in double apostrophes.  
220 * It is recommended to  add a note in which template and on which line the particular string is located. The lines with notes must be marked as comments i.e., start with number sign (#) 
221
222 Example: 
223
224 ----
225
226 # ---------------------------------------------------------------------
227 # The lines below contains the custom strings manually added to the catalog
228 # ---------------------------------------------------------------------
229
230 #: ../../Open-ILS/src/custom_templates/opac/parts/topnav_links.tt2:1
231 msgid "Union Catalog of the Czech Republic"
232 msgstr "Souborný katalog České republiky"
233
234
235 #: ../../Open-ILS/src/custom_templates/opac/parts/topnav_links.tt2:1
236 msgid "Uniform Information Gateway "
237 msgstr "Jednotná informační brána"
238
239 ----
240
241 [NOTE]
242 ====
243 It is good practice to save backup copy of the original PO file before changing it.
244 ====
245
246 After making changes, restart Apache to make the changes take effect. As root run the command:
247
248 ----
249 service apache2 restart
250 ----
251
252 Adding and removing MARC fields from the record details display page
253 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
254
255 It is possible to add and remove the MARC fields and subfields displayed in the
256 record details page.  In order to add MARC fields to be displayed on the details
257 page of a record, you will need to map the MARC code to variables in the
258 _/openils/var/templates/opac/parts/misc_util.tt2 file_.
259
260 For example, to map the template variable _args.pubdates_ to the date of
261 publication MARC field 260, subfield c, add these lines to _misc_util.tt2_:
262
263 ----
264 args.pubdates = [];
265 FOR sub IN xml.findnodes('//*[@tag="260"]/*[@code="c"]');
266     args.pubdates.push(sub.textContent);
267 END;
268 args.pubdate = (args.pubdates.size) ? args.pubdates.0 : ''
269 ----
270
271 You will then need to edit the 
272 _/openils/var/templates/opac/parts/record/summary.tt2_ file in  order to get the
273 template variable for the MARC field to display.
274
275 For example, to display the date of publication code you created in the
276 _misc_util.tt2_ file, add these lines:
277
278 ----
279 [% IF attrs.pubdate; %]
280     <span itemprop="datePublished">[% attrs.pubdate | html; %]</span>
281 [% END; %]
282 ----
283
284 You can add any MARC field to your record details page. Moreover, this approach
285 can also be used to display MARC fields in other pages, such as your results
286 page.
287
288 Using bibliographic source variables
289 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
290
291 For bibliographic records, there is a "bib source" that can be associated with
292 every record. This source and its ID are available as record attributes called
293 _bib_source.source_ and _bib_source.id_.  These variables do not present
294 themselves in the catalog display by default.
295
296 .Example use case
297 ****
298
299 In this example, a library imports e-resource records from a third party and
300 uses the bib source to indicate where the records came from. Patrons can place
301 holds on these titles, but they must be placed via the vendor website, not in
302 Evergreen. By exposing the bib source, the library can alter the Place Hold
303 link for these records to point at the vendor website.
304
305 ****
306
307 Setting the default physical location for your library environment
308 ------------------------------------------------------------------
309
310 _physical_loc_ is an Apache environment variable that sets the default physical
311 location, used for setting search scopes and determining the order in which
312 copies should be sorted. This variable is set in
313 _/etc/apache2/sites-available/eg.conf_. The following example demonstrates the
314 default physical location being set to library ID 104:
315
316 ----
317 SetEnv physical_loc 104
318 ----
319
320 Setting a default language and adding optional languages
321 --------------------------------------------------------
322
323 _OILSWebLocale_ adds support for a specific language. Add this variable to the
324 Virtual Host section in _/etc/apache2/eg_vhost.conf_.
325
326 _OILSWebDefaultLocale_ specifies which locale to display when a user lands on a
327 page in TPAC and has not chosen a different locale from the TPAC locale picker.
328 The following example shows the _fr_ca_ locale being added to the locale picker
329 and being set as the default locale:
330
331 ----
332 PerlAddVar OILSWebLocale "fr_ca"
333 PerlAddVar OILSWebLocale "/openils/var/data/locale/opac/fr-CA.po"
334 PerlAddVar OILSWebDefaultLocale "fr-CA"
335 ----
336
337 Below is a table of the currently supported languages packaged with Evergreen:
338
339 [options="header"]
340 |===
341 |Language| Code| PO file
342 |Arabic - Jordan| ar_jo | /openils/var/data/locale/opac/ar-JO.po
343 |Armenian| hy_am| /openils/var/data/locale/opac/hy-AM.po
344 |Czech| cs_cz| /openils/var/data/locale/opac/cs-CZ.po
345 |English - Canada| en_ca| /openils/var/data/locale/opac/en-CA.po
346 |English - Great Britain| en_gb| /openils/var/data/locale/opac/en-GB.po
347 |*English - United States| en_us| not applicable
348 |French - Canada| fr_ca| /openils/var/data/locale/opac/fr-CA.po
349 |Portuguese - Brazil| pt_br| /openils/var/data/locale/opac/pt-BR.po
350 |Spanish| es_es| /openils/var/data/locale/opac/es-ES.po
351 |===
352 *American English is built into Evergreen so you do not need to set up this
353 language and there are no PO files. 
354
355 Updating translations in Evergreen using current translations from Launchpad
356 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
357
358 Due to Evergreen release workflow/schedule, some language strings may already have been translated in Launchpad,
359 but are not yet packaged with Evergreen. In such cases, it is possible to manually replace the PO file in
360 Evergreen with an up-to-date PO file downloaded from Launchpad. 
361
362 . Visit the Evergreen translation site in https://translations.launchpad.net/evergreen[Launchpad] 
363 . Select required language (e.g. _Czech_ or _Spanish_)
364 . Open the  _tpac_  template  and  then select option _Download translation_. Note: to be able to download the translation file you need to be logged in to Launchpad.
365 . Select _PO format_ and submit the _request for download_ button. You can also request for download of all existing templates and languages at once, see https://translations.launchpad.net/evergreen/master/+export. The download link will be sent You to email address provided. 
366 . Download the file and name it according to the language used (e.g., _cs-CZ.po_ for Czech or  _es-ES.po_ for Spanish)  
367 . Copy the downloaded file to  _/openils/var/template/data/locale_. It is a good practice to backup the original PO file before.
368 . Be sure that the desired language is set as default, using the <<_setting_a_default_language_and_adding_optional_languages,Default language>> procedures.
369
370 Analogously, to update the web staff client translations, download the translation template _webstaff_ and copy it to _openils/var/template/data/locale/staff_.
371
372
373 Changes require web server reload to take effect. As root run the command 
374
375 ----
376 service apache2 restart
377 ----
378
379 Change Date Format in Patron Account View
380 -----------------------------------------
381 Libraries with same-day circulations may want their patrons to be able to view
382 the due *time* as well as due date when they log in to their OPAC account.  To
383 accomplish this, go to _opac/myopac/circs.tt2_.  Find the line that reads:
384
385 ----
386 [% date.format(due_date, DATE_FORMAT) %]
387 ----
388
389 Replace it with:
390
391 ----
392 [% date.format(due_date, '%D %I:%M %p') %]
393 ----
394
395
396 Including External Content in Your Public Interface
397 ---------------------------------------------------
398
399 The public interface allows you to include external services and content in your
400 public interface. These can include book cover images, user reviews, table of
401 contents, summaries, author notes, annotations, user suggestions, series
402 information among other services. Some of these services are free while others
403 require a subscription.    
404
405 The following are some of the external content services which you can configure
406 in Evergreen.
407
408 OpenLibrary
409 ~~~~~~~~~~~
410
411 The default install of Evergreen includes OpenLibrary book covers. The settings
412 for this are controlled by the <added_content> section of
413 _/openils/conf/opensrf.xml_. Here are the key elements of this configuration:
414
415 ----
416 <module>OpenILS::WWW::AddedContent::OpenLibrary</module>
417 ----
418
419 This section calls the OpenLibrary perl module. If you wish to link to a
420 different book cover service other than OpenLibrary, you must refer to the
421 location of the corresponding Perl module. You will also need to change other
422 settings accordingly.
423
424 ----
425 <timeout>1</timeout>
426 ----
427
428 Max number of seconds to wait for an added content request to return data. Data 
429 not returned within the timeout is considered a failure.
430 ----
431 <retry_timeout>600</retry_timeout>
432 ----
433
434 This setting is the amount of time to wait before we try again.
435
436 ----
437 <max_errors>15</max_errors>
438 ----
439
440 Maximum number of consecutive lookup errors a given process can have before
441 added content lookups are disabled for everyone. To adjust the site of the cover
442 image on the record details page edit the config.tt2 file and change the value
443 of the record.summary.jacket_size. The default value is "medium" and the
444 available options are "small", "medium" and "large."   
445
446 ChiliFresh
447 ~~~~~~~~~~
448
449 ChiliFresh is a subscription-based service which allows book covers, reviews and
450 social interaction of patrons to appear in your catalog. To activate ChiliFresh,
451 you will need to open the Apache configuration file _/etc/apache2/eg_vhost.conf_
452 and edit several lines:
453
454 . Uncomment (remove the "#" at the beginning of the line) and add your ChiliFresh
455 account number:
456
457 ----
458 #SetEnv OILS_CHILIFRESH_ACCOUNT
459 ----
460
461 . Uncomment this line and add your ChiliFresh Profile:
462
463 ----
464 #SetEnv OILS_CHILIFRESH_PROFILE
465 ----
466
467 Uncomment the line indicating the location of the Evergreen JavaScript for
468 ChiliFresh:
469
470 ----
471 #SetEnv OILS_CHILIFRESH_URL http://chilifresh.com/on-site /js/evergreen.js
472 ----
473
474 . Uncomment the line indicating the secure URL for the Evergreen JavaScript :
475
476 ----
477 #SetEnv OILS_CHILIFRESH_HTTPS_URL https://secure.chilifresh.com/on-site/js/evergreen.js
478 ----
479
480 [id="_content_cafe"]
481 Content Café
482 ~~~~~~~~~~~~
483
484 Content Café is a subscription-based service that can add  jacket images,
485 reviews, summaries, tables of contents and book details to your records.
486
487 In order to activate Content Café, edit the _/openils/conf/opensrf.xml_ file and
488 change the _<module>_ element to point to the ContentCafe Perl Module:
489
490 ----
491 <module>OpenILS::WWW::AddedContent::ContentCafe</module>
492 ----
493
494 To adjust settings for Content Café, edit a couple of fields with the
495 _<ContentCafe>_ Section of _/openils/conf/opensrf.xml_.
496
497 Edit the _userid_ and _password_ elements to match the user id and password for
498 your Content Café account.
499
500 This provider retrieves content based on ISBN or UPC, with a default preference
501 for ISBNs.  If you wish for UPCs to be preferred, or wish one of the two identifier
502 types to not be considered at all, you can change the "identifier_order" option
503 in opensrf.xml.  When the option is present, only the identifier(s) listed will
504 be sent.
505
506 Obalkyknih.cz
507 ~~~~~~~~~~~~~
508
509 Setting up Obalkyknih.cz account
510 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
511
512 If your library wishes to use added content provided by Obalkyknih.cz, a service based in the Czech Republic, you have to http://obalkyknih.cz/signup[create an Obalkyknih.cz account].
513 Please note that the interface is only available in Czech. After logging in your Obalkyknih.cz account, you have to add your IP address and Evergreen server address to your account settings.
514 (In case each library uses an address of its own, all of these addresses have to be added.) 
515
516 Enabling Obalkyknih.cz in Evergreen
517 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
518
519 Set obalkyknih_cz.enabled to true in '/openils/var/templates/opac/parts/config.tt2':
520
521 [source,perl]
522 ----
523 obalkyknih_cz.enabled = 'true';
524 ----
525
526 Enable added content from Obalkyknih.cz in '/openils/conf/opensrf.xml' configuration file (and – at the same time – disable added content from Open Library, i.e., Evergreen's default added content provider):
527
528 [source,xml]
529 ----
530 <!-- <module>OpenILS::WWW::AddedContent::OpenLibrary</module> -->
531 <module>OpenILS::WWW::AddedContent::ObalkyKnih</module>
532 ----
533
534 Using default settings for Obalkyknih.cz means all types of added content from Obalkyknih.cz are visible in your online catalog.
535 If the module is enabled, book covers are always displayed. Other types of added content (summaries, ratings or tables of contents) can be: 
536
537 * switched off using _false_ option,
538 * switched on again using _true_ option.
539
540 The following types of added content are used: 
541
542 * summary (or annotation)
543 * tocPDF (table of contents available as image)
544 * tocText (table of contents available as text)
545 * review (user reviews)
546
547 An example of how to switch off summaries: 
548
549 [source,xml]
550 ----
551 <summary>false</summary>
552 ----
553
554
555 Google Analytics
556 ~~~~~~~~~~~~~~~~
557
558 Google Analytics is a free service to collect statistics for your Evergreen
559 site. Statistic tracking is disabled by default through the Evergreen 
560 client software when library staff use your site within the client, but active 
561 when anyone uses the site without the client. This was a preventive measure to 
562 reduce the potential risks for leaking patron information. In order to use Google 
563 Analytics you will first need to set up the service from the Google Analytics 
564 website at http://www.google.com/analytics/. To activate Google Analytics you 
565 will need to edit _config.tt2_ in your template. To enable the service set 
566 the value of google_analytics.enabled to true and change the value of 
567 _google_analytics.code_ to be the code in your Google Analytics account.
568
569 NoveList
570 ~~~~~~~~
571
572 Novelist is a subscription-based service providing reviews and recommendation
573 for books in you catalog. To activate your Novelist service in Evergreen, open
574 the Apache configuration file _/etc/apache2/eg_vhost.conf_ and edit the line:
575
576 ----
577 #SetEnv OILS_NOVELIST_URL
578 ----
579
580 You should use the URL provided by NoveList.
581
582 RefWorks
583 ~~~~~~~~
584
585 RefWorks is a subscription-based online bibliographic management tool. If you
586 have a RefWorks subscription, you can activate RefWorks in Evergreen by editing
587 the _config.tt2_ file located in your template directory. You will need to set
588 the _ctx.refworks.enabled_ value to _true_. You may also set the RefWorks URL by
589 changing the _ctx.refworks.url_ setting on the same file. 
590
591 SFX OpenURL Resolver
592 ~~~~~~~~~~~~~~~~~~~~
593
594 An OpenURL resolver allows you to find electronic resources and pull them into
595 your catalog based on the ISBN or ISSN of the item. In order to use the SFX
596 OpenURL resolver, you will need to subscribe to the Ex Libris SFX service.  To
597 activate the service in Evergreen edit the _config.tt2_ file in your template.
598 Enable the resolver by changing the value of _openurl.enabled_ to _true_ and
599 change the _openurl.baseurl_ setting to point to the URL of your OpenURL
600 resolver. 
601
602 Syndetic Solutions
603 ~~~~~~~~~~~~~~~~~~
604
605 Syndetic Solutions is a subscription service providing book covers and other
606 data for items in your catalog. In order to activate Syndetic, edit the
607 _/openils/conf/opensrf.xml_ file and change the _<module>_ element to point to
608 the Syndetic Perl Module:
609
610 ----
611 <module>OpenILS::WWW::AddedContent::Syndetic</module>
612 ----
613
614 You will also need to edit the  _<userid>_ element to be the user id provided to
615 you by Syndetic.
616
617 Then, you will need to uncomment and edit the _<base_url>_ element so that it
618 points to the Syndetic service:
619
620 ----
621 <base_url>http://syndetics.com/index.aspx</base_url>
622 ----
623
624 For changes to be activated for your public interface you will need to restart
625 Evergreen and Apache.
626
627 The Syndetic Solutions provider retrieves images based on the following identifiers
628 found in bibliographic records:
629
630 * ISBN
631 * UPC
632 * ISSN
633
634
635 Clear External/Added Content Cache
636 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
637
638 On the catalog's record summary page, there is a link for staff that will forcibly clear 
639 the cache of the Added Content for that record. This is helpful for when the Added Content 
640 retrieved the wrong cover jacket art, summary, etc. and caches the wrong result.
641
642 image::media/clear-added-content-cache-1.png[Clear Cache Link]
643
644 Once clicked, there is a pop up that will display what was cleared from the cache. 
645
646 image::media/clear-added-content-cache-2.jpg[Example Popup]
647
648 You will need to reload the record in the staff client to obtain the new images from your 
649 Added Content Supplier.
650
651
652 Configure a Custom Image for Missing Images
653 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
654
655 You can configure a "no image" image other than the standard 1-pixel
656 blank image.  The example eg_vhost.conf file provides examples in the
657 comments.  Note: Evergreen does not provide default images for these.
658
659
660 Including Locally Hosted Content in Your Public Interface
661 ---------------------------------------------------------
662
663 It is also possible to show added content that has been generated locally 
664 by placing the content in a specific spot on the web server.  It is 
665 possible to have local book jackets, reviews, TOC, excerpts or annotations.
666
667 File Location and Format
668 ~~~~~~~~~~~~~~~~~~~~~~~~
669
670 By default the files will need to be placed in directories under 
671 */openils/var/web/opac/extras/ac/* on the server(s) that run Apache.
672
673 The files need to be in specific folders depending on the format of the 
674 added content.  Local Content can only be looked up based on the 
675 record ID at this time.
676
677 .URL Format:
678 \http://catalog/opac/extras/ac/*\{type}/\{format}/r/\{recordid}*
679
680  * *type* is one of *jacket*, *reviews*, *toc*, *excerpt* or *anotes*.
681   * *format* is type dependent:
682     - for jacket, one of small, medium or large
683     - others, one of html, xml or json ... html is the default for non-image added content
684   * *recordid* is the bibliographic record id (bre.id).
685
686 Example
687 ~~~~~~~
688
689 If you have some equipment that you are circulating such as a 
690 laptop or eBook reader and you want to add an image of the equipment 
691 that will show up in the catalog.
692
693 [NOTE]
694 =============
695 If you are adding jacket art for a traditional type of media 
696 (book, CD, DVD) consider adding the jacket art to the http://openlibrary.org 
697 project instead of hosting it locally.  This would allow other 
698 libraries to benefit from your work.
699 =============
700
701 Make note of the Record ID of the bib record.  You can find this by 
702 looking at the URL of the bib in the catalog.  
703 http://catalog/eg/opac/record/*123*, 123 is the record ID.  
704 These images will only show up for one specific record.
705
706 Create 3 different sized versions of the image in png or jpg format.
707
708  * *Small* - 80px x 80px - named _123-s.jpg_ or _123-s.png_ - This is displayed in the browse display.
709  * *Medium* - 240px x 240px - named _123-m.jpg_ or _123-m.png_ - This is displayed on the summary page.
710  * *Large* - 400px x 399px - named _123-l.jpg_ or _123-l.png_ - This is displayed if the summary page image is clicked on.
711
712 [NOTE] 
713 The image dimensions are up to you, use what looks good in your catalog.
714  
715 Next, upload the images to the evergreen server(s) that run apache, 
716 and move/rename the files to the following locations/name.  
717 You will need to create directories that are missing.
718  
719  * Small - Move the file *123-s.jpg* to */openils/var/web/opac/extras/ac/jacket/small/r/123*
720  * Medium - Move the file *123-m.jpg* to */openils/var/web/opac/extras/ac/jacket/medium/r/123*.
721  * Large - Move the file *123-l.jpg* to */openils/var/web/opac/extras/ac/jacket/large/r/123*.
722
723 [NOTE]
724 The system doesn't need the file extension to know what kind of file it is.
725  
726 Reload the bib record summary in the web catalog and your new image will display.
727
728 include::carousels.adoc[]