1<?php
2/********************************
3OSBib:
4A collection of PHP classes to manage bibliographic formatting for OS bibliography software
5using the OSBib standard.  Taken from WIKINDX (http://wikindx.sourceforge.net).
6
7Released through http://bibliophile.sourceforge.net under the GPL licence.
8Do whatever you like with this -- some credit to the author(s) would be appreciated.
9
10If you make improvements, please consider contacting the administrators at bibliophile.sourceforge.net
11so that your improvements can be added to the release package.
12
13Mark Grimshaw 2005
14http://bibliophile.sourceforge.net
15********************************/
16/**
17* This mapping class is specific to BibTeX for those databases that store or access their data in associative arrays
18* modelled on BibTeX.  e.g.
19* array(
20* 'author'	=>	'Grimshaw, Mark and Boulanger, Christian',
21* 'title'	=>	'How Bibliographies Ruined our Lives',
22* 'year'	=>	'2005',
23* 'volume'	=>	'20',
24* 'number'	=>	'4',
25* 'journal'	=>	'Journal of Mundane Trivia',
26* 'pages'	=>	'42--111',
27* 'howpublished' =>	"\url{http://bibliophile.sourceforge.net}",
28* );
29*
30* See the README for details on how to use this
31*/
32class STYLEMAPBIBTEX
33{
34	function STYLEMAPBIBTEX()
35	{
36		$this->loadMap();
37	}
38/**
39* loadMap: Load the map into arrays based on resource type.
40*
41* The basic() array contains database fields that are common to all types of resources.
42* The key is the database field and the value is displayed to the user to be part of the style definition.
43* e.g. if the user enters:
44* author. title. publisherName|: publisherLocation|.
45* for a style definition for a book, we know that 'author' is the database field 'creator1', 'title' is
46* the database field 'title' etc.
47* There are some exceptions as defined by WIKINDX (other systems may have different methods).  Because these may be
48* represented in different ways in different systems, you will need to explicitly define these.  See BIBSTYLE.php
49* for examples of how WIKINDX does this.  The comments below relate to how WIKINDX stores such values in its database:
50* 1/ 'originalPublicationYear doesn't exist in the database but is used to re-order publicationYear and reprintYear
51* for book and book_article resource types.
52* 2/ 'pages' doesn't exist in the database but is created on the fly in BIBSTYLE.php as an amalgamation of
53* the database fields pageStart and pageEnd.
54* 3/ 'date' doesn't exist in the database but is created on the fly in BIBSTYLE.php as an amalgamation of
55* the database fields miscField2 (day) and miscField3 (month).
56* 4/ 'runningTime' doesn't exist in the database but is created on the fly in BIBSTYLE.php as an amalgamation of
57* the database fields miscField1 (minute) and miscField4 (hour) for film/broadcast.
58*
59* @author Mark Grimshaw
60*/
61	function loadMap()
62	{
63/**
64* What fields are available to the in-text citation template? This array should NOT be changed.
65* Currently, in-text citation formatting is not available (although it is defined in the XML style file). Future
66* releases will implement this.
67*/
68		$this->citation = array(
69					"creator" => "creator",
70					"title"	=>	"title",
71					"year" => "year",
72					"pages" => "pages",
73					"ID" => "ID");
74/**
75* NB NB NB NB NB NB NB NB NB NB NB
76*
77* Map between OSBib's resource types (keys) and the bibliographic system's resource types (values). You must
78* NOT remove any elements or change the generic types. You may edit the value of each element. If your system
79* does not have a particular resource type, then you should set the value to FALSE (e.g. 'film' => FALSE,)
80*/
81		$this->types = array(
82// The generic types must be present and unchanged.  DO NOT CHANGE THE VALUE OF THESE THREE!
83			'genericBook'		=>	'genericBook',
84			'genericArticle'	=>	'genericArticle',
85			'genericMisc'		=>	'genericMisc',
86// Edit values if necessary
87			'book'			=>	'book',
88			'book_article'		=>	'inbook',
89			'journal_article'	=>	'article',
90			'newspaper_article'	=>	'article',
91			'magazine_article'	=>	'article',
92			'proceedings'		=>	'proceedings',
93			'conference_paper'	=>	FALSE,
94			'proceedings_article'	=>	'inproceedings',
95			'thesis'		=>	FALSE,
96			'web_article'		=>	FALSE,
97			'film'			=>	FALSE,
98			'broadcast'		=>	FALSE,
99			'music_album'		=>	FALSE,
100			'music_track'		=>	FALSE,
101			'music_score'		=>	FALSE,
102			'artwork'		=>	FALSE,
103			'software'		=>	FALSE,
104			'audiovisual'		=>	FALSE,
105			'database'		=>	FALSE,
106			'government_report'	=>	FALSE,
107			'report'		=>	'techreport',
108			'hearing'		=>	FALSE,
109			'statute'		=>	FALSE,
110			'legal_ruling'		=>	FALSE,
111			'case'			=>	FALSE,
112			'bill'			=>	FALSE,
113			'patent'		=>	FALSE,
114			'personal'		=>	FALSE,
115			'unpublished'		=>	'unpublished',
116			'classical'		=>	FALSE,
117			'manuscript'		=>	FALSE,
118			'map'			=>	FALSE,
119			'chart'			=>	FALSE,
120			'miscellaneous'		=>	'misc',
121		);
122/**
123* Basic array of elements common to all types - change the key to map the database field that stores that value.
124*/
125		$this->basic = array(
126					'title'		=>	'title',
127					'year'		=>	'publicationYear',
128			);
129/**
130* Creator mapping.  OSBib uses 'creator1' .. 'creator5' for internally managing creator names such as
131* author, editor, series editor, translator, reviser, artist, inventor, composer etc.  The associative
132* array (SQL row) you submit to $this->bibformat->preProcess() MUST use these fields for the creators.
133* Furthermore, you may NOT change any keys (or values) in the arrays below that are 'creator1' ... 'creator5'.
134*/
135
136/**
137* NB NB NB NB NB NB NB NB NB NB NB
138*
139* For the following arrays, the only things you should change are the keys of each array (except 'creator1'
140* .. 'creator5' - see above).  These keys are your database fieldnames for resources.
141* The values are displayed to the user when creating/editing a style and
142* must NOT change or be removed.  If your database does not store a particular value, then it should still
143* exist in the array and must have a null key (e.g. $this->book[] = 'publisherName'; in the case of a database
144* that does not store publisher names for books ;-)).
145*
146* The keys 'creator1', 'creator2', 'date' and 'URL' are special keys.  All other keys should be lowercase
147* field names from the BibTeX specification.
148**************
149**************
150* Do NOT remove arrays.
151* Do not remove array elements.
152* Do not add array elements.
153**************
154**************
155*
156* You do not need to edit arrays where the value in $this->types above is FALSE as the array will then simply be
157* ignored.  So, although 34 resource types are defined here, if you system only has 6 resource types, you only need
158* to edit those 6 types.
159*
160* If you do not conform to this, OSBib XML style definition sheets you produce will not be compatible with other systems.
161*/
162// Three Generic fallback types used when there's no style definition for one of the resources below.
163// Generic Book type - no collection data, like a book
164		$this->genericBook = $this->basic;
165		$this->genericBook['creator1'] = 'creator';
166		$this->genericBook['creator2'] = 'editor';
167		$this->genericBook['publisher'] = 'publisherName';
168		$this->genericBook['address'] = 'publisherLocation';
169		$this->genericBook['ISBN'] = 'ID';
170// Generic Article type - in a collection like an article
171		$this->genericArticle = $this->basic;
172		$this->genericArticle['creator1'] = 'creator';
173		$this->genericArticle['creator2'] = 'editor';
174		$this->genericArticle['journal'] = 'collection';
175		$this->genericArticle['publisher'] = 'publisherName';
176		$this->genericArticle['address'] = 'publisherLocation';
177		$this->genericArticle['date'] = 'date';
178		$this->genericArticle['pages'] = 'pages';
179		$this->genericArticle['ISBN'] = 'ID';
180// Generic Miscellaneous type - whatever is best not put in the above two fall back types....?
181		$this->genericMisc = $this->basic;
182		$this->genericMisc['creator1'] = 'creator';
183		$this->genericMisc['publisher'] = 'publisherName';
184		$this->genericMisc['address'] = 'publisherLocation';
185		$this->genericMisc['type'] = 'type';
186		$this->genericMisc['date'] = 'date';
187		$this->genericMisc['ISBN'] = 'ID';
188
189// Resource specific mappings. The order here is the display order when editing/creating styles.
190// BOOK
191		$this->book = $this->basic;
192		$this->book['creator1'] = 'author';
193		$this->book['creator2'] = 'editor';
194		$this->book[] = 'translator';
195		$this->book[] = 'reviser';
196		$this->book[] = 'seriesEditor';
197		$this->book['series'] = 'seriesTitle';
198		$this->book['edition'] = 'edition';
199		$this->book['number'] = 'seriesNumber';
200		$this->book[] = 'numberOfVolumes';
201		$this->book['volume'] = 'volumeNumber';
202		$this->book[] = 'originalPublicationYear';
203		$this->book[] = 'volumePublicationYear';
204		$this->book['publisher'] = 'publisherName';
205		$this->book['address'] = 'publisherLocation';
206		$this->book['ISBN'] = 'ISBN';
207// BOOK ARTICLE/CHAPTER
208		$this->book_article = $this->book;
209		$this->book_article['bookitle'] = 'book';
210		$this->book_article[] = 'shortBook';
211		$this->book_article['pages'] = 'pages';
212// JOURNAL ARTICLE
213		$this->journal_article = $this->basic;
214		$this->journal_article['creator1'] = 'author';
215		$this->journal_article['volume'] = 'volume';
216		$this->journal_article['number'] = 'issue';
217		$this->journal_article['journal'] = 'journal';
218		$this->journal_article[] = 'shortJournal';
219		$this->journal_article['pages'] = 'pages';
220		$this->journal_article['ISSN'] = 'ISSN';
221// NEWSPAPER ARTICLE
222		$this->newspaper_article = $this->basic;
223		$this->newspaper_article['year'] = 'issueYear'; // override publicationYear
224		$this->newspaper_article['date'] = 'issueDate';
225		$this->newspaper_article['creator1'] = 'author';
226		$this->newspaper_article['journal'] = 'newspaper';
227		$this->newspaper_article[] = 'shortNewspaper';
228		$this->newspaper_article['chapter'] = 'section';
229		$this->newspaper_article['address'] = 'city';
230		$this->newspaper_article['pages'] = 'pages';
231		$this->newspaper_article['ISSN'] = 'ISSN';
232// MAGAZINE ARTICLE
233		$this->magazine_article = $this->basic;
234		$this->magazine_article['year'] = 'issueYear'; // override publicationYear
235		$this->magazine_article['date'] = 'issueDate';
236		$this->magazine_article['creator1'] = 'author';
237		$this->magazine_article['journal'] = 'magazine';
238		$this->magazine_article[] = 'shortMagazine';
239		$this->magazine_article['edition'] = 'edition';
240		$this->magazine_article['type'] = 'type';
241		$this->magazine_article['volume'] = 'volume';
242		$this->magazine_article['number'] = 'number';
243		$this->magazine_article['pages'] = 'pages';
244		$this->magazine_article['ISSN'] = 'ISSN';
245// PROCEEDINGS ARTICLE
246		$this->proceedings_article = $this->basic;
247		$this->proceedings_article['creator1'] = 'author';
248		$this->proceedings_article['booktitle'] = 'conference';
249		$this->proceedings_article[] = 'shortConference';
250		$this->proceedings_article['organization'] = 'conferenceOrganiser';
251		$this->proceedings_article['address'] = 'conferenceLocation';
252		$this->proceedings_article['date'] = 'conferenceDate';
253// overwrite publicationYear
254		$this->proceedings_article['year'] = 'conferenceYear';
255		$this->proceedings_article['pages'] = 'pages';
256		$this->proceedings_article['ISBN'] = 'ISSN';
257// THESIS
258		$this->thesis = $this->basic;
259// overwrite publicationYear
260		$this->thesis['year'] = 'awardYear';
261		$this->thesis['creator1'] = 'author';
262		$this->thesis[] = 'label'; // 'thesis', 'dissertation'
263// 'type' is special and used in BIBFORMAT.php
264		$this->thesis['type'] = 'type'; // 'Master's', 'PhD', 'Doctoral', 'Diploma' etc.
265		$this->thesis['institution'] = 'institution';
266		$this->thesis['address'] = 'institutionLocation';
267		$this->thesis[] = 'department';
268		$this->thesis['journal'] = 'journal';
269		$this->thesis[] = 'shortJournal';
270		$this->thesis['volume'] = 'volumeNumber';
271		$this->thesis['number'] = 'issueNumber';
272		$this->thesis[] = 'abstractYear';
273		$this->thesis['pages'] = 'pages';
274		$this->thesis['ISBN'] = 'ID';
275// WEB ARTICLE
276		$this->web_article = $this->basic;
277		$this->web_article['creator1'] = 'author';
278		$this->web_article['journal'] = 'journal';
279		$this->web_article[] = 'shortJournal';
280		$this->web_article['volume'] = 'volume';
281		$this->web_article['number'] = 'issue';
282		$this->web_article['pages'] = 'pages';
283		$this->web_article['URL'] = 'URL';
284		$this->web_article['date'] = 'accessDate';
285		$this->web_article[] = 'accessYear';
286		$this->web_article['ISBN'] = 'ID';
287// MISCELLANEOUS
288		$this->miscellaneous = $this->basic;
289		$this->miscellaneous['creator1'] = 'creator';
290		$this->miscellaneous['type'] = 'medium';
291		$this->miscellaneous['publisher'] = 'publisherName';
292		$this->miscellaneous['address'] = 'publisherLocation';
293		$this->miscellaneous['ISBN'] = 'ID';
294// REPORT/DOCUMENTATION
295		$this->report = $this->basic;
296		$this->report['creator1'] = 'author';
297		$this->report['type'] = 'type';
298		$this->report['series'] = 'seriesTitle';
299		$this->report['number'] = 'number';
300		$this->report['institution'] = 'institution';
301		$this->report['address'] = 'institutionLocation';
302		$this->report['date'] = 'reportDate';
303		$this->report['year'] = 'reportYear'; // override
304		$this->report['pages'] = 'pages';
305		$this->report['ISSN'] = 'ISSN';
306// PROCEEDINGS (complete set of)
307		$this->proceedings = $this->basic;
308		$this->proceedings['creator2'] = 'editor';
309		$this->proceedings['organization'] = 'conferenceOrganiser';
310		$this->proceedings['address'] = 'conferenceLocation';
311		$this->proceedings['date'] = 'conferenceDate';
312		$this->proceedings['year'] = 'conferenceYear'; // override
313		$this->proceedings['ISBN'] = 'ISSN';
314// UNPUBLISHED WORK
315		$this->unpublished = $this->basic;
316		$this->unpublished['year'] = 'year'; // Override
317		$this->unpublished['creator1'] = 'author';
318		$this->unpublished['type'] = 'type';
319		$this->unpublished['institution'] = 'institution';
320		$this->unpublished['address'] = 'institutionLocation';
321		$this->unpublished['ISBN'] = 'ID';
322// CONFERENCE PAPER
323		$this->conference_paper = $this->basic;
324		$this->conference_paper['creator1'] = 'author';
325		$this->conference_paper['publisherName'] = 'publisherName';
326		$this->conference_paper['publisherLocation'] = 'publisherLocation';
327		$this->conference_paper['isbn'] = 'ISSN';
328
329/***********************
330The following not used by BibTeX.  They are ignored as per $this->types above.
331***********************/
332
333// FILM
334		$this->film = $this->basic;
335		$this->film['creator1'] = 'director';
336		$this->film['creator2'] = 'producer';
337		$this->film['field1'] = 'country';
338		$this->film['runningTime'] = 'runningTime';
339		$this->film['publisherName'] = 'distributor';
340		$this->film['isbn'] = 'ID';
341// BROADCAST
342		$this->broadcast = $this->basic;
343		$this->broadcast['creator1'] = 'director';
344		$this->broadcast['creator2'] = 'producer';
345		$this->broadcast['runningTime'] = 'runningTime';
346		$this->broadcast['date'] = 'broadcastDate';
347		$this->broadcast['year1'] = 'broadcastYear'; // override
348		$this->broadcast['publisherName'] = 'channel';
349		$this->broadcast['publisherLocation'] = 'channelLocation';
350		$this->broadcast['isbn'] = 'ID';
351// SOFTWARE
352		$this->software = $this->basic;
353		$this->software['creator1'] = 'author';
354		$this->software['field2'] = 'type';
355		$this->software['field4'] = 'version';
356		$this->software['publisherName'] = 'publisherName';
357		$this->software['publisherLocation'] = 'publisherLocation';
358		$this->software['isbn'] = 'ID';
359// ARTWORK
360		$this->artwork = $this->basic;
361		$this->artwork['creator1'] = 'artist';
362		$this->artwork['field2'] = 'medium';
363		$this->artwork['publisherName'] = 'publisherName';
364		$this->artwork['publisherLocation'] = 'publisherLocation';
365		$this->artwork['isbn'] = 'ID';
366// AUDIOVISUAL
367		$this->audiovisual = $this->basic;
368		$this->audiovisual['creator1'] = 'author';
369		$this->audiovisual['creator2'] = 'performer';
370		$this->audiovisual['creator5'] = 'seriesEditor';
371		$this->audiovisual['field1'] = 'seriesTitle';
372		$this->audiovisual['field4'] = 'seriesNumber';
373		$this->audiovisual['field3'] = 'edition';
374		$this->audiovisual['miscField4'] = 'numberOfVolumes';
375		$this->audiovisual['field5'] = 'volumeNumber';
376		$this->audiovisual['year3'] = 'volumePublicationYear';
377		$this->audiovisual['publisherName'] = 'publisherName';
378		$this->audiovisual['publisherLocation'] = 'publisherLocation';
379		$this->audiovisual['field2'] = 'medium';
380		$this->audiovisual['isbn'] = 'ID';
381// (LEGAL) CASE
382		$this->case = $this->basic;
383		$this->case['field1'] = 'reporter';
384		$this->case['creator3'] = 'counsel';
385		$this->case['field4'] = 'reporterVolume';
386		$this->case['date'] = 'caseDecidedDate';
387		$this->case['year1'] = 'caseDecidedYear'; // override
388		$this->case['publisherName'] = 'court';
389		$this->case['isbn'] = 'ISBN';
390// LEGAL RULING/REGULATION
391		$this->legal_ruling = $this->basic;
392		$this->legal_ruling['creator1'] = 'author';
393		$this->legal_ruling['field1'] = 'section';
394		$this->legal_ruling['field2'] = 'type';
395		$this->legal_ruling['field4'] = 'number';
396		$this->legal_ruling['field3'] = 'edition';
397		$this->legal_ruling['date'] = 'codeEditionDate';
398		$this->legal_ruling['year1'] = 'codeEditionYear'; // override
399		$this->legal_ruling['publisherName'] = 'publisherName';
400		$this->legal_ruling['publisherLocation'] = 'publisherLocation';
401		$this->legal_ruling['pages'] = 'pages';
402		$this->legal_ruling['isbn'] = 'ISBN';
403// (PARLIAMENTARY) BILL
404		$this->bill = $this->basic;
405		$this->bill['field2'] = 'code';
406		$this->bill['field3'] = 'codeVolume';
407		$this->bill['field1'] = 'codeSection';
408		$this->bill['field5'] = 'number';
409		$this->bill['field4'] = 'session';
410		$this->bill['year1'] = 'sessionYear'; // override publicationYear
411		$this->bill['publisherName'] = 'legislativeBody';
412		$this->bill['publisherLocation'] = 'publisherLocation';
413		$this->bill['pages'] = 'pages';
414		$this->bill['isbn'] = 'ID';
415// CLASSICAL WORK
416		$this->classical = $this->basic;
417		$this->classical['creator1'] = 'attributedTo';
418		$this->classical['field4'] = 'volume';
419		$this->classical['isbn'] = 'ISBN';
420// GOVERNMENT REPORT/DOCUMENTATION
421		$this->government_report = $this->basic;
422		$this->government_report['creator1'] = 'author';
423		$this->government_report['field2'] = 'department';
424		$this->government_report['field1'] = 'section';
425		$this->government_report['field4'] = 'volume';
426		$this->government_report['field5'] = 'issueNumber';
427		$this->government_report['field3'] = 'edition';
428		$this->government_report['publisherName'] = 'publisherName';
429		$this->government_report['pages'] = 'pages';
430		$this->government_report['isbn'] = 'ISSN';
431// GOVERNMENT/LEGAL HEARING
432		$this->hearing = $this->basic;
433		$this->hearing['field1'] = 'committee';
434		$this->hearing['field2'] = 'legislativeBody';
435		$this->hearing['field3'] = 'session';
436		$this->hearing['miscField4'] = 'numberOfVolumes';
437		$this->hearing['field4'] = 'documentNumber';
438		$this->hearing['date'] = 'hearingDate';
439		$this->hearing['year1'] = 'hearingYear'; // override
440		$this->hearing['publisherName'] = 'publisherName';
441		$this->hearing['publisherLocation'] = 'publisherLocation';
442		$this->hearing['pages'] = 'pages';
443		$this->hearing['isbn'] = 'ISSN';
444// ONLINE DATABASE
445		$this->database = $this->basic;
446		$this->database['creator1'] = 'author';
447		$this->database['URL'] = 'URL';
448		$this->database['date'] = 'accessDate';
449		$this->database['year2'] = 'accessYear';
450		$this->database['publisherName'] = 'publisherName';
451		$this->database['publisherLocation'] = 'publisherLocation';
452		$this->database['isbn'] = 'ID';
453// MANUSCRIPT
454		$this->manuscript = $this->basic;
455		$this->manuscript['creator1'] = 'author';
456		$this->manuscript['collectionTitle'] = 'collection';
457		$this->manuscript['collectionTitleShort'] = 'shortCollection';
458		$this->manuscript['field3'] = 'number';
459		$this->manuscript['field2'] = 'type';
460		$this->manuscript['date'] = 'issueDate';
461		$this->manuscript['year1'] = 'issueYear'; // override
462		$this->manuscript['pages'] = 'pages';
463		$this->manuscript['isbn'] = 'ISBN';
464// MAP
465		$this->map = $this->basic;
466		$this->map['creator1'] = 'cartographer';
467		$this->map['creator5'] = 'seriesEditor';
468		$this->map['field1'] = 'seriesTitle';
469		$this->map['field2'] = 'type';
470		$this->map['field3'] = 'edition';
471		$this->map['publisherName'] = 'publisherName';
472		$this->map['publisherLocation'] = 'publisherLocation';
473		$this->map['isbn'] = 'ISBN';
474// CHART
475		$this->chart = $this->basic;
476		$this->chart['creator1'] = 'creator';
477		$this->chart['field1'] = 'fileName';
478		$this->chart['field2'] = 'program';
479		$this->chart['field3'] = 'size';
480		$this->chart['field4'] = 'type';
481		$this->chart['field5'] = 'version';
482		$this->chart['field6'] = 'number';
483		$this->chart['publisherName'] = 'publisherName';
484		$this->chart['publisherLocation'] = 'publisherLocation';
485		$this->chart['isbn'] = 'ID';
486// STATUTE
487		$this->statute = $this->basic;
488		$this->statute['field2'] = 'code';
489		$this->statute['field5'] = 'codeNumber';
490		$this->statute['field1'] = 'publicLawNumber';
491		$this->statute['field3'] = 'session';
492		$this->statute['field4'] = 'section';
493		$this->statute['date'] = 'statuteDate';
494		$this->statute['year1'] = 'statuteYear'; // override
495		$this->statute['pages'] = 'pages';
496		$this->statute['isbn'] = 'ID';
497// PATENT
498		$this->patent = $this->basic;
499		$this->patent['creator1'] = 'inventor';
500		$this->patent['creator2'] = 'issuingOrganisation';
501		$this->patent['creator3'] = 'agent';
502		$this->patent['creator4'] = 'intAuthor';
503		$this->patent['field8'] = 'patentNumber';
504		$this->patent['field2'] = 'versionNumber';
505		$this->patent['field3'] = 'applicationNumber';
506		$this->patent['field6'] = 'intTitle';
507		$this->patent['field5'] = 'intPatentNumber';
508		$this->patent['field7'] = 'intClassification';
509		$this->patent['field1'] = 'publishedSource';
510		$this->patent['field9'] = 'legalStatus';
511		$this->patent['field4'] = 'type';
512		$this->patent['publisherName'] = 'assignee';
513		$this->patent['publisherLocation'] = 'assigneeLocation';
514		$this->patent['date'] = 'issueDate';
515		$this->patent['year1'] = 'issueYear'; // override
516		$this->patent['isbn'] = 'ID';
517// PERSONAL COMMUNICATION
518		$this->personal = $this->basic;
519		$this->personal['creator1'] = 'author';
520		$this->personal['creator2'] = 'recipient';
521		$this->personal['field2'] = 'type';
522		$this->personal['date'] = 'date';
523		$this->personal['year1'] = 'year'; // override
524		$this->personal['isbn'] = 'ID';
525// MUSIC ALBUM
526		$this->music_album = $this->basic;
527		$this->music_album['creator1'] = 'performer';
528		$this->music_album['creator2'] = 'composer';
529		$this->music_album['creator3'] = 'conductor';
530		$this->music_album['field2'] = 'medium';
531		$this->music_album['publisherName'] = 'publisherName';
532		$this->music_album['isbn'] = 'ID';
533// MUSIC TRACK
534		$this->music_track = $this->basic;
535		$this->music_track['creator1'] = 'performer';
536		$this->music_track['creator2'] = 'composer';
537		$this->music_track['creator3'] = 'conductor';
538		$this->music_track['collectionTitle'] = 'album';
539		$this->music_track['collectionTitleShort'] = 'shortAlbum';
540		$this->music_track['field2'] = 'medium';
541		$this->music_track['publisherName'] = 'publisherName';
542		$this->music_track['isbn'] = 'ID';
543// MUSIC SCORE
544		$this->music_score = $this->basic;
545		$this->music_score['creator1'] = 'composer';
546		$this->music_score['creator2'] = 'editor';
547		$this->music_score['field3'] = 'edition';
548		$this->music_score['publisherName'] = 'publisherName';
549		$this->music_score['publisherLocation'] = 'publisherLocation';
550		$this->music_score['isbn'] = 'ISBN';
551	}
552}
553?>
554