lengthen cardnumber to 16 and make it unique
[koha.git] / doc / kohadoc.sgml
1 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
2 <book>
3
4 <!-- Header -->
5  <!-- High Availability info -->
6  <!-- Wiki-ize this? -->
7  <bookheader>
8   <title>Koha Manual</title>
9   <author>
10      <firstname>Koha</firstname>
11      <surname>DocTeam</surname>
12      <affiliation>
13         <address>
14            <email>info@koha.org</email>
15         </address>
16      </affiliation>
17   </author>
18     <revhistory>
19       <revision>
20          <revnumber>0.01</revnumber>
21          <date>2002-05-23</date>
22           <revremark> Started Document  </revremark>
23       </revision>
24       <revision>
25                 <revnumber>0.02</revnumber>
26                   <date>2002-12-17</date>
27           <revremark> Attempted to cover 1.2, 1.3(devel) Koha versions.  Updates to MARC information, other major enhancements to Koha also noted.  </revremark>
28       </revision>
29             <revision>
30                         <revnumber>0.03</revnumber>
31                           <date>2003-01-09</date>
32                           <authorinitials>nsr</authorinitials>
33                     <revremark> Still attempting to cover 1.2, 1.3(devel, specifically recent 1.3.3 release) Koha versions.  Proofing, CREDITS, MySQL bias, other corrections. </revremark>
34       </revision>
35       <!-- Additional (*earlier*) revision histories go here -->
36    </revhistory>
37
38   <abstract>
39     <indexterm>
40       <primary>Koha</primary>
41     </indexterm>
42      <para>
43      This is the full documentation set for the Koha Library application suite.  All of the information found in subsets of the documentation (ie the INSTALL file) are contained in this file.  It is conveniently grouped into 3 major sections, plus appendices, intended for the three broad classes of reader the developers and documenters anticipate.  Happy Cataloging!
44     </para>
45 <para><emphasis>*** Editor's note:  This is the third edition of the manual, covering the Koha version 2.0.X release series.  ***</emphasis></para>
46
47   </abstract>
48
49  </bookheader>
50 <!-- Section1: intro -->
51
52  <sect1 id="intro">
53    <title>Introduction</title>
54
55    <indexterm>
56     <primary>disk!introduction</primary>
57    </indexterm>
58
59   <para>
60    Koha is a library cataloging application, originally created for the Horowhenua Library Trust by Katipo, a small company in New Zealand.  It has always been under the Gnu Public License, and today is installed as a production system in at least 4 countries indexing thousands of individual library items, and currently supports users in 2 languages.  New features and support are handled by a variety of international volunteers.
61   </para>
62
63
64   <sect2 id="copyright">
65    <title>Copyright Information</title>
66
67    <para>
68     This document is copyrighted (c) 2002 The Koha Project and is distributed under the same terms as the Linux Documentation Project (LDP) license, stated below.
69    </para>
70
71    <para>
72     Unless otherwise stated, Koha documents are copyrighted by their respective authors. Koha related documents may
73     be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.  Please check your local laws on copyright.
74    </para>
75
76    <para>
77     If you have any questions about the documentation, please contact
78     <email>info@koha.org</email>.
79     If you have any questions about Koha releases, please contact
80     <email>info@koha.org</email>.
81    </para>
82   </sect2>
83   <!-- Section2: disclaimer -->
84
85   <sect2 id="disclaimer">
86    <title>Disclaimer</title>
87
88    <para>
89     No liability for the contents of this documents can be accepted. Use the concepts, examples and other content at your own risk. As this is a new edition of this document, there may be errors and inaccuracies, that may of course be damaging to your system. Proceed with caution, and although damage is highly unlikely, the author(s) do not take any responsibility for that, or anything else that occurs.
90    </para>
91
92    <para>
93     All copyrights are held by their by their respective owners, unless specifically noted otherwise.  Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.
94    </para>
95
96    <para>
97     Naming of particular products or brands should not be seen as endorsements.
98    </para>
99
100    <para>
101     You are strongly recommended to take a backup of your system before major installation and backups at regular intervals.
102    </para>
103   </sect2>
104
105 <!-- Section2: newversions-->
106
107   <sect2 id="newversions">
108    <title>New Versions</title>
109
110     <indexterm>
111      <primary>(your index root)!news on</primary>
112     </indexterm>
113
114
115    <para>
116     This is the third release.
117    </para>
118
119    <para>
120         This document's home page is www.koha.org.
121    </para>
122
123
124    <para>
125     The latest version number of this document can be
126     obtained from www.koha.org.
127    </para>
128
129    <para>
130     This HOWTO will always be made available on
131     the koha website, and will eventually have a variety of formats:
132    </para>
133
134    <para>
135    <itemizedlist>
136     <listitem>
137      <para>
138       <ulink url="http://www.koha.org/manual">HTML</ulink>.
139      </para>
140     </listitem>
141
142     <listitem>
143      <para>
144        <ulink URL="http://www.koha.org/manual">plain text</ulink>.
145      </para>
146     </listitem>
147
148     <listitem>
149      <para>
150       <ulink url="http://www.koha.org/manual">compressed
151        postscript (US letter format)</ulink>.
152      </para>
153     </listitem>
154
155     <listitem>
156      <para>
157       <ulink url="http://www.koha.org/manual">SGML source</ulink>.
158      </para>
159     </listitem>
160    </itemizedlist>
161    </para>
162
163    <para>
164     Since paper sizes vary in the world, this documentation is available in
165     <emphasis>universal format</emphasis> (8.27x11in; 210x279mm).  More or less :0.
166    </para>
167   </sect2>
168
169 <!-- Section2: credits -->
170
171   <sect2 id="credits">
172    <title>Credits</title>
173
174    <para>
175     In this version I have the pleasure of acknowledging:
176    </para>
177
178    <para>Mike Mylonas, Rachel Hamilton-Williams, Pat Eyler, and Jo Ransom in particular for either their specific contributions to the manual, or their support for the editing.  Rosalie Blake is the true, peerless guru of proofreading, and saved you the reader, and I from numerous ugly sentences and errors.  Naturally, I (and the entire community) are also indebted to all of the Koha contributors collectively.-- Nick, The Sometime Documeister, Koha
179    </para>
180
181    <para>
182     The entire project is indebted to <emphasis>Katipo</emphasis> and <emphasis>HLT</emphasis>
183     for opening the source in the first place.
184    </para>
185   </sect2>
186
187 <!-- Section2: feedback -->
188
189   <sect2 id="feedback">
190    <title>Feedback</title>
191
192    <para>
193     Feedback is most certainly welcome for this document. Without
194     your submissions and input, this document wouldn't exist. Please
195     send your additions, comments and criticisms to the following
196     email address : <email>info AT koha.org</email>.
197    </para>
198    </sect2>
199
200 <!-- Section2: translations -->
201
202   <sect2 id="translations">
203    <title>Translations </title>
204
205         <para>Translations are or should soon be available in the following languages:</para>
206    <para>
207     <itemizedlist>
208
209       <listitem>
210        <para>
211          <ulink url="NEEDLINK">Bengali/Bangla Translation</ulink>
212          by <email>someone (at) somewhere.in</email>
213        </para>
214       </listitem>
215
216       <listitem>
217         <para>
218                 <ulink url="NEEDLINK">Portuguese Translation</ulink>
219          by <email>someone (at) somewhere.portugal</email>
220        </para>
221        </listitem>
222
223
224       <listitem>
225        <para>
226          <ulink url="NEEDLINK">Catalan Translation</ulink>
227          by <email>someone (at) somewhere.catalonia</email>
228       </para>
229       </listitem>
230
231       <listitem>
232        <para>
233          <ulink url="http://fr.koha.org/manual/book1.html">French Translation / Traduction Française</ulink>
234          by <email>morinn (at) free.fr</email>
235        </para>
236       </listitem>
237
238       <listitem>
239        <para>
240          <ulink url="NEEDLINK">Hindi Translation</ulink>
241          by <email>someone (at) somewhere.in</email>
242        </para>
243       </listitem>
244
245       <listitem>
246        <para>
247          <ulink url="NEEDLINK">Italian Translation</ulink>
248          by <email>someone (at) somewhere.it</email>
249        </para>
250       </listitem>
251
252       <listitem>
253        <para>
254          <ulink url="NEEDLINK">Maori Translation</ulink>
255          by <email>someone (at) somewhere.nz</email>
256        </para>
257       </listitem>
258
259      <listitem>
260       <para>
261         <ulink url="http://www.koha.org">Polish Translation</ulink>
262         by <email>Benedict (at) somewhere.po</email>
263       </para>
264      </listitem>
265
266      <listitem>
267       <para>
268         <ulink url="http://es.koha.org/">Spanish Translation</ulink>
269         by <email>someone (at) somewhere.es</email>
270       </para>
271      </listitem>
272     </itemizedlist>
273    </para>
274    </sect2>
275
276  </sect1>
277
278 <!-- Section1: intro: END -->
279
280  <sect1 id="Koha_Welcome">
281   <title>Welcome to Koha</title>
282   <para>
283   Dear User,</para>
284   <para>Hello, and welcome to Koha.  The manual you're reading and the software that it documents are the fruits of a lot of volunteer labor, hard work by the staff of Katipo Communications, and donations by Horowhenua Library Trust and other libraries.</para>
285
286 <para> Koha was initially developed in 1999 and the first library went live in January of 2000.  Koha's code has been in production since then and is continuing to move towards higher levels of functionality and standards compliance, including embracing the international records and cataloging standards MARC and Z39.50.  Our development community has also grown and now includes contributors on four continents and ports in several languages.</para>
287
288 <para>This is one of the beauties of Free Software -- all of the people involved have reasons to work on a Library System, by working together they've been able to create something far more useful than anything they could have done on their own, while enjoying the benefits of all the work done before.</para>
289
290 <para>Why is all this feel good philosophy here?  Isn't this a 'Welcome to Koha' letter, you ask?  Well, this stuff <emphasis>is</emphasis> part of our welcome.  We're proud of the work that we've done so far.  We're also excited about the improvements and additions that are just over the horizon.  We want you to get comfortable with Koha, to make it your own.  In fact, we want you to be so comfortable with it that you're ready to make changes in it, and we want you to feel at home enough to contribute them back to the community.</para>
291
292 <para>We're a friendly bunch, we've got a users mailing list where you should feel free to ask questions.  You can subscribe by filling out the form at http://koha.org/mailing_list.html .  If you'd rather ask questions in real time, you can use irc and meet with us on the #Koha-Support channel at irc.katipo.co.nz, port 6667. </para>
293
294 <para>I hope I've convinced you to join the project, but even if I haven't I hope that you'll enjoy the time you spend with our software.</para>
295
296   <para>
297   Happy cataloging!
298   </para>
299   <para><emphasis>Pat Eyler<emphasis></para>
300   <para>Kaitiaki, Koha</para>
301 </sect1>
302
303
304  <sect1 id="How_To_Use_this_Manual">
305   <title>How To Use This Manual</title>
306    <sect2 id="UseTop">
307    <title>As always...<title>
308   <para>
309    <emphasis>As always, the usual Disclaimer applies: <emphasis> This manual, like much of everything on the Web, is continually under construction.
310   </para>
311    </sect2>
312    <sect2 id="Formats">
313    <title>Formats</title>
314
315    <para>As a convention, blocks of code or screen capture are formatted like the below:</para>
316    <para><screen>[bookish@server]$ command</screen></para>
317
318    <para>  Additionally, email addresses are formatted for antispam purposes, eg:</para>
319    <para> info AT koha.org </para>
320    <para> info AT koha DOT org </para>
321    </sect2>
322
323 </sect1>
324
325 <!-- Section1: Library IT Support  -->
326  <sect1 id="Book1_Library_IT_Support">
327   <title>Book 1:  For the Library IT Support Staff</title>
328
329
330   <para>"What is written without effort is, in general, read without pleasure."</para>
331 <para><emphasis>  -Samuel Johnson</emphasis></para>
332
333 <!-- ALL THIS NEEDS AN ASSESSMENT -->
334
335   <sect2 id="To_Start">
336            <title>To Start</title>
337
338    <para>
339     The usual pattern for a Koha installation is the setup of a dedicated server in the library to support the installation of a server grade operating system and the necessary support software.  Koha was originally designed to run with Apache running on Linux.  Most sites have continued this trend.    Koha should run with little or no adjustment necessary on most versions of Unix.  Similarly, there are no Apache specific areas in the code, however we have little feedback on how the application will run with other HTTP daemons.  Any feedback is most appreciated.
340    </para>
341    <!-- <para><emphasis>It is possible to run Koha on Microsoft's Windows server platform with appropriate ports of support tools.  A mail list devoted to windows related koha issues has been started at, please see the FAQ section for more information and the links for downloads. </emphasis></para> -->
342    <para>NB: All the Koha system administrators are firm believers in backing up the database on a regular schedule, especially before upgrades to existing Koha installations.</para>
343    </sect2>
344
345    <sect2 id="Installer.pl">
346            <title>Option 1: Automated Configuration</title>
347   <para>The preferred method of Koha installation for anyone running a Unix operating system and a machine explicity for Koha is to run the installation script:</para>
348    <para> <screen> perl -Imodules installer.pl</screen>
349    </para>
350    <para> which can be found with the tarball. </para>
351 </sect2>
352
353 <sect2 id="Install_Manual">
354  <Title>Option 2: Manual Koha Installation</Title>
355 <para> It is possible to install Koha manually, however this procedure is recommended for very experienced admins only.</para>  
356 <para>To do so:</para>
357         <itemizedlist>
358         <listitem><para>    Make directory in tmp called Koha ( mkdir /tmp/Koha )       </para></listitem>
359         <listitem><para>    Make sure to install the following packages:  libexpect-perl </para></listitem>
360         <listitem><para>Download the following files, from the following locations:     </para>
361                                 <para><itemizedlist>
362                                 <listitem><para> Bundle-KohaSupport-0.08.tar.gz  from <ulink url="http://www.cpan.org">http://www.cpan.org/</ulink>, Locate by searching for Koha </para></listitem>
363         <listitem><para> yaz-2.0.tar.gz from <ulink url="http://www.indexdata.dk/yaz/">http://www.indexdata.dk/yaz/</ulink>
364     (Specific instructions: right-hand menu/download/sources)
365         </para></listitem>
366         <listitem><para>Koha-2.0 from www.koha.org, Specific instructions: <ulink url="http://sourceforge.net/project/showfiles.php?group_id=16466"http://sourceforge.net/project/showfiles.php?group_id=16466/>
367         </para></listitem>      
368         <listitem><para>Unpack all sources into reasonably named directories.</para></listitem>
369         </listitem> 
370         <listitem><para>  Install yaz:  Go into yaz-2.0, until you see the file README.  Installation instructions:
371                 <programlisting>
372           $ ./configure
373           $ make
374           $ su
375           PASSWORD: XXXX
376           # make install
377           # exit
378           $
379                 </programlisting>
380     
381         </para></listitem>
382         <listitem><para>
383     Install the Koha Bundle
384         <programlisting>
385                $ cd /tmp/Koha/Bundle-KohaSupport-0.08
386                $ perl Makefile.PL
387                $ make
388                $ su
389                PASSWORD: XXXX
390                # make install
391                # exit
392                $
393                 </programlisting>
394     
395         </para></listitem>
396         <listitem><para>
397     Get your MySQL server running - check the MySQL website for more assistance.
398         </para></listitem>
399         <listitem><para>
400     Get your Apache server running - chances are that your distribution of Linux includes this and has it running already.
401         </para></listitem>
402 <!--  <section>         <title>    Start the Koha Install       </title>
403         <itemizedlist>
404         
405 <para>
406     Start the installer
407         <programlisting>
408        perl -Imodules installer.pl
409                 </programlisting>
410     
411         </para></listitem>
412         <para>
413      <emphasis>or</emphasis> 
414         </para> 
415     Install manually [for advanced users] 
416         </para></listitem>
417         <listitem><para> 
418 -->
419         <listitem><para>Start the Koha Install: [note, this is a rough outline of the steps necessary!] </para>
420         <itemizedlist>
421         <listitem>
422         <para>Things to know: </para>
423         <itemizedlist>
424                 <listitem><para>    server's domain name and system configuration directory (normally /etc - This should be an absolute path; a trailing / is not required.) </para></listitem>
425                 <listitem><para>
426                         Make sure that a koha.conf file exits at /etc/koha.conf.  An example koha.conf file is shown below.
427         <programlisting>
428         database=Koha
429         hostname=localhost
430         user=kohaadmin
431         pass=kohaadmin
432         includes=/usr/local/koha/opac/htdocs/includes
433         intranetdir=/usr/local/koha/intranet
434         opacdir=/usr/local/koha/opac
435         kohalogdir=/usr/local/koha/log
436         kohaversion=2.0.0pre1
437         httpduser=apache
438         intrahtdocs=/usr/local/koha/intranet/htdocs/intranet-tmpl
439         opachtdocs=/usr/local/koha/opac/htdocs/opac-tmpl
440                 </programlisting>
441                 </para></listitem>
442                 <!--<listitem><para>    Setup apache                    </para></listitem> -->
443                 <listitem><para>
444     Select a virtual server name, port for the OPAC (catalogue), and port for the intranet (librarian's interface)
445                 </para></listitem></listitem>
446                 <listitem><para>
447     add the appropriate entries to the Apache Virtual Host setup. (see enclosed)
448         <programlisting>
449     &lt;VirtualHost _default_:*>
450         ServerAdmin webmaster@dummy-opac
451         DocumentRoot /usr/www/opac/htdocs
452         ScriptAlias  /cgi-bin/ /usr/www/opac/cgi-bin/
453         ServerName opac
454         ErrorLog logs/opac-error_log
455         CustomLog logs/opac-access_log common
456     &lt;/VirtualHost>
457                         </programlisting>
458     
459                 </para></listitem>
460                 <listitem><para>
461     set Serveradmin, Servername, DocumentRoot, ScriptAlias with associated (below) info in httpd.conf
462         <programlisting>
463     &lt;Directory "PATHofSOMEsort">
464         AllowOverride None
465         Options None
466         Order allow,deny
467         Allow from all
468     &lt;/Directory>
469                         </programlisting>
470     
471                 </para></listitem>
472                 <listitem><para>
473     Place the appropriate koha files in the appropriate directories (/usr/local/koha usually, with subdirs OPAC and INTRANET)
474                 </para></listitem>
475                 <listitem><para>
476     Load the MySQL configuration [PAT FIXME:  what's the command/file for this now???] NOTE:  koha.conf must exist by this point.
477                 </para></listitem>
478                 <listitem><para>
479     Restart apache.
480                 </para></listitem>
481                 </itemizedlist>
482                 </listitem>
483     
484     </sect2>
485
486 <sect2 id="Windows_Install">
487 <Title>Windows Installation</Title>
488         <para>--</para>
489 </sect2>
490
491
492 <!-- FIXME:REASSESS **EVERYTHING** here -->
493     <sect2 id="Exceptions_To_Install">
494            <title>Installation Alternative Options</title>
495                <sect3 id="Rootless">
496                    <title>Installing without Root</title>
497                 <para>To install Koha without access to superuser/root/sysadmin level privileges, ask your system administrator to arrange for a user called opac and then set the user in the OPAC virtual host.  This will permit all of the cgi scripts to be executed as 'user' opac.  The Virtualhost then may suexec to the user installing Koha, and koha.conf can then be written by that user, avoiding the need for the chown command, which is restricted to a superuser.  It is then extremely important to set PERL5LIB environment variable to point at the libraries you have installed: </para>
498                 </para> <screen> SetEnv PERL5LIB /some/path/to/modules </screen></para>
499                 </sect3>
500                  <sect3 id="NoVirt">
501                  <title>Installation without Virtual Hosts</title>
502
503                         <para>Koha is designed to be installed as two separate services - each having a unique web address and folder structure (two virtual web hosts). Both services access a single SQL database which may be hosted on the same server or on a remote server. Following the steps below reconfigure koha (the intranet and opac) to run on a single, non-virual server.</para>
504
505                         <para>NB: In the examples below, pathto = /usr/local/www</para>
506
507                         Create new /etc/koha.conf</para>
508                         <para><screen>
509                         database=kohadb
510                         hostname=localhost
511                         user=kohadbuser
512                         pass=xxxxxxxx
513                         includes=/pathto/html/koha/includes
514                         </screen></para>
515
516                         <para><emphasis>Create a general purpose web site:</emphasis></para>
517
518                         <para>/pathto/html</para>
519                         <para>/pathto/cgi-bin</para>
520
521
522                         <para><emphasis>Create koha web installations folders:</emphasis></para>
523
524                         <para>/pathto/html/koha/includes</para>
525                         <para>/pathto/html/koha/oadmin</para>
526                         <para>/pathto/html/koha/opac</para>
527
528
529                         <para><emphasis>Create koha cgi-bin folders:</emphasis></para>
530
531                         <para>/pathto/cgi-bin/opac</para>
532                         <para>/pathto/cgi-bin/koha</para>
533                         <para>/pathto/cgi-bin/koha/C4</para>
534
535                         <para>Copy koha distro opac-html\* into /pathto/koha/opac/*</para>
536                         <para>Copy koha distro intranet-html\* into /pathto/koha/oadmin/*</para>
537
538                         <para>koha distro koha\* into /pathto/cgi-bin/oadmin <emphasis>(including C4 directory and its contents)</emphasis>.</para>
539
540                         <para>Copy member.pl + seach.pl into /pathto/cgi-bin/opac</para>
541
542                         <para>Move /pathto/koha/opac/images/* into /pathto/images/opac/*</para>
543                         <para>Move /pathto/koha/oadmin/images/* into /pathto/images/oadmin/*</para>
544
545                         <para>Rename opac *.inc files so that they all have opac-* prefix ie</para>
546                         <para> rename "join-top.inc" to "opac-join-top.inc"</para>
547                         <para><emphasis>and</emphasis> rename "members-top.inc" to "opac-members-top.inc"</para>
548
549                         <para>Move <emphasis>ALL</emphasis> includes from koha distro into /pathto/koha/includes
550                         [(It is preferable that any new includes for opac should be named using the "opac-" prefix convention (or similar)].</para>
551
552
553                         <para>Example excerpts from apache httpd.conf:</para>
554                         <para><screen>
555                         ServerName library.example.org
556                         ServerPath /usr/local/www
557                         DocumentRoot /usr/local/www/html
558                         #
559                         Alias /images/ "/usr/local/www/html/images/"
560                         SetEnv PERL5LIB "/usr/local/www/cgi-bin/koha"
561
562                         &lt;Directory /var/www/html >
563                         # This is the root of general purpose website
564                         # NO server side includes!
565                         AllowOverride None
566                         Options -Includes -FollowSymlinks -Indexes
567                         Order Deny,Allow
568                         Allow From All
569                         &lt;/Directory>
570
571                         # ======== Use Server Side Includes Here =======
572                         &lt;Directory /usr/local/www/html/koha/opac>
573                         AllowOverride None
574                         Options +Includes -FollowSymlinks -Indexes
575                         AddHandler server-parsed .html
576                         &lt;/Directory>
577                         #
578                         &lt;Directory "/usr/local/www/html/koha/oadmin">
579                         #
580                         AllowOverride None
581                         #
582                         # First, you must enable +Includes or +IncludesNoExec
583                         # in "Options"...
584                         Options +Includes -FollowSymlinks -Indexes
585                         #
586                         # Allow server-parsed content (SSI) for files
587                         AddHandler server-parsed .html
588                         #
589                         # Optional simple server based authentication....
590                         # Authtype Basic
591                         # AuthName Koha-Online-Admin
592                         # AuthUserFile /usr/local/www/ok_users/koha-users
593                         # AuthGroupFile /usr/local/www/ok_groups/koha-groups
594                         # &lt;Limit GET POST PUT DELETE>
595                         # require user koha-admin group lib-admins
596                         # &lt;/Limit>
597                         &lt;/Directory>
598                         &lt;/VirtualHost>
599                 </screen></para>
600
601                 <para> Note:  You will also need to change the include files to reflect the new "root" directory -- if you don't do this, everything will work until you click on a section button at the top of a page.</para>
602                 </sect3>
603
604
605    </sect2>
606
607    </sect1>
608 <!-- Section1: Librarian  -->
609  <sect1 id="Book_2_Librarian">
610   <title>Book 2:  For the Librarian</title>
611 <!-- Ideally, I'd like caricature style images of these "people"  -->
612  <sect2 id="Lib_Home_Page">
613   <title>The Home Page</title>
614 <para>The home page offers links to these sections of Koha:</para>
615    <para>
616     <itemizedlist>
617              <listitem>
618       <para>Catalogue Search: This will search on any word/words in the title, subtitle, series title or subject fields (?abstract, web URL?). It will search on truncated strings. For a more specific search, click on the advanced search link below the box.
619       </para>
620      </listitem>
621              <listitem>
622       <para>Member search: will search on a member's barcode number, or on any part of the member's name (including truncated names).
623       </para>
624      </listitem>
625              <listitem>
626       <para>Acquisitions: Koha has two acquisitions processes. The full acquisitions is a sophisticated system for keeping track of spending on books and other materials in multiple budgets. The simple version is a much quicker method of adding data if budget tracking is not required.
627       </para>
628      </listitem>
629              <listitem>
630       <para>
631         Accounts and Reports
632         </para>
633      </listitem>
634              <listitem>
635       <para>
636         Circulation: Koha has two Circulation processes. This link takes you to the web-based circulation system. The alternate text-only system is intended for faster access over a slow comms link. Talk to your system administrator if you need this version.
637         </para>
638      </listitem>
639     </itemizedlist>
640    </para>
641 </sect2>
642 <sect2 id="Catalog_sec">
643 <title>Catalogue</title>
644 <para>The Catalogue is the heart of Koha, and the search system for it the principal tool for most users.</para>
645   <sect3 id="CatalogSearch">
646   <title>Catalogue Search:</title>
647
648 <mediaobject>
649 <imageobject>
650 <imagedata fileref="image002" scale="40">
651 </imageobject>
652 <textobject>
653 <phrase>
654 screenshot
655 </phrase>
656 </mediaobject>
657
658   <para>The Catalogue search is the first step to identify a particular item or material on a particular subject. It offers the option of an item barcode search (the barcode can be scanned or typed), or single or combined specific searches, which can be customized for individual sites. The Horowhenua Library Trust searches (above) offer Keyword and Title and/or Author and/or Dewey (i.e.class number) and/or Class (i.e. item type), and/or Subject search. Other fields such as Publisher, Abstract, web site etc. are also possible.  Searches can be constructed using more than one field e.g. to find a video of Les Miserables: a search for Title Miserables and Class Video, will bring up a listing for the video, but not the book with the same title. Searching over more than one field will slow the search down.</para>
659
660 <para>The title search offers the alternative of an exact title search, (by clicking on the exact button). This is useful for short titles consisting only of very common words eg Time, War</para>
661
662 <sect3 id="CatalogRecord">
663   <title>Catalogue Record:</title>
664
665 <para>The full cataloguing record is stored in three sections: Biblio, Group, and Item records. </para>
666
667 <sect4 id="TheBibliosection">
668   <title>The Biblio Section</title>
669 <para> The Biblio section contains the copyright information: author, title, series, copyright date and subject. Several printings of the same work can be attached to one Biblio record - paperback, hard back, large print, e-book.</para>
670 </sect4>
671
672 <sect4 id="TheGroupSection">
673   <title>The Group Section</title>
674
675 <para>The Group section contains bibliographic data for a particular publication of that work, such as ISBN number, physical description, imprint (publisher information), etc. A Group record can contain one or several items. It also specifies the item type (and associated borrowing parameters), and classification. You might have eg 2 copies of a title, one of which is to be Reference only, and the other a borrowing copy. You would make 2 group records, one for each copy. But if you later added another borrowing copy, you would add it to the group containing the first borrowing copy, since all the data in that Group record is true of both copies.</para>
676 </sect4>
677
678 <sect4 id="TheItemSection">
679   <title>The Item Section</title>
680 <para>Item section contains the information relating to one specific copy: barcode, purchasing information, branch attachment, lending record.</para>
681 </sect4>
682
683 </sect3>
684 <sect3 id="CatalogueMaintenance">
685   <title>Catalogue Maintenance</title>
686 <para>Simple changes, e.g. spelling/typing corrections can be made by using the Modify buttons on the Biblio Record display, the Group Record display and the Item (Barcode number) display. </para>
687
688 <para>Further catalogue maintenance is available by clicking on the Catalogue maintenance link (in the Help box). (Access to this section may be password protected). The Catalogue maintenance section lets a cataloguer correct some other errors that creep into the catalogue: subject and group maintenance, and retrieving a biblio that has been deleted by mistake.</para>
689 <mediaobject>
690 <imageobject>
691 <imagedata fileref="image004" scale="40">
692 </imageobject>
693 <textobject>
694 <phrase>
695 screenshot
696 </phrase>
697 </mediaobject>
698
699
700 <para>Subject Maintenance allows you to correct misspellings, or to change one subject to another, and have the change applied globally in your database. </para>
701
702 <mediaobject>
703 <imageobject>
704 <imagedata fileref="image006" scale="40">
705 </imageobject>
706 <textobject>
707 <phrase>
708 screenshot
709 </phrase>
710 </mediaobject>
711
712 <mediaobject>
713 <imageobject>
714 <imagedata fileref="image008" scale="40">
715 </imageobject>
716 <textobject>
717 <phrase>
718 screenshot
719 </phrase>
720 </mediaobject>
721
722 <para>The wrong subject can be corrected, and applied by clicking on the Modify button.</para>
723
724 <mediaobject>
725 <imageobject>
726 <imagedata fileref="image010" scale="40">
727 </imageobject>
728 <textobject>
729 <phrase>
730 screenshot
731 </phrase>
732 </mediaobject>
733
734
735 <para>Group Maintenance allows you to move a group from one biblio to another.
736 The third option in Catalogue maintenance also allows you to undelete a biblio that you have deleted by mistake, or restore the record of an item that was lost and then found.
737 </para>
738
739 <mediaobject>
740 <imageobject>
741 <imagedata fileref="image012" scale="40">
742 </imageobject>
743 <textobject>
744 <phrase>
745 screenshot
746 </phrase>
747 </mediaobject>
748
749
750 <mediaobject>
751 <imageobject>
752 <imagedata fileref="image014" scale="40">
753 </imageobject>
754 <textobject>
755 <phrase>
756 screenshot
757 </phrase>
758 </mediaobject>
759
760
761 <para>Clicking on the undelete link will restore the biblio record. </para>
762
763
764 </sect3>
765 </sect2>
766 <sect2 id="Acquisitions">
767   <title>Acquisitions</title>
768   <para>Koha has two acquisitions processes. The full acquisitions is a sophisticated system for keeping track of spending on books and other materials in multiple budgets. The simple version is a much quicker method of adding data if budget tracking is not required.</para>
769   <sect3 id="SimpleAcquisitions">
770     <title>Simple Acquisitions</title>
771     <para>http://intradev.katipo.co.nz/cgi-bin/koha/acqui.simple/addbooks.pl is the simple version.</para>
772
773 <mediaobject>
774 <imageobject>
775 <imagedata fileref="image016" scale="40">
776 </imageobject>
777 <textobject>
778 <phrase>
779 screenshot
780 </phrase>
781 </mediaobject>
782
783     <para>Start by typing any distinctive keyword from the title into the Keyword field, or typing or scanning the ISBN into the ISBN field.</para>
784
785         <para>If you find a biblio record that fits, clicking on it takes you to the additem.pl screen (see below) where you can add the item info.</para>
786
787
788 <mediaobject>
789 <imageobject>
790 <imagedata fileref="image018" scale="40">
791 </imageobject>
792 <textobject>
793 <phrase>
794 screenshot
795 </phrase>
796 </mediaobject>
797
798
799         <para>If the catalogue check for a matching record fails, you can add a new biblio by downloading a MARC record, if this has been set up for you (more in Koha v1.4.), or you can add items manually by clicking on Add New Biblio. </para>
800         <para>The first screen when adding a biblio is Section One, Copyright Information. The only mandatory field is the title.</para>
801
802
803 <mediaobject>
804 <imageobject>
805 <imagedata fileref="image020" scale="40">
806 </imageobject>
807 <textobject>
808 <phrase>
809 screenshot
810 </phrase>
811 </mediaobject>
812
813
814         <para>After submitting the screen, you reach the same additem.pl? screen as described above.
815 Section Two covers Group Information and Item information. You are asked first for the Item information: a barcode, the branch to which it is allocated (for multi-branch systems), the replacement price and any notes that apply to this copy only. Only the barcode and branch are mandatory. Then you have the option of adding to an existing group, or of creating a new group to add it to (see description under 1.2 Cataloguing Record.) </para>
816 <para>Adding a New Group requires you to specify the Format, or item type from a list you will have compiled with your installer. Standard cataloguing fields follow. Dewey subclass is used for filing letters, if you use them.  Volume, Number and Volume Description can be used to identify separate issues of a periodical, for issuing purposes. It is useful to standardize the Volume description -- so use Apr 2002, May 2002, or 2002/04, 2002/05 and stick to your standardized description every time.
817 </para>
818
819 </sect3>
820 <sect3 id="FullAcquisitions">
821     <title>Full Acquisitions</title>
822     <para>The full Acquisitions programme is designed so that items cannot be added to the data base without an explanation of where they have come from. If you want to add a lot of items without going through this process, or if you don't have to worry about keeping track of a budget, use the simplified Acquisitions process.</para>
823
824     <sect4 id="FullAcquisitionsSetup">
825             <title>Setup</title>
826             <para>--</para>
827         </sect4>
828          <sect4 id="FullAcquisitionsSuppliers">
829                     <title>Suppliers</title>
830                     <para>For regular suppliers, Koha lets you build a list of your regular suppliers on by typing in the Start, receive, modify any order.</para>
831
832 <mediaobject>
833 <imageobject>
834 <imagedata fileref="image022" scale="40">
835 </imageobject>
836 <textobject>
837 <phrase>
838 screenshot
839 </phrase>
840 </mediaobject>
841
842
843 <mediaobject>
844 <imageobject>
845 <imagedata fileref="image024" scale="40">
846 </imageobject>
847 <textobject>
848 <phrase>
849 screenshot
850 </phrase>
851 </mediaobject>
852
853                         <para>Click on Add New Supplier and fill in the fields in the left column. </para>
854
855 <mediaobject>
856 <imageobject>
857 <imagedata fileref="image026" scale="40">
858 </imageobject>
859 <textobject>
860 <phrase>
861 screenshot
862 </phrase>
863 </mediaobject>
864
865                         <para>The right hand column of Ordering Information works like this:</para>
866 <para>List prices and Invoice prices: you have the option of selecting the currency in which the price is quoted. If it is to be imported, Koha will do the calculation for the cost in your own currency by using the currency conversion table on:
867
868 <mediaobject>
869 <imageobject>
870 <imagedata fileref="image027" scale="40">
871 </imageobject>
872 <textobject>
873 <phrase>
874 screenshot
875 </phrase>
876 </mediaobject>
877
878                         <para>It does this separately for the List price for the amount that is committed at the time of ordering, and then corrects the amount if it is different at the time the invoice is paid, due to currency fluctuations.</para>
879                         <para>(GST is a local tax in New Zealand, similar to VAT in Britain. It is paid to the supplier as a separate item, but it can be reclaimed as an expense, so that book prices are effectively net, not including GST. This field could be used for a local Sales Tax in other countries if it is reclaimed. Ask your administrator to set the right percentage. If you don't pay any local taxes, and don't want to use this field for anything else, set all your suppliers to No. )</para>
880                         <para>The next three fields allow for a variety of invoice formats. Some suppliers list items by the full retail price, then deduct discount and add tax to the subtotals at the bottom of the invoice. Others deduct discount line by line and don't charge tax. Koha can accommodate all these variations in calculating the exact amount any one item costs. </para>
881         </sect4>
882         <sect4 id="ManualCalculations">
883                             <title>Manual Calculations</title>
884                     <para>Manual Calculations only is used for sundry purchases for which it's not worthwhile setting up a separate supplier profile. Save changes when you're done. You can update a supplier profile at any future date by clicking on the supplier link on /koha/acqui/order.pl.</para>
885         </sect4>
886         <sect4 id="ManualCalculations">
887                             <title>Bookfunds</title>
888                             <para>Bookfunds: Your installer will help you set up Bookfunds and the currencies you might be importing in. Get the exchange rates from your bank, enter them, and you're ready to go. </para>
889         </sect4>
890         <sect4 id="Placing_an_Order">
891                                 <title>Placing An Order</title>
892                                 <para>Enter a keyword for the supplier, and go to:</para>
893
894 <mediaobject>
895 <imageobject>
896 <imagedata fileref="image029" scale="40">
897 </imageobject>
898 <textobject>
899 <phrase>
900 screenshot
901 </phrase>
902 </mediaobject>
903
904                                 <para>Click the Order button. </para>
905
906 <mediaobject>
907 <imageobject>
908 <imagedata fileref="image031" scale="40">
909 </imageobject>
910 <textobject>
911 <phrase>
912 screenshot
913 </phrase>
914 </mediaobject>
915
916                                 <para>Do the catalogue search.</para>
917
918 <mediaobject>
919 <imageobject>
920 <imagedata fileref="image033" scale="40">
921 </imageobject>
922 <textobject>
923 <phrase>
924 screenshot
925 </phrase>
926 </mediaobject>
927
928                                 <para>If it's a new title, click on Add New Biblio and reach.</para>
929
930 <mediaobject>
931 <imageobject>
932 <imagedata fileref="image035" scale="40">
933 </imageobject>
934 <textobject>
935 <phrase>
936 screenshot
937 </phrase>
938 </mediaobject>
939
940                                 <para> (If you're adding an extra copy to an existing biblio, you'll reach this screen with some fields already filled in).</para>
941                                 <para>Fill in the catalogue information on the left, except for the barcode. On the right column, enter the number of copies, bookfund and supplier's list price. Tab down through the next 5 fields and Koha will enter the Replacement cost (usually the same as the List Price, but you can change it later if you need to), the budgeted cost, which is the list price less the discount expected, the GST (tax) if any, and the budgeted total. Then click on Add order.</para>
942
943                                 <para>The budget is updated. The budgeted amount is added to the committed total, and the same amount is deducted from the available total.</para>
944
945                                 <para>To add another title to the same order, start with a new Keyword search on http://test.library.org.nz/cgi-bin/koha/acqui/newbasket.pl?id=(supplier number). Use the same basket for all the books ordered at the same time. If you can't get them all entered in one session, you can reopen the basket and add more titles the next day.</para>
946         </sect4>
947         <sect4 id="Receiving_an_Order">
948                         <title>Receiving an Order</title>
949         <para>Start at /acquisitions/ with a supplier search. Click on Receive. Koha will ask for the Invoice number, the amount of GST on the Invoice, any freight charged and the number of items included on this invoice. </para>
950         <para>When you have entered this data, Koha takes you to a Receipt Summary screen. Identify the item you have received by ISBN or by title keyword, and return to the order screen you filled partially when placing the order.</para>
951         <para>Catalogue Detail: Fill in any new details in the Catalogue Detail column, and assign the item a barcode. Creating a branch called Processing, and receiving orders into it is a help in tracking down new arrivals. </para>
952         <para>Accounting Details: Fill in Quantity received, the actual cost and the Invoice number. </para>
953         <para>Carry on with the next item.</para>
954         <para>When you have finished receiving all the items on this invoice, Koha will have divided the Postage and Packing cost between the all the items received; totaled the GST and it will have calculated the correct net price for each item. Each item will have this price added to its Acquisition record as the Actual Price. This record is retrievable in future by clicking on the Accession link on the item detail page in Catalogue Inquiry. Koha will have updated the budget, moving the money from committed to Spent.</para>
955         </sect4>
956         <sect4 id="Donations">
957                         <title>Donations</title>
958         <para>Donations can be handled in the full Acquisitions programme by creating a virtual supplier called Donations. Koha will require you to enter all prices manually, and will show a warning each time that this is necessary.</para>
959         </sect4>
960         <sect4 id="SundrySuppliers">
961                         <title>Sundry Suppliers</title>
962         <para>Occasional suppliers from whom you expect to make only one purchase can be treated by shortcut. Choose the manual calculations option, and enter the name and address of the supplier in the notes field on the item record.</para>
963         </sect4>
964 </sect3>
965         </sect2>
966 <!-- MANUAL v 1.2 Regula's document -->
967
968 <!-- INTERNET -->
969
970 <sect2 id="OPAC-Internet">
971        <title>OPAC - Internet</title>
972 <para>
973 Cataloguing is done from two points of access, but starts always with a catalogue search which identifies whether the title is in the library or not.
974
975 After a catalogue search, if there is already a record, clicking on the title will allow to modify or to delete the biblio record in the next step, clicking on the item's barcode number will allow to update the group or item record.
976
977 If the title is not yet in the database, a new record must be entered through acquisitions where a record linked to a supplier must be created first. For further detail consult the acquisitions part of the manual.
978 </sect3>
979 <sect3 id="Catalogue search">
980        <title>Catalogue search</title>
981 <para>
982 Anyone who has access to the library's home page through the internet can search the Koha catalogue through the web-OPAC. Two search possibilities are available: a keyword search and a more detailed search.
983 </para>
984 <itemizedlist>
985 <listitem><para>
986 Keyword search:
987 On the library's homepage typing one or more words in the Search the catalogue field results in a keyword search on the catalogue.</para>
988 <!-- *screenshot* -->
989 <para>
990 A keyword search leads to a list of all records that contain the keyword in title, subtitle, series or subject fields. From the list it's possible to look at the detailed information attached to the biblio record: i.e. what kind of items exist, and their whereabouts. From the details, it is possible to place a reservation on an item if you are a member of the library.</para>
991 <para>
992 Getting the search-result is really quick for a very specific search, e.g. Silmarillion, but can take a moment if the search term is general and appears in many titles, e.g. New Zealand.</para>
993 </listitem>
994 <listitem><para>Advanced search:
995 Search the catalogue by Title, Author, Keyword or Class (choice from a list). It's possible to search in only one of these options or to make it a combined search, the latter takes longer to be executed.</para>
996 <para>Search by List of Subjects: A two-stage search which first searches the databse for a term in the list of all the subjects, then searches for bibliots containing the selected subject.</para>
997 </listitem>
998 <listitem><para>Search by Specific Item: Using the item number (barcode) allows to access the information of the specified item.</para>
999 </listitem>
1000 </itemizedlist>
1001 </sect3>
1002
1003 <sect3 id="Member login">
1004        <title>Member login</title>
1005
1006 <para>Any member signed up by the library, and thus having received a member number and a password can access the member's record and the library catalogue through the web-OPAC.</para>
1007
1008 <!-- *screenshot* -->
1009
1010 <para>
1011 After having logged in with a member number and password, members can look up their own reading record, their account which includes the fees due or paid, and their address details. A member can notify a change of address directly from here.The actual change of address in the database has to be approved and taken care of - as any other change of record details - by the library staff.</para>
1012 <para>
1013 Furthermore, the member login allows an online-renewal of books as well as placing a reservation to a borrowed item. See these sections for further information.</para>
1014 </sect3>
1015 </sect2>
1016
1017 <sect2 id="Intranet">
1018        <title>Intranet</title>
1019 <sect3 id="Members">
1020        <title>Members</title>
1021 <para>
1022 To sign in new members, for maintenance of existing records, new password attribution and deleting members, as well as renewal of loans. In certain libraries, a borrower type can be linked to another type and their data will be linked and taken over automatically. For example: a child in a library needs a guarantor to use that library.</para>
1023 <para>Any member can ask for and be given a system generated password to use the online services of the library: catalogue search, requests, looking up member data and modifying their own address information.</para>
1024
1025
1026 <sect4 id="Sign in new member">
1027           <title>Sign in new member</title>
1028
1029 <!-- *screenshot memb-1* -->
1030
1031 <para>Always search by the member name first to check if he or she already has a member account.</para>
1032 <para>
1033
1034 <!-- *screenshot memb-2* -->
1035
1036 <para>If not: Add a new member and check Person or Organization accordingly + fill in the details and save.</para>
1037
1038 <para>
1039 <para>The Personal member screen offers the opportunity to collect details which may be useful for borrower analysis.</para>
1040
1041 <!-- *screenshot* -->
1042 <para>
1043 The mandatory fields are marked with an asterisk: card number, gender, given name, surname, membership category, postal address, town, alternate contact and relationship. Depending on the member category date of birth may be mandatory (see below for guarantee). After having filled in all fields required by your library, click on Save changes, check that all data is correct on the Confirm record screen, and click on Submit to save the record. (Note that the record is not saved until the Submit button has been clicked).</para>
1044 <para>
1045 <para>The Organization option leads to a screen which does not ask for date of birth, gender and other fields which are not relevant to an organization.</para>
1046 <!-- *screenshot* -->
1047
1048 <para>Mandatory fields here are card number, address fields and contact name.
1049 </para>
1050
1051 <para>If there is already a member account, make sure it's not the same person before signing in the new member or modify the data of the existing account if necessary.</para>
1052
1053 </sect4>
1054
1055 <sect4 id="Member information">
1056             <title>Member information</title?
1057 <para>
1058 The right side of the Member's screen displays Fines and Charges, items currently on issue, Items Requested and the Reading record.</para>
1059
1060 <!-- *screenshot* -->
1061 <para>Fines and charges:
1062 (See also under Circulation - Payment of fees).
1063 Fines and charges are calculated automatically by Koha according to the set up.
1064 A complete account history with each charge showing as a separate line can be viewed by clicking on View Account./<para>
1065
1066 <!-- *screenshot* -->
1067
1068 <para>The Account screen of a member also offers the options of creating manual invoices and manual credit notes. Manual invoices are useful when a member returns an item which is damaged, or if the library wishes to record any other money owing (e.g. for photocopying or printing) against a member's record. Credit notes can also be used when someone wants to pay only part of a charge. Note that the amount field accepts only numbers - so write 2.50, not $2.50.</para>
1069
1070 <para>Fine regimes are set up by parameters.</para>
1071 </sect4>
1072 <sect4 id="Modify member data">
1073         <title>Modify member data</title>
1074 <para>
1075 On the member screen, search by member name or enter the borrower name. On the list of names, click on the name to update + enter.</para>
1076
1077 <!-- *screenshot* -->
1078
1079 <para>Member record on screen, click on modify, change the data and save.</para>
1080 </sect4>
1081 <sect4 id="Delete member">
1082         <title>Delete member</title>
1083 <para>
1084 Any member can be deleted if necessary as long as they don't have items on issue, don't owe money or are not a guarantor with guarantees still linked.</para>
1085 <!-- *screenshot* -->
1086
1087 <para>Check the member to be deleted, check that there are no items on issue, that there is no money due and that the member is not a guarantor. If all is clear, click on <delete>.
1088 If items are still on issue, or money is owing, or guarantees are still attached, Koha will display an error message, and refuse the deletion.</para>
1089
1090 </sect4>
1091 <sect4 id="Password">
1092         <title>Password</title>
1093
1094 <para>
1095 A password is needed for the borrower to log into the online OPAC screen and place a request or check his/her member data. The password is generated by the system on request.</para>
1096 <para>
1097 To create a new password, go to Member screen, search for the member, and show the member details on the screen first. Press the button password and the system shows an automatically generated password on the next screen, where the borrower can change it.</para>
1098
1099 <!-- *screenshot* -->
1100 <para>
1101 A forgotten password cannot be retrieved, simply make the system create a new one.</para>
1102
1103 </sect4>
1104 <sect4 id="Guarantor - guarantee">
1105         <title>Guarantor - guarantee</title>
1106
1107 <para>
1108 In HLT a child needs a guarantor, mostly a parent, to use the library and thus children cannot join on their own account, but only guaranteed by an adult member. This guarantor takes over the responsibility of the books borrowed by the child.</para>
1109
1110 <para>To add a child, i.e. a guarantee, first bring up (or join) the adult, i.e. the guarantor, then click on the Guarantee button at the top of the Membership Record column, and Koha shows the member screen for the guarantee with all the parent's address data copied by the system into the child's data. The child's record asks only for the information which is distinctive for the child.
1111 Up to three children can be registered on the same screen before clicking on Save Change, then Submit to save the record. The number of children registered will now display as links on the guarantor's record, and the users are thus linked.</para>
1112 <para>
1113 A guarantor can only be deleted if all linked guarantees have already been deleted. The guarantee still receives his/her own borrower card and can use the library on its own - but may have other use conditions (e.g. guarantees can borrow less items)</para>
1114
1115 <sect4 id="Renewals">
1116         <title>Renewals</title>
1117
1118 <para>Items currently on issue are displayed in the Items currently on issue box on the Members screen (see above for screenshot). They may be renewed from here (as well as in the Circulation area of both intranet or telnet interfaces). The number of times an item can be renewed, the number of days and wheter a requested item can or not be renewed depends on the parameter's value set up for your library.</para>
1119
1120
1121 <sect4 id="Reading record">
1122         <title>Reading record</title>
1123 <para>
1124 In public libraries, a reading record that keeps track of what a reader has borrowed, has been found to be very helpful, e.g. with housebound readers.
1125 Koha keeps a record of all the items a member borrows if the parameter is set accordingly. If this option is active, the reading record is accessible only for a logged in member, or for consultation by staff.</para>
1126 <para>
1127 The reading record can display the most recent 50 items or the complete list (click on Full Output), and it can be sorted by date, author or title (click on the link at the top of the column).</para>
1128 </sect4>
1129 </sect3>
1130
1131
1132
1133 <sect3 id="Circulation">
1134         <title>Circulation</title>
1135
1136
1137 <sect4 id="Issues">
1138         <title>Issues</title>
1139
1140 <para>
1141 To issue items to a member of the library</para>
1142
1143 <!-- *screenshot circ-2* -->
1144
1145 <para>On the circulation screen, read or enter the borrower's card number or enter the first part of the member's surname.</para>
1146
1147 <!-- *screenshot circ-3* -->
1148
1149 <para>After having typed part of the member's name, choose the right entry from the "Select a borrower" pop-up list and Submit query.</para>
1150
1151 <!-- *screenshot circ-4* -->
1152
1153 <para>On the issues screen, read or enter the barcode number. To issue another book to the same borrower, enter simply another barcode number, to end lending to one borrower and to print the due dates slip, press enter.</para>
1154
1155
1156 <para>It is also possible to adjust the default date of issue, by changing the date before the item is issued. If more than one item is to be issued to the altered date due, check the sticky due date button.</para>
1157
1158 </sect4>
1159
1160 <sect4 id="Returns">
1161         <title>Returns</title>
1162 <para>
1163 To return books in the system when back in the library
1164 >From any screen in circulation, the box returns leads to the returns screen.</para>
1165
1166 <!-- *screenshot circ-10-ret1* -->
1167
1168 <para>Return books in the system by reading or entering the barcode number. You can read in an unlimited number of books to return them one after the other. The system will show the last item returned with information on overdue dates or payments involved. Also, the last ten items returned are shown. </para>
1169
1170 <para>If a book is reserved, a window pops up to ask confirmation of the reservation. A click on yes prints the reserve slip. In case that there are any overdue charges, the date on the returned items list will show up in red and the overdue charges will show up beside the book. They can be "paid" in the system immediately if wished. Note that the change displayed is the total amount owing, not just the charge for this one book.</para>
1171 </para>
1172 If a item hasn't been issued, a special message will indicate this<para>
1173
1174
1175 </sect4>
1176
1177 <sect4 id="Payment of fees">
1178         <title>Payment of fees</title>
1179
1180 <para>
1181 Fine regimes are set up by parameters.</para>
1182 <para>If an item can cause a fee to be charged to a member, the system keeps track of these fees. They can be left unpaid, marked off as paid or written off (should be used only according to the library policy).</para>
1183
1184 <para>Looking up and treating fees of a certain member is possible from the circulation and the members section of koha. The first is the direct way when a member card is used, the latter when the name is to be searched. In practice, fee payments occur most often during circulation, the access through issues is thus shown here. For the options from the members section, see above under Member - Fines.</para>
1185
1186 <!-- *screenshot circ-7* -->
1187
1188 <para>To access payment options click on the Payment link in the Patron Information box.</para>
1189
1190
1191 <!-- *screenshot circ-6-pay* -->
1192
1193 <para>Any fee paid must be checked off as such. To signal a paid fee, check the box Paid.</para>
1194
1195 <para>Depending on the parameters set for each user category, a certain amount of unpaid fees can result in blocking the member for any further borrowing. As long as the member hasn't paid up, the system doesn't allow borrowing any more items and will tell you so.</para>
1196
1197 <!-- *screenshot* -->
1198
1199 <para>Manual invoices and credit notes can be entered by clicking on the buttons so marked. Note that the amount entered does not required a $ or any other currency symbol. Any amount can be booked in, independent of the actual fees due. If a borrower's account goes into credit, the sum owing will show up as a negative sum.</para>
1200
1201 <!-- *screenshot* -->
1202
1203 <para>In Koha, there exists an elegant way of dealing with lost (= very overdue) books. The borrower is charged with the cost of the book, which effectively blocks further borrowing. The book's status is changed to Lost (very overdue), and the item is removed from OPAC displays, but remains on the intranet displays. If the book is returned later, the value of the book is credited to the borrower, and only the fine remains. So, if the borrower says that he or she can't find the book and pays for it, and if they eventually find it, they still can get their money back. And all is accounted for in Koha.</para>
1204
1205
1206 </sect4>
1207
1208 <sect4 id="Reserves">
1209         <title>Reserves</title>
1210 <para>
1211 Reserves result from requests on borrowed items. On return, a requested item, will ask if a reserve slip should be printed or not. Confirm if needed</para>
1212
1213 <!-- *screenshot* -->
1214
1215
1216 </sect4>
1217
1218 <sect4 id="Transfers">
1219         <title>Transfers</title>
1220 <para>
1221 To change the branch of an item.</para>
1222 <para>In practice, it's common to define some additional "virtual" branches, like processing or mending to indicate other whereabouts of an item.</para>
1223 <para>On the transfer screen, choose a new branch and read or enter the item number + enter
1224
1225 <!-- *screenshot* -->
1226
1227 </sect4>
1228 </sect3>
1229
1230 <sect3 id="Accounts and Reports">
1231         <title>Accounts and Reports</title>
1232
1233 <para>Some default reports are offered by Koha. All sort of other reports can be generated with an SQL report writer. Koha will work with most reporting tools. It also has its own reporting tool which is undergoing constant improvement. But this documentation does not take into account this part of Koha.</para>
1234
1235 <sect4 id="Actual reports">
1236         <title>Actual reports</title>
1237 <para>
1238 Two reports on till reconciliation, one of the current day and the other of the day before which allow a detailed analysis of the fees.</para>
1239 </sect4>
1240 </sect3>
1241
1242 <sect3 id="Parameters">
1243         <title>Parameters</title>
1244 <para><itemizedlist>
1245 <listitem><para>setup</para><listitem>
1246 <listitem><para>description of parameters</para></listitem>
1247 <listitem><para>adding new "thing" e.g. a new item-type and modification of a basic parameter (how to)</para></listitem>
1248 </itemizedlist>
1249
1250 <sect4 id="Setup">
1251         <title>Setup</title>
1252 <para>
1253 At installation, Koha comes with a set of default values for the parameters. Each library will edit these values according to their need. In order to prepare a first configuration and to give a general idea of which parameters can take what values, a description of the parameters follows. This list is not exhaustive and will undergo some changes with each new release. Right now it must be considered, even for the actual releases, as "very much under construction" yet.</para>
1254
1255 <para>The actual editing of the parameters is done from the Koha admin page. Clicking on the link of any parameter leads to its admin page, where it is possible to add a new category to a parameter, to edit existing ones or to delete an outdated one.</para>
1256
1257 <para>The values of systempreferences influence which features Koha is going to support. It is the section of parameters which each library should take care of first. The default values are listed below as well as their options.</para
1258
1259 </sect4>
1260 <sect4 id="Description of parameters">
1261         <title>Description of parameters</title>
1262 <table>
1263 <title>Library branches</title>
1264 <tgroup cols="2">
1265 <thead>
1266 <row>
1267 <entry>Library branches</entry>
1268 <entry>the different branches you manage with this Koha server</entry>
1269 <tgroup cols="2">
1270 <thead>
1271 <row>
1272 <entry>Library branches</entry>
1273 <entry>the different branches you manage withh this Koha server</entry>
1274 </row>
1275 </thead>
1276 <tbody>
1277 <row>
1278 <entryBranch code</entry>
1279 <entry>Code of 4 characters</entry>
1280 </row>
1281 </row>
1282 </thead>
1283 <tbody>
1284 <row>
1285 <entryBranch code</entry>
1286 <entry>Code of 4 characters</entry>
1287 </row>
1288 <row>
1289 <entry>Name</entry>
1290 <entryFull name of the branch </entry>
1291 </row>
1292 <row>
1293 <entryIssuing</entry>
1294 <entry>Check box if the branch can issue documents</entry>
1295 </row>
1296 <row>
1297 <entry>Permanent</entry>
1298 <entry>Check box if an item of this branch must be returned at the Home branch</entry>
1299 </row>
1300 <entry> Home</entry>
1301 <entry>Check box to set as Home branch</entry>
1302 </row>
1303 <row>
1304 <entry>Current</entry>
1305 <entry>Check box to set as Current branch</entry>
1306 </row>
1307 <row>
1308 <entry>Address</entry>
1309 <entry>3 lines for the mail address of the branch</entry>
1310 </row>
1311 <row>
1312 <entry>Phone</entry>
1313 <entry>Phone number of the branch</entry>
1314 </row>
1315 <row>
1316 <entry>Fax</entry>
1317 <entry>Fax number of the branch</entry>
1318 </row>
1319 <row>
1320 <entry>E-mail</entry>
1321 <entry>E-mail address of the branch or the responsible person</entry>
1322 </row>
1323 </tbody>
1324 </tgroup>
1325 </table>
1326
1327 <table>
1328 <title>Budget</title>
1329 <tgroup cols="2">
1330 <thead>
1331 <row>
1332 <entry>Budget</entry>
1333 <entry>the budgets allowed to different book funds</entry>
1334 </row>
1335 </thead>
1336 <tbody>
1337 <row>
1338 <entry>Book fund</entry>
1339 <entry>Choose a book fund from the proposed list</entry>
1340 </row>
1341 <row>
1342 <entry>Start date</entry>
1343 <entry>Start date of the financial period of the budget in format yyyy-mm-dd</entry>
1344 </row>
1345 <row>
1346 <entry>End date</entry>
1347 <entry>End date of the financial period for the budget in format yyyy-mm-dd</entry>
1348 </row>
1349 <row>
1350 <entry>Budget amount</entry>
1351 <entry>Amount for the above mentioned financial period
1352 </entry>
1353 </row>
1354 </tbody>
1355 </tgroup>
1356 </table>
1357
1358 <table>
1359 <title>Book funds</title>
1360 <tgroup cols="2">
1361 <thead>
1362 <row>
1363 <entry>Book funds </entry>
1364 <entry>the different book funds</entry>
1365 </row>
1366 </thead>
1367 <tbody>
1368 <row>
1369 <entry>Book fund</entry>
1370 <entry>Code of max. 5 characters</entry>
1371 </row>
1372 <row>
1373 <entry>Name</entry>
1374 <entry>Full name of the coded book fund</entry>
1375 </row>
1376 <row>
1377 <entry>Group</entry>
1378 <entry>Code of max. 5 characters</entry>
1379 </row>
1380 </tbody>
1381 </tgroup>
1382 </table>
1383
1384 <table>
1385 <title>Categories</title>
1386 <tgroup cols="2">
1387 <thead>
1388 <row>
1389 <entry>Categories</entry>
1390 <entry>the different types of borrowers</entry>
1391 </row>
1392 </thead>
1393 <tbody>
1394 <row>
1395 <entry>Category Code</entry>
1396 <entry>Code of max. 2 letters (at HLT one letter describes an area code, and one an age category, they are actually two different fields)</entry>
1397 </row>
1398 <row>
1399 <entry>Description</entry>
1400 <entry>Full text explanation of the category type</entry>
1401 </row>
1402 <row>
1403 <entry>Enrollment Period</entry>
1404 <entry>Period during which a member of the category is allowed to use the library</entry>
1405 </row>
1406 <row>
1407 <entry>Upper Age Limit</entry>
1408 <entry>Maximum age of how long a member can stay in a category, e.g. a child is a child-member up to the age of 16</entry>
1409 </row>
1410 <row>
1411 <entry>Birth needed</entry>
1412 <entry>1 for birth date in format dd/mm/yyyy if it must be a required field</entry>
1413 </row>
1414 <row>
1415 <entry></entry>
1416 <entry>0 for not a required field</entry>
1417 </row>
1418 <row>
1419 <entry>Fine</entry>
1420 <entry>Type of fine charged to this category of members - 1 letter code</entry>
1421 </row>
1422 <row>
1423 <entry>Bulk</entry>
1424 <entry>... Ignore it</entry>
1425 </row>
1426 <row>
1427 <entry>Fee</entry>
1428 <entry>Any other value than 0.00, leads to an enrolment fee charged to a user signed in under this category</entry>
1429 </row>
1430 <row>
1431 <entry>Over-due</entry>
1432 <entry>1 for having a overdue notice for this category of members</entry>
1433 </row>
1434 <row>
1435 <entry></entry>
1436 <entry>0 no overdue notice</entry>
1437 </row>
1438 <row>
1439 <entry>Issue limit</entry>
1440 <entry>Maximum number of items allowed per borrower</entry>
1441 </row>
1442 <row>
1443 <entry>Reserve</entry>
1444 <entry>Any other value than 0.00 leads to a fee upon a reserve made by a member of this category</entry>
1445 </row>
1446 </tbody>
1447 </tgroup>
1448 </table>
1449
1450 <table>
1451 <title>Item types</title>
1452 <tgroup cols="2">
1453 <thead>
1454 <row>
1455 <entry>Item types</entry>
1456 <entry>the supports of an item</entry>
1457 </row>
1458 </thead>
1459 <tbody>
1460 <row>
1461 <entry>Code</entry>
1462 <entry>Code with max. 4 characters</entry>
1463 </row>
1464 <row>
1465 <entry>Description</entry>
1466 <entry>Full description of the item type</entry>
1467 </row>
1468 <row>
1469 <entry>Loan length</entry>
1470 <entry>Number of days this item-type can be borrowed, with 0 days for no loan</entry>
1471 </row>
1472 <row>
1473 <entry>Renewals allowed</entry>
1474 <entry>Check if renewals are allowed</entry>
1475 </row>
1476 <row>
1477 <entry>Rental charge</entry>
1478 <entry>Default value is 0.00. Any other amount induces a rental charge for this item-type</entry>
1479 </row>
1480 </tbody>
1481 </tgroup>
1482 </table>
1483
1484 <table>
1485 <title>Currencies</title>
1486 <tgroup cols="2">
1487 <thead>
1488 <row>
1489 <entry>Currencies</entry>
1490 <entry>Currencies of the booksellers</entry>
1491 </row>
1492 </thead>
1493 <tbody>
1494 <row>
1495 <entry>Currency</entry>
1496 <entry>Abbreviation of the currency</entry>
1497 </row>
1498 <row>
1499 <entry>Rate</entry>
1500 <entry>Actual exchange rate</entry>
1501 </entry>
1502 </row>
1503 </tbody>
1504 </tgroup>
1505 </table>
1506
1507 <table>
1508 <title>Printers</title>
1509 <tgroup cols="2">
1510 <thead>
1511 <row>
1512 <entry>Printers</entry>
1513 <entry>Printers (UNIX paths).</entry>
1514 </row>
1515 </thead>
1516 <tbody>
1517 <row>
1518 <entry>Name</entry>
1519 <entry>Full text name of the printer</entry>
1520 </row>
1521 <row>
1522 <entry>Queue</entry>
1523 <entry>UNIX name of the printer</entry>
1524 </row>
1525 <row>
1526 <entry>Type</entry>
1527 <entry>Type of printer</entry>
1528 </row>
1529 </tbody>
1530 </tgroup>
1531 </table>
1532
1533 <table>
1534 <title>Stopwords</title>
1535 </title>
1536 <tgroup cols="2">
1537 <thead>
1538 <row>
1539 <entry>Stopwords</entry>
1540 <entry>Words deleted during searches</entry>
1541 </row>
1542 </thead>
1543 <tbody>
1544 <row>
1545 <entry>Word</entry>
1546 <entry>A word contained in this list will not be searched.
1547 Used for very frequent words e.g. articles ("the" "a"), or others like "and", "co" etc. Add or delete an entry of this list.</entry>
1548 </row>
1549 </tbody>
1550 </tgroup>
1551 </table>
1552
1553 <table>
1554 <title>System Preferences</title>
1555 <tgroup cols="3">
1556 <thead>
1557 <row>
1558 <entry>Systempreferences</entry>
1559 <entry>System preferences -2 variables are useful in this table</entry>
1560 <entry></entry>
1561 </thead>
1562 <tbody>
1563 <row>
1564 <entry>acquisitions</entry>
1565 <entry>simple</entry>
1566 <entry>simple = version</entry>
1567 </row>
1568 <row>
1569 <entry></entry>
1570 <entry>full</entry>
1571 <entry>full = complex version with budget tracking, supplier list etc.</entry>
1572 </row>
1573 <row>
1574 <entry>autoBarcode</entry>
1575 <entry>1</entry>
1576 <entry>1 for automatic barcode creation</entry>
1577 </row>
1578 <row>
1579 <entry></entry>
1580 <entry>0</entry>
1581 <entry>0 for no barcode creation</entry>
1582 </row>
1583 <row>
1584 <entry>autoMemberNum</entry>
1585 <entry>1</entry>
1586 <entry>1 for automatic member numbers</entry>
1587 </row>
1588 <row>
1589 <entry></entry>
1590 <entry>0</entry>
1591 <entry>0 for manual member number creation</entry>
1592 </row>
1593 <row>
1594 <entry>dateformat</entry>
1595 <entry>metric</entry>
1596 <entry>default value: metric = dd/mm/yyyy</entry>
1597 </row>
1598 <row>
1599 <entry>KohaAdminEmailAddress</entry>
1600 <entry>name AT server</entry>
1601 <entry>e-mail of the person responsible for the parameter administration of the present koha server</entry>
1602 </row>
1603 <row>
1604 <entry>opaclanguages</entry>
1605 <entry>en fr</entry>
1606 <entry>the languages in which KOHA is available (currently en - English; fr - Francais)</entry>
1607 </row>
1608 <row>
1609 <entry>opacthemes</entry>
1610 <entry>hlt default</entry>
1611 <entry>choice of OPAC (Versions of OPAC themes)</entry>
1612 </row>
1613 <row>
1614 <entry>template</entry>
1615 <entry>default</entry>
1616 <entry>choice of templates to be used (which set of templates is used for the chosen Koha version)</entry>
1617 </row>
1618 <row>
1619 <entry>hlt</entry>
1620 <entry> The Horowhenua Library Trust - the first KOHA OPAC</entry>
1621 </row>
1622 <row>
1623 <entry>Aqbooksellers</entry>
1624 <entry>Book sellers</entry>
1625 </row>
1626 </tbody>
1627 </tgroup>
1628 </table>
1629
1630 <table>
1631 <title>Search Results</title>
1632 <tgroup cols="2">
1633 <thead>
1634 <row>
1635 <entry></entry>
1636 <entry></entry>
1637 </thead>
1638 <tbody>
1639 <row>
1640 <entry>List of fields searched</entry>
1641
1642 <entry>Check each box to have the possibility to search in the fields below as well as in the Keywords and in the Subject field. There is a different setup possible for the web-OPAC (OPAC) and the Intranet Catalogue search (Intranet). The admin page lists the default values if no other choices are made and the choice of the fields for the Intranet Catalogue search can be previewed, after having submitted a choice.</entry>
1643 </row>
1644 <row>
1645 <entry>Author</entry>
1646 <entry>Author (Surname Given-Name)</entry>
1647 </row>
1648 <row>
1649 <entry>Title</entry>
1650 <entry>Title</entry>
1651 </row>
1652 <row>
1653 <entry>Subject</entry>
1654 <entry>Subject</entry>
1655 </row>
1656 <row>
1657 <entry>Dewey</entry>
1658 <entry>Dewey number</entry>
1659 </row>
1660 <row>
1661 <entry>Class</entry>
1662 <entry>Item class (offers a pop-up list to choose from)</entry>
1663 </row>
1664 <row>
1665 <entry>Item Number (Barcode)</entry>
1666 <entry>Item number</entry>
1667 </row>
1668 <row>
1669 <entry>Illustrator</entry>
1670 <entry>Illustrator (Surname Given-Name)</entry>
1671 </row>
1672 <row>
1673 <entry>Copyright Date</entry>
1674 <entry>Date of the copyright of the item</entry>
1675 </row>
1676 <row>
1677 <entry>Serial</entry>
1678 <entry>Serial title</entry>
1679 </row>
1680 <row>
1681 <entry>Item Type</entry>
1682 <entry>Item type (used to limit a search to e.g. CDs or books only)</entry>
1683 </row>
1684 <row>
1685 <entry>Publisher</entry>
1686 <entry>Name of the publisher</entry>
1687 </row>
1688 <row>
1689 <entry>ISBN</entry>
1690 <entry>ISBN number without hyphens or spaces</entry>
1691 </row>
1692 <row>
1693 <entry>Publication Date</entry>
1694 <entry>Publication date other than Copyright</entry>
1695 </row>
1696 <row>
1697 <entry>Pages</entry>
1698 <entry>Number of pages</entry>
1699 </row>
1700 <row>
1701 <entry>Illustrators</entry>
1702 <entry>Name of illustrators</entry>
1703 </row>
1704 <row>
1705 <entry>Volume</entry>
1706 <entry>Volume number for a serial item or a part of a multi-volume document</entry>
1707 </row>
1708 <row>
1709 <entry>Size</entry>
1710 <entry>Height of the document</entry>
1711 </row>
1712 <row>
1713 <entry>Branch</entry>
1714 <entry>Name of the branch (used to limit a search to the documents in one particular branch only)</entry>
1715 </row>
1716 <row>
1717 <entry>Lost</entry>
1718 <entry>To limit a search for lost items (box to check)</entry>
1719 </row>
1720 <row>
1721 <entry>Cancelled</entry>
1722 <entry>To limit a search for cancelled items (box to check)</entry>
1723 </row>
1724 </body>
1725 </group>
1726 </table>
1727
1728 </sect4>
1729 <sect4 id="Add a new category / Modification">
1730       <title>Add a new category / Modification</title>
1731 <para>
1732 To add a new category under each parameter, double-check whether it exists or not. If it does exist, editing or deleting can be done with the links on the far left of same line. Please keep in mind that editing or deleting a category from the parameter's list will affect the database and change all the data linked to that particular category. Deleting is possible only if no data-record is linked.</para>
1733
1734 <para>If no category is found click on the Add category box and create a new category. Fill in the necessary data for each property of a new category and save.</para>
1735 <para>Each parameter has its own properties and some of them are required to be filled in. The fields that are required are marked in each add-form.</para>
1736 </sect4>
1737 </sect3>
1738 </sect2>
1739 </sect1>
1740
1741
1742
1743 <!-- Section1: Developer  -->
1744  <sect1 id="Book_3_For_the_Developer">
1745   <title>Book 3:  For the Developer</title>
1746 <!-- Ideally, I'd like caricature style images of these "people"  -->
1747   <para> For humans, honesty is a matter of degree. Engineers are always honest in matters of technology and human relationships. That's why it's a good idea to keep engineers away from customers, romantic interests, and other people who can't handle the truth.</para>
1748 <para><emphasis>- Scott Adams, The Dilbert Principle</emphasis> </para>
1749
1750 <para><emphasis>Real World, The (n.)</emphasis>: Where a computer science student goes after graduation; used pejoratively ("Poor slob, he got his degree and had to go out into the REAL WORLD."). Among programmers, discussing someone in residence there is not unlike talking about a deceased person.</para>
1751
1752
1753  <sect2 id="Basic_Rules_of_Thumb">
1754  <title> Basic Rules of Thumb</title>
1755  <para>When writing perl code for Koha ...</para>
1756  <para>All DBI calls should be checked for errors.</para>
1757  <para>All scripts or modules should have "use strict" and preferably "use warnings".</para>
1758  <para><emphasis> Editor's Note:  This was true until just recently... we are currently in the midst of sorting out how to handle modules and -w / use warnings in addition to some questions about which Perl version to use as a baseline for installs.  If you're deeply interested, ask the collective mind of the developer list, and they'll fill you in on the current status of the discussion. </emphasis></para>
1759  <para>Subroutines should NOT open and close the database every time. The DBI handle (usually $dbh) should be passed as a parameter from the main script running. Opening the DB every time will impose a performance and overhead penalty for large or busy installations, limiting Koha's ability to scale.</para>
1760  </sect2>
1761  <sect2 id="Unit_Testing">
1762   <title>Unit Testing</title>
1763 <para><emphasis>What is unit testing?</emphasis></para>
1764 <para>Unit testing is a method for verifying that you software does what it is supposed to. The idea is that you have a testing framework (Test::Harness in our case) that will automatically run your tests for you, reporting any failures. You'll then write a series of tests to exercise every function of every module in your program. Instead of boring you with details, let's start with an example.  For the Koha project, it is a key part of our effort to have production grade, reliable code.</para>
1765
1766 <para><emphasis>How do I do it?</emphasis></para>
1767 <para>I'll start with the Koha.pm module. It contains four functions: </para>
1768 <para><itemizedlist>
1769 <listitem><para>slashifyDate</para></listitem>
1770 <listitem><para>fixEthnicity</para></listitem>
1771 <listitem><para>borrowercategories</para></listitem>
1772 <listitem><para>ethnicitycategories</para></listitem>
1773 </itemizedlist></para>
1774 <para>All of our tests should go into the t/ directory, and should be put into a file showing which module we're testing. In this case, we'll create a file t/koha.t to hold our tests. Tests start with a bit of magic to make them work:</para>
1775
1776 <para><programlisting role="perl">
1777 BEGIN { $| = 1; print "1..1\n"; }
1778 END {print "not ok 1\n" unless $loaded;}
1779 use C4::Koha;
1780 $loaded = 1;
1781 print "ok 1\n";
1782 </programlisting>
1783 </para>
1784 <para>This sets up the test, tells the harness that it will be running one test (the 'print "1..1\n"' bit), and ensures that the test can load the module (that would be the first test).</para>
1785
1786 <para>If we run the test now, we'll get:</para>
1787 <para><screen>
1788 [pate@gnupate t]$ perl koha.t
1789 1..1
1790 ok 1
1791 [pate@gnupate t]$
1792 </screen></para>
1793 <para>or:</para>
1794 <para><screen>
1795 [pate@gnupate koha]$ ./testKoha.pl
1796 t/koha..............ok
1797 All tests successful.
1798 Files=1, Tests=1, 1 wallclock secs ( 0.25 cusr + 0.11 csys = 0.36 CPU)
1799 [pate@gnupate koha]$
1800 </screen></para>
1801 <para>
1802 slashifyDate takes a string representing a (MySQL style) date,
1803 replaces '-'s with '/'s and returns it in European style date. We can
1804 test it like this:
1805 </para>
1806 <para><screen>
1807 $date = "02/01/2002";
1808 $newdate = &amp;slashifyDate("2002-01-02");
1809
1810 if ($date eq $newdate) {
1811 print "ok 2\n";
1812 } else {
1813 print "not ok 2\n";
1814 }
1815 </screen></para>
1816 <para>We'll also need to let the harness know that we've added a test, so let's change the first line to look like this:</para>
1817
1818 <para><screen>
1819 BEGIN { $| = 1; print "1..2\n"; }
1820 </screen></para>
1821
1822 <para>Now, running the tests looks like this:</para>
1823 <para><screen>
1824 [pate@gnupate koha]$ ./testKoha.pl
1825 t/koha..............ok
1826 All tests successful.
1827 Files=1, Tests=2, 1 wallclock secs ( 0.23 cusr + 0.09 csys = 0.32 CPU)
1828 [pate@gnupate koha]$
1829 </screen></para>
1830 <para>Then, we can go on and add tests until we end up with something like:</para>
1831 <para><screen>
1832 [pate@gnupate koha]$ ./testKoha.pl
1833 t/format............ok
1834 t/koha..............ok
1835 t/output............ok
1836 t/require...........ok
1837 All tests successful.
1838 Files=4, Tests=40, 1 wallclock secs ( 1.25 cusr + 0.11 csys = 1.36 CPU)
1839 </screen></para>
1840
1841 <para><emphasis>What needs to be tested?</emphasis></para>
1842 <para>You don't need to test everything, just the things that can fail.</para>
1843
1844 <para>Ok, so maybe this is overkill. But we really should (and try to) test aggresively. Not only should we write tests for expected input, but also for fringe cases that should produce failures.</para>
1845
1846 <para>Additionally, anytime we fix a bug, we should try to represent it in one (or more) unit tests. That way we can feel comfortable that no one accidentally reintroduces the bug later on.</para>
1847
1848 <para><emphasis>Who writes the tests?</emphasis></para>
1849 <para>We do. In fact, it is best if the programmer who sits down to write new code would do well to write some tests first. This way, he (or she) will know they got the code right. It's a tremendously liberating way to write code.</para>
1850
1851
1852 <para><emphasis>When do I run the tests?</emphasis></para>
1853 <para>Please, run the tests every time you're ready to check code in! Then fix any errors before you check in. Right now, the tests all pass on the rel_1_2 branch. Let's keep it that way ;)</para>
1854 </sect2>
1855  <sect2 id="Using_CVS">
1856  <Title>Using CVS at Sourceforge</Title>
1857 <sect3 id="AnonCVS">
1858  <Title>Anonymous CVS Access</Title>
1859 <para>The Koha CVS repository can be checked out anonymously (via pserver) with the following commands. You must specify a modulename. When prompted for a password for anonymous, simply press the Enter key.
1860 <emphasis>This is recommended only for those willing to deal with Alpha and Beta versions of Koha.  Do Not use this software on production
1861 hardware.</emphasis></para>
1862 <para><screen>
1863 cvs -d:pserver:anonymous@cvs.koha.sourceforge.net:/cvsroot/koha login
1864
1865 cvs -z3 -d:pserver:anonymous@cvs.koha.sourceforge.net:/cvsroot/koha co modulename
1866 </screen></para>
1867
1868 <para>Updating from within the directory of the module avoids the -d parameter requirement.
1869 </sect3>
1870 <sect3 id="DevelCVS">
1871 <Title>Developer CVS Access via SSH </Title>
1872
1873 <para><emphasis>Only</emphasis> project developers can access the CVS tree via this method. SSH1 must be installed on your client machine. Substitute modulename and developername with the proper values. Enter your site password when prompted.</para>
1874 <para><screen>
1875 export CVS_RSH=ssh
1876
1877 cvs -z3 -d:ext:developername@cvs.koha.sourceforge.net:/cvsroot/koha co modulename
1878 </screen></para>
1879 </sect3>
1880  </sect2>
1881
1882  <sect2 id="Bug_Reporting">
1883  <Title>Bug Reporting and Tracking</Title>
1884   <para>Currently, we are in the process of setting up Bugzilla for bug tracking.  More on this later.</para>
1885  </sect2>
1886
1887
1888  <sect2 id="Translating">
1889   <Title>Making Koha Available in Your Language</Title>
1890    <para>Koha has a dedicated group of people who translate both the application and it's documentation.  You are invited to join them on the koha-translate list(see "Mailings Lists", in the Developer's sections of the documentation), and sign up as a volunteer on the wiki [http://www.saas.nsw.edu.au/wiki/index.php?page=TranslationTeams].  We ask that, if you are interested in fully supporting koha, you find at least two people willing to participate, including yourself.  We prefer at least one person have conversation-grade or better English and translation expertise, and all translation volunteers to be members of the koha-translate list.</para>
1891    <para>There is an automated tool we expect to be used for submission of translationed documents, see: http://www.haz.cmsd.bc.ca/cgi-bin/kohadoc/upload for more information.  Information on submitting translations for the templating system can be found in the <emphasis>Templating</emphasis> section below.</para>
1892    <para>Additionally, Katipo makes a user-friendly tool called Kea for creating versions of the koha.org site available, if you are interested.  We'll be using Kea (eventually) to make translation easier.</para>
1893  </sect2>
1894
1895
1896  <sect2 id="Documentation">
1897    <Title>Documentation</Title>
1898     <para>Like many open source applications, Koha uses the DocBook SGML system for creating formal documentation.  This manual is the product of the db2<emphasis>format</emphasis> tool suite.  Translations of the manual are done of the SGML edition of the manual, not of the generated HTML.  </para>
1899         <para>To create the online edition the SGML is run through db2html, and the resulting output (html files) is run through htmltidy -- currently this is run automagically, and the results sent to CVS, by Steve Tonnesen's CMSD hosted uploader. </para>
1900  </sect2>
1901
1902  <sect2 id="emaillists">
1903    <Title>E-Mail Lists</Title>
1904     <para>The Koha project team, users, and translators use a variety of mail lists to facilitate communications:</para>
1905         <para>The Sourceforge project page for koha (http://sourceforge.net/mail/?group_id=16466) has instructions for the primary lists for developers and translators:  </para>
1906         <para><emphasis>For Developers</emphasis><para>
1907         <para>* Koha-devel, the primary contributors list for Koha,</para>
1908         <para>* Koha-win32, for those interested in or developing the windows port of Koha,</para>
1909         <para>* Koha-cvs, for those who contribute code to the CVS repository hosted at sourceforge.</para>
1910         <para>For discussion of advanced features and long range goals, and potential library system proposals (ie, if you're interested in Koha as a possible solution for a state or county system) investigate the koha2010 list at http://www.kohalabs.com/projects/koha2010/mail.html.
1911
1912
1913         <para><emphasis>For Translators</emphasis></para>
1914         <para>* Koha-translate, the primary list for work on and about documentation and translation efforts.</para>
1915
1916         <para>In addition, a number <emphasis>Specialty lists</emphasis> are hosted at other sites.  These include:</para>
1917         <para>* Koha-fr, the French language and translators list,</para>
1918         <para>* Koha-de, the German language and translators list,</para>
1919         <para>* Koha-biz, for those interested in doing commercial support for Koha,</para>
1920         <para>* Koha-presents, for those who do Koha related presentations/pitches. </para>
1921         <para>Subscriptions to and archives of these lists are available by sending email to koha-subscribe AT fr.koha.org,koha-subscribe AT de.koha.org,kohabiz-subscribe@eylerfamily.org, kohapresents-request AT world.std.com, respectively.</para>
1922
1923         <para>For <emphasis>general users</emphasis>, there is the original Koha list (info: http://koha.org/mailing).
1924
1925         <para><emphasis>For those interested in Koha's general progress,</emphasis> Koha-announce is used for bare-minimum updates on the status of the project, including new version notices, the semiweekly newsletter, and major announcements.</para>
1926
1927  </sect2>
1928
1929
1930 <sect2 id="Templating">
1931 <Title>Themes and Templating</Title>
1932 <para> The koha project uses the terms themes and templating to refer to a set of functions that permit easy porting of koha to other languages and customization of the appearance of Koha's front end.
1933
1934 <para><emphasis>How does it work?</emphasis></para>
1935 <para>Every page served up by koha comes from two files: </para>
1936 <para> * A perl script that makes database searchs and handles requests etc. The script loads a template and defines some template-parameters that are displayed in the template.</para>
1937 <para> * A template that provides the HTML design. Data generated by the script is substituted into the template where you enter special template-parameter tags. </para>
1938 <para>Koha uses templates to handle internationalization and appearance customization.</para></para>
1939
1940 <para><emphasis>About Templates</emphasis></para>
1941 <para>Templates are principally a means of separating presentation and style from the data. This simplifies the data processing code while providing enhanced opportunities to customise the look and feel of the interface. Koha uses HTML::Template to export information from the underlying perl scripts. This information is combined with code contained in the template themselves. This results in the display of an apparently normal web page.</para>
1942
1943 <para>Template files are composed of mostly standard HTML code which is viewed by the end user via a standard Web browser. The template file also contain some special HTML-like tags which allow information passd from the perl scrips to appear as if they were embedded in the HTML template document itself. This is a similar principle (but not the same) employed by Koha Server Side Includes (SSI).</para>
1944
1945 <para><emphasis>How to use it?</emphasis></para>
1946 The systempreferences table in the database holds the settings that control how Koha chooses templates.
1947
1948 <para>To configure themes (currently) you have to set a variable</para>
1949
1950 <para>At present there are two places for settings:  the koha.conf file (/etc/koha.conf), and the systempreferences table in the database.</para>
1951
1952 <para>In the systempreferences table, there is a block of options responsible for theme/template issues:</para>
1953 <para><screen>
1954 Name=opacthemes
1955 Value=theme1 theme2 theme3 ...
1956 </screen></para>
1957 <para><empahsis>Note: You have to specify at least one theme.<emphasis></para>
1958
1959 <para><emphasis>Go try it out!</emphasis></para>
1960 So you can play around with the various settings, and look at some of the templates that have already been contributed, we have set up koha specially for you.
1961 opac-templates.koha.org &lt;http://opac-templates.koha.org> is the publically accessible part of koha. You can access the user pages using the login.....
1962 intranet-templates.koha.org &lt;http://intranet-templates.koha.org> is the librarians access into koha. In particular you can navigate through the "parameters" page to system preferences to try setting the themes and languages.
1963
1964 <para><emphasis>Can I Contribute My Templates?</emphasis></para>
1965 Of course. We welcome contributions from simple bug fixes to full multi-language theme suites!
1966 Templates can be uploaded into and edited on test koha sites mentioned above using the Kea content management system. You will need to register and learn a little about how to use kea. However it is very easy :-)
1967 Please read the instructions &lt;contribute.html> on how to register and access content mangement system. Also we have collect some documents on how it all works and style/code guidelines etc.
1968
1969 <para><emphasis>So.....</emphasis></para>
1970 <para>Currently, to make a template to make koha available in a particular language, you need to do a CVS checkout of the latest source, and copy /koha-tmpl/intranet-tmpl/default/en into /koha-tmpl/intranet-tmpl/default/XX, where XX is the two letter abbreviation appropriate for the language you are translating to (for help with getting an appropriate code, email the developer list).  After that you can simply translate strings within the files.  You also need to take care of the image URLs, as most templates make use of our "old" images, which live in SERVERROOT/images.  Those specific to your language template should be placed in SERVERROOT/default/XX/images (only for your default theme, of course).  Imagines specific to a theme (ie, a different look and feel for koha, not a language template) shoudl be in SERVERROOT/default/all/images.  You may wish to substitute the default/XX bit with &lt;TMPL_VAR NAME = "themelang">. </para>
1971 You also need to to add "opaclanguages / XX en" and "opacthemes / default" into the systempreferences file.  If added, koha will use the translated templates when the exist, and the english one otherwise. If you don't do this, Koha will only the english templates.</para>
1972 <para>If you're interested in creating just a new look-and-feel configuration for Koha, please get in touch!</para.
1973
1974 <para>As the above is a fairly complicated list of things to do and keep track of, efforts are underway to use a tool provided by Katipo called Kea (a brief introduction to which is included in the appendices) for more user-friendly templating access.</para>
1975
1976 <para><emphasis>If You're 'Theming', Please Remember:</emphasis></para>
1977
1978 <para> * All templates should live in koha-tmpl, along with there associated includes and images (style sheets, javascripts, etc)</para>
1979
1980 <para> * The associated cvs branch will eventually replace the koha-html tree all together.</para>
1981
1982 <para> * Under koha-tmpl there are two subtrees: intranet-tmpl/ and opac-tmpl/, which correspond to what should go into the &lt;serverroot>/intranet/htdocs/ and &lt;serverroot>/opac/htdocs/ directories on the live sites.</para>
1983
1984 <para> * Under each of these are /&lt;theme>/&lt;lang>/ directories. Each theme can have different language settings. At present I have been working only on
1985 the /default/en/ templates.</para>
1986
1987 <para> * To do theme, language selection: In the scripts there should be the lines:</para>
1988 <para><screen>
1989 use C4::Output;
1990 my $template = gettemplate("opac-search.tmpl", "opac");
1991
1992 The gettemplate subroutine looks for the theme and language settings,
1993 looks for a template, loads the template and sets the &lt;themelang> tag for
1994 use in all the includes etc. I.e.
1995
1996 src="&lt;TMPL_VAR NAME='themelang'>/images/search-button.gif"
1997 </screen></para>
1998  </sect2>
1999 <sect2 id="MARC">
2000 <Title>MARC Information</Title>
2001 <para>In the 1.3/2.0 releases of Koha, the exciting new function is marc compliance.  As koha is an international project, every marc flavour is supported <emphasis>(at least, that's what we hope...)</emphasis> and as some users don't want to see marc in their ILS, the old-db style is supported as well.  Thus, an important work is to define the parameters tables for the marc you want to manage.  As this function is still being tested and ajdusted, documentation is currently available at http://www.saas.nsw.edu.au/wiki/index.php?page=UserDoc which covers the various parameters, and more technical information about the plugin is available at http://www.saas.nsw.edu.au/wiki/index.php?page=PlugInDoc .</para>
2002  </sect2>
2003 </sect1>
2004
2005 <sect1 id="References">
2006 <title>References</title>
2007 <para>Temporary example - Koha OPAC theme using templates + css &lt;http://www.library.nsw.org.au/> </para>
2008 <para>Main Link to Koha Templating http://koha.org/contribute/templating/ </para>
2009 <para>HTML::Template http://www.perldoc.com/cpan/HTML/Template.html </para>
2010 <para>Web Design Group http://www.htmlhelp.com/ </para>
2011 <para>Recommended by Katipo http://www.richinstyle.com/ </para>
2012 <para>Docbook Publishing Brockmeier and Pritchard, Primatech's linux series</para>
2013 <para>Extreme programming (see list)</para>
2014 <para>O'Reilly published Perl Series</para>
2015 </sect1>
2016
2017
2018 <sect1 id="Appendix_A_Frequently_Asked_Questions">
2019 <title>Appendix A: Frequently Asked Questions</title>
2020 <para>About the Project</para>
2021 <para>
2022 <variablelist>
2023 <varlistentry><term><emphasis>What is Koha*?/What can Koha do?</emphasis></term>
2024 <listitem>
2025 <para>
2026 Koha is intended to be:
2027    a library catalogue front end/OPAC
2028    a library system intranet
2029    a circulation tracking system
2030    an acquisitions/budgeting system
2031 </para>
2032 </listitem>
2033 </varlistentry>
2034
2035 <varlistentry><term><emphasis>Where did Koha come from?</emphasis></term>
2036 <listitem>
2037 <para>
2038 The name comes from the Maori word for a gift or donation. The programme was written by Katipo Communications for the Horowhenua Library Trust, in response to a need for a library programme that would run at branch libraries connected to the central library by ordinary phone lines. See http://www.library.org.nz/koha.htm (Or Appendix 2) for the full story.
2039 </para>
2040 </listitem>
2041 </varlistentry></para>
2042 </variablelist>
2043
2044
2045 <varlistentry><term><emphasis>Who is this Kaitiaki person?</emphasis></term>
2046 <listitem>
2047 <para>
2048 Kaitiaki is the Maori word for Guardian.  When the Koha user and developer community realized some sort of combination Benevolent Dictator/Juggler might be a good idea, they chose a name that would reflect what they felt his/her role would be.  The Kaitiaki is currently elected from among the membership of the developer's list -- this includes the Katipo staff as well as representatives of several of the libraries and the far flung contributors of code, documentation, and kibitzing.  This person is also responsible, with the advice and consent of the community, for trying to decide target dates for things like releases and features scheduling... and trying to help bring some order from the chaos ;). He also helps coordinate efforts and agendas, particularly through the mechanism of the every-few-weeks IRC meetings. Traditionally, the Kaitiaki also handles things like release announcements to sites like OSS4lib.
2049 </para>
2050 </listitem>
2051 </varlistentry></para>
2052 </variablelist>
2053
2054 <varlistentry><term><emphasis>Who or what is Katipo?</emphasis></term>
2055 <listitem>
2056 <para>
2057 Katipo is a company. See
2058    http://www.katipo.co.nz/
2059 for more information. It is named after a small native spider.
2060 The Katipo spider is a dune-dweller and New Zealand's only poisonous native creature.
2061 </para>
2062 </listitem>
2063 </varlistentry>
2064
2065 <varlistentry><term><emphasis>What language are the words Koha, Horowhenua and Katipo in?</emphasis></term>
2066 <listitem>
2067 <para>
2068 They are in the Maori language, the language of the people native to New Zealand.
2069 </para>
2070 </listitem>
2071 </varlistentry>
2072
2073 <varlistentry><term><emphasis>Where is Horowhenua?</emphasis></term>
2074 <listitem>
2075 <para>
2076 It's a small district on the west coast of the North Island of New Zealand, wedged between the Tararua mountains and the Tasman Sea. It's about an hour's drive north of the city of Wellington, and has population of 30,000. The name means erosion or landslide in Maori.
2077 </para>
2078 </listitem>
2079 </varlistentry></para>
2080 <varlistentry><term><emphasis>How are the words Koha*, Horowhenua and Katipo pronounced?</emphasis></term>
2081 <listitem>
2082 <para>
2083 For vowel sounds, think French: a as in far; e as in egg; i as the
2084 e in me; o as the a in paw; u as the oo in moon, dipthong ai as y in sky
2085
2086 For consonants, wh is pronounced variously as h, w and f; we use the
2087 f pronunciation in Horowhenua. Other consonants as you would expect, with
2088 the p a little softer and less explosive than in English.
2089 The stress is always on the first syllable, with a secondary stress
2090 on the third syllable in Horowhenua. So:
2091    <para>koha (kaw_ha)</para>
2092    <para>horowhenua (haw_raw_fen_oo_a)</para>
2093    <para>katipo (kah_tee_paw)</para>
2094    <para>kaitiaki (ky tee a kee)</para>
2095 *If you are serving a community where Spanish is spoken, you may want to use a different name to refer to the software. The reason for this is that the Maori word "Koha" (gift) sounds like the Spanish word "coja" (cripple).
2096 </para>
2097 </listitem>
2098 </varlistentry></para>
2099 </variablelist>
2100
2101
2102 <para><emphasis>On Choosing the Software...</emphasis></para>
2103
2104 <para>
2105 <variablelist>
2106 <varlistentry><term><emphasis>How scalable is Koha?/(as in) How big a library system can it support?</emphasis></term>
2107 <listitem>
2108 <para>
2109 Good question. :)
2110 The Koha developers think this is most likely a database(ie MySql) issue, primarily. Big server, lots of RAM is better for heavier use.  It comes down to what an acceptable number of seconds is for any given lookup to complete. Our guess is that it would be most important for circulation side of things. Librarians generally don't want to wait for more than a second to complete a return, for example. This would require some benchmarking with real data. The next question would provide a rough guideline, although we're pretty confident that Koha could be scaled to libraries larger than CMSD and HTL. To date, no speed complaints have been received.
2111 </para>
2112 </listitem>
2113 </varlistentry></para>
2114 <varlistentry><term><emphasis>Who is using Koha? On what hardware/operating system?</emphasis></term>
2115 <listitem>
2116 <para>
2117    As far as hardware and operating system:
2118 <screen>
2119 HLT   (3 branches, 80,000 books, 25,000 patrons)
2120 Dual Intel Pentium III 1 Gigahertz processor
2121 1Gb of RAM
2122 mirrored Maxtor 20Gb 7200rpm disks
2123 Debian Linux "woody" (the testing distribution)
2124
2125 <emphasis>Administrator comment: "The above appears to be somewhat overpowered."</emphasis>
2126
2127 CMSD (8 branches, 2,000 to 8,000 books per site, 1,000 patrons)
2128 Pentium 200 MHz to 300 MHz machines (1 per site)
2129 64 MB of ram
2130
2131 <emphasis>Respectively:
2132        HLT - Horowhenua Library Trust, New Zealand
2133        CMSC - Coast Mountain School District, British Columbia, Canada </emphasis>
2134 </screen>
2135 </para>
2136 </listitem>
2137 </varlistentry>
2138
2139 <varlistentry><term><emphasis>Do I have to pay to use Koha?</emphasis></term>
2140 <listitem>
2141 <para>
2142    Nope.
2143 </para>
2144 </listitem>
2145 </varlistentry>
2146
2147 <varlistentry><term><emphasis>Do you have any recommendations about servers and configuration?</emphasis></term>
2148 <listitem>
2149 <para>
2150 [The following is a comment from Simon Blake (simon AT katipo.co.nz) on the subject]</para>
2151 <para> Were I specifying a new box for Koha, given current prices I'd put as much RAM as I could into the machine - 1.5Gb of RAM costs (I assume) around US$100-150 at the moment, and with that much RAM in the box, most of the Koha database will be in memory rather than on disk, and this does brilliant things for the performance of MySQL. So, lots of RAM is crucial, and then as much CPU and disk performance as you can afford.  Bear in mind that Koha will work fine on a low spec machine (say, a Pentium 150 with 32Mb RAM), it'll just be slow, and the slowness will increase as usage increases. So you can run it on almost any machine that can run MySQL and Apache, and see how it goes, and if it's too slow then you can throw money at the problem until you get the performance you want.  You'll need to tune MySQL to use all that RAM, here's what Chris has in the MySQL config at the moment:</para><para>
2152 <screen>
2153 set-variable   = key_buffer=256M
2154 set-variable   = max_allowed_packet=1M
2155 set-variable   = table_cache=256
2156 set-variable   = sort_buffer=1M
2157 set-variable   = record_buffer=1M
2158 set-variable   = myisam_sort_buffer_size=64M
2159 set-variable   = thread_cache=8
2160 </screen>
2161 </para><para>
2162 Make sure, also, that your disks are setup correctly, with the highest possible DMA support - hdparm is your friend. I'd observe, also, that long term Koha should get faster, and thus need less in the way of resources to run it - there are some fairly inefficient table structures in Koha, a hangover from the previous system HLT ran, and as these get ironed out and removed, I'd expect Koha to get quicker.
2163 </para>
2164 </listitem>
2165 </varlistentry>
2166
2167 <para>
2168 <variablelist>
2169 <varlistentry><term><emphasis>Can you give a brief explanation of koha/opac/site-search differences for a non-librarian?</emphasis></term>
2170 <listitem>
2171 <para>
2172 KOHA : This is the name for the "product" the library system as a whole.
2173 The same as say "ExLibris" or "BookPlus".
2174 There are two main access points into Koha, the Librarians "view" which we talk about as "The Intranet" and the Publics "view" which we talk about as "The Opac". Opac seems to be a fairly meaningful library term which stands for "Online Public Access Catalogue".  Because all of the functionality of Koha is delivered via a web-browser those seemed to be terms that made sense to us.  I'm not sure where you got "site search" from in the context of Koha (there isn't one as part of koha). Usually that's a term used for a search engine that indexes and searches the parts of a libraries website that *are not* the catalogue. So basically it searches the parts of a library website that are the library hours, membership information, supplementary info about the collections etc etc.  On our sites (library and non library) we use htdig as a generic site search.
2175 Koha does not by default have a generic library site "attached" to it, although there is no reason why you couldn't add more HTML pages to it if you wanted to.
2176 I'm not sure what work is duplicated in the various products (koha vs. opac) and what's unique in each.
2177 The Intranet and The OPAC are two sides of the same coin - the OPAC has more limited information displayed, because we assume you wouldn't want the public/members able to edit library information etc, and that they wouldn't want to see as much of the information held about a book (like the 3 or 4 "prices" for example).
2178 </para>
2179 </listitem>
2180 </varlistentry>
2181
2182
2183 <varlistentry><term><emphasis>Where can I find information about this MAchine Readable Cataloging (MARC) that everyone keeps talking about?</emphasis></term>
2184 <listitem>
2185 <para>
2186 Information about MAchine Readable Cataloging (MARC) dhttp://www.oasis-open.org/cover/marc.html/para>
2187 </para>
2188 </listitem>
2189 </varlistentry>
2190
2191 <varlistentry><term><emphasis>Can I get Koha for Windows?</emphasis></term>
2192 <listitem>
2193 <para>
2194 Yes!
2195 There is a version of Koha ported to Windows available at:
2196 http://www.kohalabs.com/resources/Win32/
2197 It is highly recommended you join the koha-windows mailing list (see under 'Mail Lists' in the developer's section of the manual for assistance).  The Win32 version is usually a little behind (testing, version etc wise) of the Unix based version.
2198 </para>
2199 </listitem>
2200 </varlistentry>
2201
2202
2203 <varlistentry><term><emphasis>Can I get Koha in my own language?</emphasis></term>
2204 <listitem>
2205 <para>
2206 The Polish package that exists at the Sourceforge site (see under "Where can I get Koha?"), but is not reflective of the current version -- it is a legacy item, as we now use templates instead of distinct versions of the code to provide multiple language availability.   We're very open to new languages being added.  We currently have additional language development in the discussion/development stage stage, including French, Spanish, and German.  For more information, join the Koha-translate list (see under "Mailing Lists", in the developer's section) and ask about adding yourself to the list of people interested.  A running list of people who have expressed interest is at:  http://www.saas.nsw.edu.au/wiki/index.php?page=TranslationTeams .
2207 </para>
2208 </listitem>
2209 </varlistentry>
2210
2211
2212 <para><emphasis>On Operating the Software...</emphasis></para>
2213
2214
2215 <varlistentry><term><emphasis>What is the breeding farm ?  How do I use it to get biblio items into the system? </emphasis></term>
2216 <listitem>
2217 <para>
2218
2219 </para>
2220 </listitem>
2221 </varlistentry>
2222
2223
2224 <varlistentry><term><emphasis>How do I enter a biblio in koha without acquiring it (I already have it) and without DB import ? It seems the only solution is to create a "false" supplier ?</emphasis></term>
2225 <listitem>
2226 <para>
2227 Yep, this is the case if you are using the full acquisitions system.
2228 In cvs there is a simple acquisitions system that you can use if you set the value in the systemprefences table to be simple.
2229 Using the full acquisitions system you might like to create a supplier
2230 called donation, or something like that, and use it to receive items.
2231 </para>
2232 </listitem>
2233 </varlistentry>
2234
2235 <varlistentry><term><emphasis>Acquisitions fail and I see httpd log errors like "DBD::mysql::st execute failed: Unknown column 'lccn' in 'field list' at /var/www/cgi-bin/koha/acqui.simple/addbooks.pl line 207." What's wrong?</emphasis></term>
2236 <listitem>
2237 <para>
2238 Your database tables are not up to date. From the command line, run the koha "updatedatabase" script like this: "perl updatedatabase -I /pathtoC4folder"</para>
2239 [Editor's note: if this errors, try: perl -I/pathtoC4 updatedatabase].
2240 </para>
2241 </listitem>
2242 </varlistentry>
2243
2244 <varlistentry><term><emphasis>What are valid library card numbers? I keep trying... We've worked out a spreadsheet that does the checkdigit subroutine inside C4::Input.pm and got the last digit to match the result.. and its still not valid.</emphasis></term>
2245 <listitem>
2246 <para>
2247 Library cards employ check digits. Check digits are numbers that are based on a mathematical formula devised to help detect typical data entry errors.
2248 Koha library cards employ a 9 character number, the first character is an alpha code, and the last "number" may be an X - Let's refer to the card number as (ALPHA)ABCDEFG(1..9 or X). </para>
2249 <para>To calculate the check digit:</para>
2250 <para>Calculate= (4xA) + (6xB) + (3xC) + (5xD) + (2xE) + F G is the remainder when divided by 11. If the remainder is 10, then use  "X".</para>
2251
2252 <para>The standard for Koha is a barcode standard. The library would get a batch of barcodes from the printer with checkdigits included. Here is an excel spreadsheet to generate koha compatible card numbers http://developer.koha.org/HLT2.xls</para>
2253
2254 <para>Brief history of cardnumbers and koha:</para>
2255 <para>Horowhenua Libraries get their cards with a barcode and a number on them. The number conforms to the checkdigit routine. So Koha didn't need to generate cardnumbers. It just needed to check that the number entered conformed to the checkdigit routine.</para>
2256 </listitem>
2257 </varlistentry></para>
2258 </variablelist>
2259 </para>
2260
2261 <varlistentry><term><emphasis>What is the easiest way to allocate new koha library card numbers?</emphasis></term>
2262 <listitem>
2263 <para>
2264 Go to your admin page, and set AutoMemberNum to 1 - that will get koha making its own card numbers. Otherwise, make a little routine that generates numbers that fits that checkdigit. But what is more pertinent I guess is how to change the checkdigit routine so it fits your existing numbering scheme. At the moment there is no easy way, apart from hacking at the perl.</para>
2265 </para>
2266 </listitem>
2267 </varlistentry>
2268
2269 <varlistentry><term><emphasis>Where's the code for using a barcode reader in Koha?</emphasis></term>
2270 <listitem>
2271 <para>
2272 Code to allow barcoder reader use with Koha is available at http://www.saas.nsw.edu.au/wiki/index.php?page=BarCode
2273 </para>
2274 </listitem>
2275 </varlistentry>
2276
2277
2278 <varlistentry><term><emphasis>How can I prevent users from accidentally deleting items and borrowers from the database?</emphasis></term>
2279 <listitem>
2280 <para>
2281 The undelete biblio option at the bottom of this page: http://hlt.katipo.co.nz/cgi-bin/koha/maint/catmaintain.pl .  It provides a quick way to undo a mistake - and it is tucked away in an admistration 'bit' of Koha. It would be pretty cool (and might eventually happen) to have an undelete borrowers option on a page somewhere which retrieves from the deleted borrowers table (as opposed to the borrowers table).
2282 </para>
2283 </listitem>
2284 </varlistentry>
2285
2286 <varlistentry><term><emphasis>Every once in awhile I find a hardcoded reference to a user=Rachel in some of the scripts.... Who is Rachel?  Is this like the General Failure that reads a harddrive without permission, or what?</emphasis></term>
2287 <listitem>
2288 <para>
2289 Rachel IS a general - the general who runs Katipo in New Zealand, Rachel Hamilton-Williams.  Those absolute parameters are legacies from the early work on Koha, and can be removed.
2290 </para>
2291 </listitem>
2292 </varlistentry>
2293
2294
2295 <varlistentry><term><emphasis>What is the license?</emphasis></term>
2296 <listitem>
2297 <para>
2298 Koha is distributed under the General Public License (GPL). More information on the GPL can be found at:
2299    http://www.gnu.org/licenses/licenses.html#GPL
2300 The gist of the license is that you are free to use, modify and distribute the program at no cost to yourself, provided that modifications you distribute are also released under the GPL. Obviously, we'd appreciate an email about it... and the chance to add anything we find useful to the primary Koha package.
2301 </para>
2302 </listitem>
2303 </varlistentry>
2304
2305 <varlistentry><term><emphasis>Why is Koha given away?</emphasis></term>
2306 <listitem>
2307 <para>
2308 Koha is open source software. In open source software, software developers give away the fruits of their labour in the hopes that others will help them develop the software.</para>
2309 </listitem>
2310 </varlistentry>
2311
2312
2313 <varlistentry><term><emphasis>How do I install Koha?</emphasis></term>
2314 <listitem>
2315 <para>
2316 See the INSTALL.pl and text files included in the distribution, or the manual["For the Library IT Staffer"].</para>
2317 </listitem>
2318 </varlistentry>
2319
2320 <varlistentry><term><emphasis>Where can I get Koha?</emphasis></term>
2321 <listitem>
2322 <para>
2323 If you're in New Zealand, a mirror is at http://www.koha.org/download/
2324 Otherwise, try
2325  http://sourceforge.net/project/showfiles.php?group_id=16466
2326 </listitem>
2327 </varlistentry>
2328
2329 <varlistentry><term><emphasis>How do I set up printer options?</emphasis></term>
2330 <listitem>
2331 <para>
2332 Insert into the printer table something like:
2333 insert into <emphasis>printer</emphasis>
2334  (printername,printqueue) values ('No Printer','nullip');
2335 And in the branch table try:
2336 insert into branches
2337  (branchcode,branchname) values ('T','Test');
2338 </para>
2339 </listitem>
2340 </varlistentry>
2341
2342
2343 <varlistentry><term><emphasis>How do we empty the database?</emphasis></term>
2344 <listitem>
2345 <para>Use these instructions with great care!  This assumes that you are running
2346 version 1.2 of Koha...</para>
2347 <para><screen>
2348 Connect to your koha database
2349
2350 mysql Koha -pROOTPASSWORD
2351
2352 or use the "user" and "password" settings from /etc/koha.conf with:
2353
2354 mysql Koha -uUSER -pPASSWORD
2355
2356 then run:
2357
2358 delete from items;
2359 delete from biblioitems;
2360 delete from bibliosubject;
2361 delete from bibliosubtitle;
2362 delete from additionalauthors;
2363 delete from biblio;
2364 delete from issues;
2365 </screen></para>
2366 </listitem>
2367 </varlistentry>
2368
2369 <varlistentry><term><emphasis>How do I diagnose problems with Koha?</emphasis></term>
2370 <listitem>
2371 <para>
2372 The Koha troubleshooting section (in the appendices), and this FAQ section,  covers the some of the common procedures a member of the Koha team will ask you to try if you have a problem.
2373 </para>
2374 </listitem>
2375 </varlistentry>
2376
2377 <varlistentry><term><emphasis>What is the "user" table used for... and where is it used?</emphasis></term>
2378 <listitem>
2379 <para>
2380 We use the users table for doing authentication with Apache::AuthDBI, so it contains the users and passwords for valid users to connect to the librarian part of koha.
2381 </para>
2382 </listitem>
2383 </varlistentry>
2384
2385 <varlistentry><term><emphasis>Is there a config guide or menu for what to put into the SQL tables for preferences, etc for a new blank installation?</emphasis></term>
2386 <listitem>
2387 <para>
2388 Nope.  We at Koha are sorely lacking that. What you need in the systempreferences table is to use the simple acquisitions module.  That is: </para>
2389 <para>Insert into systempreferences (variable,value) the values ('acquisitions','simple'); Then, from the index page of the intranet page (eg your equivalent of http://hlt.katipo.co.nz/ ) clicking on acquisitions will take you to the simple acqui screen and you should be able to start loading in data from there.</para>
2390 </para>
2391 </listitem>
2392 </varlistentry>
2393
2394 <varlistentry><term><emphasis>What other software do I need to run Koha?</emphasis></term>
2395 <listitem>
2396 <para>
2397 See the Install section in Book 1.  The -very- short answer is, you can get by with most free versions of Unix(GNU/Linux, etc), Apache, Perl (and some additional modules - which you can get by running: perl -MCPAN -e 'install Bundle::KohaSupport'), and MySQL.
2398 </para>
2399 </listitem>
2400 </varlistentry>
2401
2402 <para><emphasis>For help </emphasis>
2403 <varlistentry><term><emphasis>Where can I get help with Koha?/Where can I get support?</emphasis></term>
2404 <listitem>
2405 <para>
2406 Katipo, the company that built the original Koha, makes a mailing list available to Koha users, who (as is customary with Open Source software) help each other out with questions. Usually most of the development team monitors and comments on this list as well. See:
2407 http://lists.katipo.co.nz/mailman/listinfo/koha
2408 </para>
2409 </listitem>
2410 </varlistentry>
2411 <varlistentry><term><emphasis>Where can I get help with databases?</emphasis></term>
2412 <listitem>
2413 <para>
2414 Best bet at the moment is to ask the list (above).
2415 </para>
2416 </listitem>
2417 </varlistentry>
2418
2419 <varlistentry><term><emphasis>Who maintains Koha?</emphasis></term>
2420 <listitem>
2421 <para>
2422 Koha is currently maintained by a team of volunteer developers spread across New Zealand, France, Canada, and the United States. There is a sourceforge mailing list for the development team.  If you're interested in joining please email info AT koha.org.
2423 Additionally, we have had assistance and contributions from Pawel in Poland, who gave us a neat translation script and has helped with installs in Poland.
2424 </para>
2425 </listitem>
2426 </varlistentry>
2427
2428
2429
2430 <varlistentry><term><emphasis>Can I pay for support? (If so, who?)</emphasis></term>
2431 <listitem>
2432 <para> Please see the SUPPORT page off the Koha website to get in touch with Koha contributors willing to do contracting work.
2433 </para>
2434 </listitem>
2435 </varlistentry>
2436
2437
2438 <varlistentry><term><emphasis>I see people are working on feature X. Can you tell me when a release with feature X will ship?</emphasis></term>
2439 <listitem>
2440 <para>
2441 The Kaitiaki's weekly messages to the Koha user list are your best bet for information on features intended for the upcoming release, as well as target dates.
2442 The Koha Roadmap is a working outline of where development is headed, longer term.  Please contact info @ koha.org for a pointer to the current version of the Roadmap.
2443 </para>
2444 </listitem>
2445 </varlistentry>
2446
2447 <varlistentry><term><emphasis>Can I pay for feature additions? (If so, who?)</emphasis></term>
2448 <listitem>
2449 <para>
2450 Try the Support page on the koha.org site -- Koha contributors willing to do contracting work are listed there.  Please contact the development team (info AT koha.org) if you wish to become a contractor-contributor.
2451 </para>
2452 </listitem>
2453 </varlistentry></para>
2454 <varlistentry><term><emphasis>How can I contribute to Koha?</emphasis></term>
2455 <listitem>
2456 <para>
2457 Check with a member of the development team:  info AT Koha.org for information about our current assistance needs, etc.
2458 </para>
2459 </listitem>
2460 </varlistentry>
2461
2462 <varlistentry><term><emphasis>I heard about you through OpenBook/LearningAccess ILS  -- what exactly is your relationship to that project?</emphasis></term>
2463 <listitem>
2464 <para>
2465 OpenBook was inspired by Koha, and is now called the LearningAccess ILS. Originally they were associated Waitt Family Foundation funded Technology Resource Foundation (formerly at http://www.trfoundation.org/). Under the terms of the Open Source license, "forks" such as this are entirely acceptable.  OpenBook, like Koha, is released under the GPL.  Currently it is installaed at some Washington state (US) local libraries.
2466
2467 <para>OpenBook is now available as a Beta download: http://resources.centralmanclc.com/openbook/ </para>
2468 <para>Information is available at: http://www.learningaccess.org/ </para>
2469 </para>
2470 </listitem>
2471 </varlistentry>
2472
2473 <varlistentry><term><emphasis>Who has been involved with Koha's creation and development?/The Credits</emphasis></term>
2474 <listitem>
2475 <para><screen>
2476 Koha Credits
2477
2478 Horowhenua Library Trust
2479 Rosalie Blake, Head of Libraries
2480 Jo Ransom
2481
2482 Katipo Communications
2483 Rachel Hamilton-Williams, General Manager (Webmistress)
2484 Simon Blake, Technical Manager, Server Administrator
2485 Amanda Atkins, Operations Manager
2486 Chris Cormack, 1.2 release guru
2487 Olwen Williams
2488
2489 Finlay Thompson
2490 Gynn Lomax
2491 Richard Anderson
2492 Jeremy Blake, Katipo Koha Project Manager
2493 Rebecca Holden, New Koha.org page
2494
2495 Olive T. Canine, Crate Testing and Kiwi Stress Relief
2496
2497 Steve Tonnesen, early MARC work, Virtual Bookshelves concept, KohaCD
2498 Pawel Skuza, Polish Language porter
2499 Benedykt P. Barszcz
2500 Glen Stewart
2501 Paul Poulain, 1.4 release manager
2502 Pat Eyler, Kaitiaki
2503 Roger Buck
2504 Adam Thick
2505 Florian Bischof
2506 Dorian Meid
2507 Sebastiaan Durand
2508 Kip DeGraaf
2509 Andrew Hooper
2510 Daniel Holth
2511 Mike Mylonas
2512 Joshua Ferraro
2513 Ed Summers
2514 Mike Johnson
2515 Ron Wickersham
2516 Brig C. McCoy
2517 Mike Hansen
2518 Nicolas Morin, French Translation/Traduction Française of the Documentation
2519 Henri-Damien Laurent
2520 David Strainchamps
2521 Md. Aftabuddin
2522 Marco Gaiarin
2523 Francisco M. Marzoa Alonso
2524 Andrew Arensburger
2525 Michaes Herman
2526 Regula Sebastiao
2527 Nicholas Rosasco, Documentation Compiler
2528 </screen>
2529 </para>
2530 </listitem>
2531 </varlistentry></para>
2532 </variablelist>
2533 </para>
2534 </sect1>
2535
2536 <sect1 id="Appendix_B_An_Interview_About_Koha">
2537 <title>Appendix B: An Interview on Koha</title>
2538
2539 <para>Welcome to the worlds first Free Open Source Library System. Made in New Zealand by the Horowhenua Library Trust and Katipo Communications Ltd theKoha system is a full catalogue, opac, circulation and acquisitions system. </para>
2540
2541 <para>The Koha story so far......</para>
2542
2543 <para>Koha : Free Library Software</para>
2544
2545 <para>by Rosalie Blake, Head of Libraries, Horowhenua Library Trust, Levin and Rachel Hamilton-Williams, General Manager and Webmistress, Katipo Communications, Wellington.</para>
2546
2547 <para><emphasis>Rosalie:</emphasis>
2548 The first thing I remember learning about computers, back in the early eighties, was "Never buy the hardware and then try to make the software fit". This worthy precept was followed fairly quickly by "Never buy programme that someone promises to write for you".</para>
2549
2550 <para>Why then, in 1999, the year that INCIS hit the headlines, and with the memory of NDIS still lingering, was I contemplating a course of action that defied both precepts?</para>
2551
2552 <para>I found myself in 1999 with a system we'd had and loved for 12 years. It was simple to operate and ran fast at our branch libraries over an ordinary dial up modem. But it was looking tired, and we suspected our networking system wasn't going to stand the challenge of 2000.</para>
2553
2554 <para>I started the time-honoured procedure of searching for a new system. As I read through the 25cm high pile of paper that resulted from a (very selective) RFP, I got more and more depressed. It wasn't just that the new offerings were expensive to purchase, the real killer was in the running costs. The support charges were a steep increase, but added to that was huge 500% increase in telecommunication costs every year, stretching relentlessly into the future. That pretty Windows interface was going to be hideously expensive to implement.</para>
2555
2556 <para>Now, along with every other red-blooded kiwi, I resent sacrificing a huge chunk of my hard-won budget to a telco. What to do? 1-1-2000 was approaching much too fast for comfort.</para>
2557
2558 <para><emphasis>Rachel</emphasis>
2559 Katipo have worked with the Library for many years, training staff and supporting the network. We watched the RFP process with interest - read it and thought "you could do this using the Internet, and that would at least take care of the telco costs". We'd already done an OPAC for Wellington City Library and lots of database work, and somewhat naively thought "How hard can it be?"</para>
2560
2561 <para>So we got together a plan: as long as the library could tell us how library worked, we could do the rest. As it turned out, figuring out how a library worked really was the hard bit. </para>
2562
2563 <para>Our Mission was to have a new system running in the library for the first day of business in 2000. The requirements: At the branches it should issue and return at least at the same speed as the incumbent system, It should run on the libraries existing equipment, a motley collection of 486 and pentium hardware, It must still be nice and easy for the public and librarians to use. </para>
2564
2565 <para>With the lofty goals in place it was time for the hard grind. It would have two interfaces - a web browser for most of the system, but a simple fast Telnet interface for issues and returns. We quickly choose the systems we would use, free and fast all the way. Linux server OS, MySQL database, Perl programming for the web and telnet interfaces - hmm all we were missing was a report writer, but one would turn up.</para>
2566
2567 <para>What followed was 16 weeks of incredibly close work with the library. Drop dead dates came and went - amazingly without us dropping dead. </para>
2568
2569 <para><emphasis>Rosalie:</emphasis>
2570 The new system started to take shape, and it looked good. When you change to a new system it has to look good - people are more sympathetic to something that looks nice, and there are all those members of the public to win over. </para>
2571
2572 <para>What colour should the screens be? And what shall we call it? Hard experience teaches you never to let a committee near decisions like these.But we were wedded to democratic processes, and we finally found solutions everyone could live with. The colours were a compromise, and the name chosen was Koha. Why Koha? Because it's free. Because it's our gift.</para>
2573
2574 <para><emphasis>Rachel:</emphasis>
2575 We recommended to the library that they release the software as "OpenSource". That means that anyone else can download the software and run itup on their machine without paying either us or Horowhenua Library Trust a cent. </para>
2576
2577 <para>I can see the colour draining from your faces from here. Really a free system? But why? </para>
2578
2579 <para><emphasis>Rosalie:</emphasis>
2580 Not just for the glory (though this is a world first)! </para>
2581
2582 <para>Katipo convinced us this was a good idea for several reasons. One was to give the library some surety. Katipo is a small business, and it's important that the library be future-proofed against anything happening to that company. Another was because neither the Library Trust nor Katipo saw themselves as in the business of marketing and supporting a new library system. With an open-source system, that's not a problem. Word of mouth markets it, and the users support each other. The more libraries and programmers using and working on a system, the better it becomes.</para>
2583
2584 <para><emphasis>Rachel:</emphasis>
2585 We tested on the librarians who were fantastic, coming in over the holidays to throw us the curve balls. We had Christmas day off, and then started installing in the library. The last days on the old system were between Christmas and New Year. On the third of January 2000 Koha met the public, for real, for the first time.  </para>
2586
2587 <para>By lunch time we still hadn't switched back to the old system. The OPACs were in use, and issues and returns, while a bit flakey, were happening. Neither the librarians nor the patrons had stormed out in protest. We'd done it! </para>
2588
2589 <para>Since then the pace has eased a little, and we've fine-tuned and even rewritten some of the code that went by as a blur before Christmas. We won two awards for Koha in September 2000 - the 3M Award for Innovation in Libraries 2000 and the ANZ Interactive Award, Community/Not for Profit category 2000. </para>
2590
2591 <para>We have big plans for stage two. That's when the online features for members get added in, and some sexier bits to make the library staff's lives easier.</para>
2592
2593 <para><emphasis>Both of us:</emphasis>
2594 We'd like to see other libraries take it on. If you're a small to medium-sized library, with or without satellite sites, or a mobile library (yes you could run this from a laptop and cell phone!) Koha could be just what you're looking for. But don't just take our word for it. Have a look. www.koha.org </para><para>
2595 Or email either of us: rosalie AT library.org.nz and rachel AT katipo.co.nz </para>
2596 <para>
2597 If you're interested in the project please join our mailing list. </para>
2598 </sect1>
2599
2600
2601 <sect1 id="Migration">
2602 <title>Appendix C: Migrating to Koha</title>
2603 <sect2>
2604 <title>Migrating to Koha from the Alexandria Library Sysytem</title>
2605 <para>Migrating data from an Alexandria library system to Koha, courtesy the Coast Mountains School District and Steve Tonnesen</para>
2606
2607 <para><emphasis>Export MARC data from Alexandria system</emphasis></para>
2608 <para>
2609 <itemizedlist>
2610 <listitem><para>Edit bulkmarcimport.pl to set the $branchname variable if your branch code is other than 'MAIN' </para></listitem>
2611 <listitem><para>Run bulkmarcimport.pl on this file, redirecting stdout and stderr to files</para></listitem>
2612 <listitem><para>bulkmarcimport.pl kksexport.mrc >import.out 2>import.err </para></listitem>
2613 <listitem><para>You may need to run this script several times before you get the import all figured out. Each time you run it, use the instructions at the bottom of this page to clear out the old bibliographic data from your Koha database. </para></listitem>
2614 <listitem><para>The standard output of bulkmarcimport.pl will be a human readable version of the MARC data. </para></listitem>
2615 <listitem><para>Decide how the existing data is going to map to Koha's item types</para></listitem>
2616 <listitem><para>Koha uses itemtypes to differentiate things like Fiction, Non-Fiction, CDs, CDROMs, Large Print, etc.
2617 <listitem><para>In my data, the 245 h marc subfield contained info like [book], [magazines], [cd], [computer disks], [puzzle] etc. so this was a good place to grab some itemtype info. </para></listitem>
2618 <listitem><para>I also used the 008 fixed length data elements field to grab Literary Form (0 for non-fiction, 1 for fiction, etc.), target audience (b for primary, j for juvenile etc.) </para></listitem>
2619 <listitem><para>Modify bulkmarcimport.pl to generate appropriate item types --
2620 This can be tricky if you are not familiar with perl </para></listitem>
2621 <listitem><para><emphasis>The developer team may eventually add some templates to bulkmarcimport.pl to assist in this task, as well as a way that bulkmarcimport.pl could step through each record and show what would be done before actually committing changes to the database.</emphasis></para></listitem>
2622 <listitem><para>You may also need to edit your itemtypes to add or remove itemtypes according to your needs.</para></listitem>
2623 <listitem><para>From the intranet interface, click on the "Parameters" graphic and then click on the Item types link.
2624 </para></listitem>
2625 </itemizedlist>
2626 </para>
2627
2628
2629 <para><emphasis>Borrowers</emphasis></para>
2630
2631
2632 <para>In the case of CMSC, the borrowers database is populated from the same user database that is used on the school servers with a a custom script that runs nightly that updates the Koha borrower database automatically </para>
2633
2634
2635
2636 <para><emphasis>Clearing all bibliographic data out of Koha between import attempts </emphasis></para>
2637 <para><emphasis>WARNING!! These instructions are dangerous!! You should only do this on a clean Koha system where you are testing importing of MARC records from another library system. Do _NOT_ do this on a system which already has data stored in it. These instructions will delete _ALL_ bibliographic and holdings data from the Koha database.</emphasis></para>
2638
2639 <para><screen>
2640 Connect to your Koha database
2641 mysql Koha -ukohaadmin -pmypassword
2642 (get your koha userid and password from the /etc/koha.conf file)
2643 Delete all of the bibliographic data <-- warning, very dangerous!
2644 delete from biblio;
2645 delete from bibliosubtitle;
2646 delete from bibliosubject;
2647 delete from biblioitems;
2648 delete from items;
2649 </screen></para>
2650 </sect2>
2651 </sect1>
2652
2653
2654
2655 <sect1 id="Troubleshooting">
2656 <title>Appendix D: Troubleshooting Koha</title>
2657 <para><emphasis>Item/Concern/Usual diagnostic procedure</emphasis></para>
2658 <para>Recommendations wanted</para>
2659 </sect1>
2660
2661 <sect1 id="KeaSection">
2662 <!-- NEEDLINK NEED The Picture and link here!! -->
2663 <title>Appendix E: Using Kea</title>
2664 <para><emphasis>This section is derived from documentation (c) Katipo.  Kea is itself (c) Katipo.  Used with permission.</emphasis></para>
2665 <para><emphasis>BEFORE STARTING</emphasis></para>
2666 <para>To create a new language template, you need to contact one of the following people, who will arrange for an area for your language to be created in the Kea system.  </para>
2667
2668 <para><emphasis>System Requirements</emphasis></para>
2669 <para>Minimum Requirements are:</para>
2670 <para>A Computer Connected to the Internet,</para>
2671 <para>Internet Explorer 5.0 or newer or a Mozilla browser such as Netscape 6,</para>
2672 <para>- NB: Kea is affected on the speed of your internet connection and to a smaller degree by the power of your machine. A faster internet connection will make Kea easier to use.</para>
2673
2674 <para><emphasis>Things You Need To Ask Someone Else To Do</emphasis></para>
2675 <para>Restore pages from backup,</para>
2676 <para>Roll back a website to a previous state, </para>
2677 <para>Undelete files marked for deletion.</para>
2678
2679 <para><emphasis>Logging Into The Kea File Manager</emphasis></para>
2680 <para>In order to login to File Manager you will need 3 things:</para>
2681 <para>Your Kea user name,</para>
2682 <para>Your Kea password,</para>
2683 <para>The URL of the File Manager on the edit site.</para>
2684
2685 <para><emphasis>Differences Between The File Manager And Edit Content</emphasis></para>
2686
2687 <para>The File Manager is the tool where you preform actions on files such as finding files to edit, or preview, deleting moving and triggering files. In order to edit a page, you will first need to find it in the File Manager.</para>
2688 <para>Edit Content: Once you have found the file you wish to edit in the file manager, click on "Edit Content" to launch the content editor. You make your changes in the yellow box and then Submit them to the page, click "Ok" to stay on that page, or "Exit" to return to the file manager.</para>
2689
2690
2691 <para><emphasis>Navigating In File Manager</emphasis></para>
2692 <para>To Navigate around our edit site in File Manager, it is best to think of the File Manager Screen in 3 sections.</para>
2693 <para>Breadcrumbs: Breadcrumbs show you the path to where you are now, and enable you to retrace your steps. The first element in the path is the home or root folder for the website. All the names in this path are links, click on any name in the breadcrumbs to jump back to that folder.</para>
2694 <para>Folders: This is a listing of all the folders within the folder you are currently in. If you click on the name of a folder, you will be taken to the File Manager screen for that folder. Clicking on subfolders is how you go forward in a site. You can only move forward one folder at a time (just the same as in the Windows File Manager - -Explorer).</para>
2695 <para>File Listing: This is a listing of all the files in the current folder. If you click on the file name, you will get a preview of the page.</para>
2696
2697 <para><emphasis>The File Manager Screen Explained</emphasis></para>
2698 <para>Below is an example of a File Manager Screen for a user with full privileges. Note that some of the Screen options are not availble to all users.
2699
2700 <para>1. You Are Here: These are "breadcrumbs", showing the path through the folders you have taken. They show which folder you are working in at the moment. You can use these for navigation. Click on any of the links in the breadcrumbs to take you back to that folder.</para>
2701 <para>2. Checked Out Files: This is a listing of all the files that are Checked Out to you. Once you have finished working on a file, make sure that it has been released so that others can work on it. To release the file so that others may edit it, click the file name next to "Checked Out Files".</para>
2702 <para>3. Create Folder: Used to make a new folder with the name given in the field next to it. Only letters, hyphens,underscores, full stops and numbers are acceptable characters in the folder name. Spaces are unacceptable. We strongly recommend you use lower case letters in your file and folder names.</para>
2703 <para>4. Folders: Listing of sub folders below the current folder. Use these for navigation. Click on a folder name to access the files in that folder.</para>
2704 <para>5. Upload File: Use this to locate the file you wish to upload locally from your own drive. Clicking Browse will bring up a window from which you can select your file. Click Ok to select the file you want and the name will appear in the field to the left of the browse button. Click Upload to copy the file into the current folder. Note: Files over 1Mb will not be uploaded.</para>
2705 <para>6. Create New File: Used to Create A New Page on the Website (you probably will not need this feature, as you should only be changing copies of the existing files).</para>
2706 <para>7. Check Boxes: Click a box to select a file so you can trigger/notify, move or delete it. Click multiple boxes to preform the same action on multiple files at once (again, not something you should need for a translation). </para>
2707 <para>8. Edit Content: Clicking on the Edit Content link will launch the Kea Editor on this page. </para>
2708 <para>9. Filename: Click on the file name to preview the page.</para>
2709 <para>10. Column Headings: Click on a Column heading to reorder the files.</para>
2710 <para>11. Edit Info: This page contains information about the page such as the page title (appears in the status bar of the browser and breadcrumbs) meta data used by search engines to search your page, who "owns" the page , and when it was published.</para>
2711 <para>12. Edit Source: Opens up the source editor. Only enabled for the webmaster or people with advanced HTML skills.</para>
2712 <para>13. Last Modified: Shows when page was last modified.</para>
2713 <para>14. Modified By: Gives the username of the last person, usually an email address to edit this page. Clicking the username will bring up a history of all the users who have edited this page. </para>
2714 <para>15. Trigger: Copies the page across to the live site. This option is only available to site administrators or those with Trigger privileges.</para>
2715 <para>16. Delete: Deletes the page from the File Manager listing. Note that all deleted files go into a "Trash Can" that is normally deleted weekly. If you have deleted a file by accident contact your website administrator to get the file reinstated. </para>
2716 <para>17. Notify: Appears in place of the Trigger button for most users. This option will send an email to your site administrator, notifying them that changes have been made and requesting that they trigger the page live.</para>
2717 <para>18. Move: Moves the selected file to another folder within the site. Note that it pays to check files after they have been moved to fix links etc. Move also allows users to rename a file. (Again, not something you should need for Koha work.)</para>
2718 <para>19. Select All: Selects all the files in the folder.</para>
2719
2720 <para><emphasis>Launching The Kea Content Editor</emphasis></para>
2721 <para>Log on to File Manager</para>
2722 <para>Use the folder listings and breadcrumbs to locate the folder in which your page resides.</para>
2723 <para>Once you are in the correct folder, click the folder name eg index.html, to preview the page in your web browser. Check that this is the correct page that you want to edit. Use the browser back button to go from the preview back to the File Manager screen.</para>
2724 <para>In File Manager, click "Edit Content" to the right of the file name you wish to edit.</para>
2725 <para>You will be taken to a view of the page where the editable text is highlighted yellow. Note that there may also be some text highlighted purple, changes to this text may appear on other pages. </para>
2726
2727 <para><emphasis>Making Changes</emphasis></para>
2728 <para>Clicking on an area of yellow highlighted text, will open up the Kea window. It is in the Kea window that you edit a block of text.</para>
2729 <para>Different parts of the page are separated into kea blocks. For example, the page heading is normally in a different Kea block to the main body text.</para>
2730 <para>You can now change the text as you would do normally in Word. Try adding some text. eg "Adding some text".</para>
2731 <para>Kea will recognise line breaks (carriage returns) and paragraph breaks. Hit enter once for a line break. Hit enter twice for a paragraph. Note: Kea will only recognise one paragraph break at a time. If you try to enter several paragraph breaks between paragraphs, kea will ignore all but the first one.</para>
2732 <para>To commit your changes to the page, press Submit.</para>
2733 <para>The Kea box will close and be replaced by a smaller one as per below:</para>
2734 <para>To continue editing the page press Ok, to exit the Kea editor and return to the File Manager screen click exit.  We want to continue editing the page so click Ok.</para>
2735 <para>You should now be able to see the change you have made to the page. Click the text you have just changed again to open the Kea window.</para>
2736 <para>Now we are going to look at the other buttons on the Kea window.</para>
2737 <para>In the top right corner of the kea window there are 3 buttons. The horizontal line (-) minimises the kea window. The question mark (?) opens the Kea help pages (Note this function is currently disabled). The cross closes (X) the Kea window. You will loose any changes you have made. In the bottom left of the screen there is the Submit button we used before to commit changes and the Cancel button. Make a change to the page and then press Cancel. You will get a little box that comes up "Loose Changes". Click OK. Your changes will be lost and the Kea window closed.</para>
2738 </sect1>
2739
2740 </book>