source: main/trunk/model-sites-dev/multimodal-mdl/collect/trad-my-ipod/etc/collectionConfig.xml@ 28445

Last change on this file since 28445 was 28445, checked in by davidb, 11 years ago

Tweak to collection configuration file

File size: 18.6 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<CollectionConfig xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3 <metadataList>
4 <metadata name="creator"></metadata>
5 <metadata name="maintainer"></metadata>
6 <metadata name="public">true</metadata>
7 </metadataList>
8 <displayItemList>
9 <displayItem assigned="true" lang="en" name="name">Traditional MDL</displayItem>
10 <displayItem assigned="true" lang="en" name="description"></displayItem>
11 </displayItemList>
12 <!-- Global format statement -->
13 <format>
14 <gsf:template name="choose-title">
15
16 <gsf:choose-metadata>
17 <gsf:metadata name="dc.Title"/>
18 <gsf:metadata name="exp.Title"/>
19 <gsf:metadata name="ex.dc.Title"/>
20 <gsf:metadata name="ex.ID3.Title"/>
21 <gsf:metadata name="ex.Title"/>
22 <gsf:metadata name="Title"/>
23 <gsf:default>Untitled</gsf:default>
24 </gsf:choose-metadata>
25
26 <gsf:switch>
27 <gsf:metadata name='dc.Creator'/>
28 <gsf:when test='exists'>
29
30 <gsf:switch>
31 <gsf:metadata name="dc.Creator"/>
32 <gsf:when test="notEquals" test-value="Unknown">
33
34 by <i><gsf:metadata name='dc.Creator'/></i>
35 </gsf:when>
36 </gsf:switch>
37
38 </gsf:when>
39 </gsf:switch>
40 </gsf:template>
41 </format>
42
43 <search type="lucene">
44 <level name="document">
45 <displayItem lang="en" name="name">document</displayItem>
46 </level>
47 <level name="section">
48 <displayItem lang="en" name="name">section</displayItem>
49 </level>
50 <defaultLevel name="document"/>
51 <index name="text">
52 <displayItem lang="en" name="name">text</displayItem>
53 </index>
54 <index name="dc.Title,ex.dc.Title,ex.ID3.Title,Title">
55 <displayItem lang="en" name="name">titles</displayItem>
56 </index>
57 <index name="Source">
58 <displayItem lang="en" name="name">filenames</displayItem>
59 </index>
60 <defaultIndex name="text"/>
61 <searchType name="plain"/>
62 <searchType name="simpleform"/>
63 <searchType name="advancedform"/>
64
65
66 <!-- Search Format Statement -->
67 <format>
68 <gsf:template match="documentNode">
69
70 <gsf:variable name="cgiargFrameLength">
71 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameLength']/@value"/>
72 </gsf:variable>
73
74 <xsl:variable name="cgiargYScaleSimImg"><xsl:choose>
75 <xsl:when test="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value"/></xsl:when>
76 <xsl:otherwise>0.5</xsl:otherwise>
77 </xsl:choose>
78 </xsl:variable>
79
80 <td valign="top">
81 <gsf:icon type="document"/>
82 </td>
83 <td>
84 <xsl:choose>
85 <xsl:when test="@rank != 'NaN'">
86 (<script>
87 var rank=<xsl:value-of select="@rank"/>;
88 var perc=(rank-0.9)*100*10;
89 document.write(perc.toFixed(1));
90 </script>%)
91 </xsl:when>
92 </xsl:choose>
93
94 <xsl:choose>
95 <xsl:when test="/page/pageResponse/service[@name='AudioQuery']">
96 <a>
97 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="/page/pageResponse/collection/@name"/>/document/<xsl:value-of select="@nodeID"/>?p.frameOffset=<xsl:value-of select="@frameOffset"/>&amp;p.frameLength=<xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.length']/@value"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;p.yScaleSimImg=<xsl:value-of select="$cgiargYScaleSimImg"/>
98
99 </xsl:attribute>
100
101 <xsl:call-template name="choose-title"/>
102 </a>
103 </xsl:when>
104 <xsl:otherwise>
105 <gsf:link>
106 <xsl:call-template name="choose-title"/>
107 </gsf:link>
108 </xsl:otherwise>
109 </xsl:choose>
110
111 <gsf:switch>
112 <gsf:metadata name="artist"/>
113 <gsf:when test="exists">
114 by <gsf:metadata name="artist"/>
115 </gsf:when>
116 </gsf:switch>
117
118 <gsf:switch>
119 <gsf:metadata name="js.LabelledStructure"/>
120 <gsf:when test="exists">
121 <br/><i style="font-size: 80%">(Labelled structure: <gsf:metadata name="js.LabelledStructure"/>)</i>
122 </gsf:when>
123 </gsf:switch>
124
125 </td>
126 </gsf:template>
127 </format>
128
129 </search>
130
131 <infodb type="jdbm"/>
132
133 <import>
134 <pluginList>
135 <plugin name="ZIPPlugin"/>
136 <plugin name="GreenstoneXMLPlugin"/>
137
138 <plugin name="EmbeddedMetadataPlugin">
139 <option name="-process_exp" value="(?i)\.mp3$"/>
140 </plugin>
141
142 <plugin name="AudioDBPlugin">
143 <option name="-enable_streaming" value="mp3"/>
144 <option name="-enable_cache"/>
145 </plugin>
146
147 <plugin name="TextPlugin"/>
148 <plugin name="HTMLPlugin"/>
149 <plugin name="EmailPlugin"/>
150 <plugin name="PDFPlugin"/>
151 <plugin name="RTFPlugin"/>
152 <plugin name="WordPlugin"/>
153 <plugin name="PostScriptPlugin"/>
154 <plugin name="PowerPointPlugin"/>
155 <plugin name="ExcelPlugin"/>
156 <plugin name="ImagePlugin"/>
157 <plugin name="ISISPlugin"/>
158 <plugin name="NulPlugin"/>
159 <plugin name="OAIPlugin"/>
160 <plugin name="MetadataXMLPlugin"/>
161 <plugin name="ArchivesInfPlugin"/>
162 <plugin name="DirectoryPlugin"/>
163 </pluginList>
164 </import>
165
166 <importOption name="OIDtype" value="hash_on_full_filename"/>
167
168 <browse>
169 <classifier name="AZCompactList">
170 <option name="-metadata" value="dc.Title;ex.dc.Title;ex.ID3.Title;Title"/>
171 <option name="-mingroup" value="2"/>
172 <option name="-removeprefix" value="(?i)Le|La|Les|The|A\\s+"/>
173 </classifier>
174
175 <classifier name="AZCompactList">
176 <option name="-metadata" value="dc.Creator;ex.ID3.Artist"/>
177 <option name="-buttonname" value="Artists"/>
178 <option name="-mingroup" value="1"/>
179 <option name="-minnesting" value="40"/>
180 </classifier>
181
182 <classifier name="AZCompactList">
183 <option name="-metadata" value="dc.Title.albumtitle;ex.ID3.Album"/>
184 <option name="-buttonname" value="Albums"/>
185 <option name="-mingroup" value="1"/>
186 <option name="-minnesting" value="40"/>
187 </classifier>
188
189
190 <!--
191
192 <classifier name="List">
193 <option name="-metadata" value="dc.Title;Title"/>
194 <option name="-partition_type_within_level" value="approximate_size"/>
195 </classifier>
196 <classifier name="List">
197 <option name="-metadata" value="dc.Creator"/>
198 <option name="-button_name" value="Artists"/>
199 <option name="-partition_type_within_level" value="approximate_size"/>
200 </classifier>
201
202 -->
203
204 <format>
205 <gsf:template match="documentNode">
206 <td valign="top">
207 <gsf:link type="document">
208 <gsf:icon type="document"/>
209 </gsf:link>
210 </td>
211 <td valign="top">
212 <gsf:link type="source">
213 <gsf:choose-metadata>
214 <gsf:metadata name="thumbicon"/>
215 <gsf:metadata name="srcicon"/>
216 </gsf:choose-metadata>
217 </gsf:link>
218 </td>
219 <td valign="top">
220 <gsf:link type="document">
221 <!-- Defined in the global format statement -->
222 <xsl:call-template name="choose-title"/>
223
224 <gsf:switch>
225 <gsf:metadata name="dc.Title" />
226 <gsf:when test="equals" test-value="Unknown">
227 <br/><i>(<gsf:metadata name="Source"/>)</i>
228 </gsf:when>
229 </gsf:switch>
230
231 </gsf:link>
232 </td>
233 </gsf:template>
234
235 <gsf:template match="classifierNode[@classifierStyle = 'VList']">
236 <td valign="top">
237 <gsf:link type="classifier">
238 <gsf:icon type="classifier"/>
239 </gsf:link>
240 </td>
241 <td valign="top">
242 <gsf:link type="source">
243 <gsf:choose-metadata>
244 <gsf:metadata name="thumbicon"/>
245 <gsf:metadata name="srcicon"/>
246 </gsf:choose-metadata>
247 </gsf:link>
248 </td>
249 <td valign="top">
250 <!-- Defined in the global format statement -->
251 <xsl:call-template name="choose-title"/>
252 <gsf:switch>
253 <gsf:metadata name="Source"/>
254 <gsf:when test="exists"><br/><i>(<gsf:metadata name="Source"/>)</i></gsf:when>
255 </gsf:switch>
256 </td>
257 </gsf:template>
258 <gsf:template match="classifierNode[@classifierStyle = 'HList']">
259 <gsf:link type="classifier">
260 <gsf:metadata name="Title"/>
261 </gsf:link>
262 </gsf:template>
263 </format>
264 </browse>
265
266 <display>
267 <format>
268 <gsf:option name="TOC" value="false"/>
269
270 <!--
271 Overwriting this template allows you to change the heading of the document.
272 -->
273 <gsf:template name="documentHeading">
274
275 <xsl:variable name="httpCollection">
276 <xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
277 </xsl:variable>
278
279 <!-- Metadata derived from finger-printing -->
280
281 <xsl:call-template name="metadata-block">
282 <xsl:with-param name="httpCollection" select="$httpCollection"/>
283 </xsl:call-template>
284
285 </gsf:template>
286
287
288 <!--
289 Overwriting this template can be used to redefine the content of the whole document.
290 This is useful for simple documents, but not recommended for more complex documents
291 (e.g. hierachical and paged documents) as it can prevent any sub-sections from showing.
292 -->
293 <!--
294 <gsf:template name="documentContent">
295 <xsl:call-template name="wrappedSectionImage"/>
296 <xsl:call-template name="wrappedSectionText"/>
297 </gsf:template>
298 -->
299
300 <!--
301 Overwriting this template can be used to change the content of section headings.
302 -->
303 <!--
304 <gsf:template name="sectionHeading">
305 <xsl:call-template name="choose-title"/>
306 </gsf:template>
307 -->
308
309 <!--
310 Overwriting this template can be used to change the content of the top-level section.
311 -->
312 <!--
313 <gsf:template name="topLevelSectionContent">
314 <xsl:call-template name="wrappedSectionImage"/>
315 <xsl:call-template name="wrappedSectionText"/>
316 </gsf:template>
317 -->
318
319 <!--
320 Overwriting this template can be used to change the content of sections.
321 -->
322
323 <!--
324 <gsf:template name="sectionContent">
325 <xsl:call-template name="wrappedSectionImage"/>
326 <xsl:call-template name="wrappedSectionText"/>
327 </gsf:template>
328 -->
329
330 <xsl:template name="additionalHeaderContent">
331
332
333 <xsl:call-template name="soundmanager2-header"/>
334 <xsl:call-template name="js-mad-header"/>
335
336 <!-- Bespoke jquery-ui extension for turnstyle open/close blocks -->
337 <gsf:style src="ext/jquery-ui-extra/turnstyle-block.css"/>
338 <gsf:script src="ext/jquery-ui-extra/turnstyle-block.js"/>
339
340 <!-- The Javascript DSP files for computing chroma features in the browser -->
341 <xsl:call-template name="javascript-dsp-header"/>
342
343
344 <!-- Javascript support for running, sending input into, monitoring, and stopping Meandre flows -->
345 <gsf:script src="ext/meandre/meandre-controller.js"/>
346
347 <gsf:style>
348 .metadata-stripes td { padding: 4px; }
349 .metadata-stripes tr:nth-child(odd) {background: #CCC}
350 .metadata-stripes tr:nth-child(even) {background: #FFF}
351
352 .vis-heading { font-style:italic; }
353
354 #rightSidebar { display: none; }
355 </gsf:style>
356
357 </xsl:template>
358
359
360 <xsl:template name="documentContent">
361
362<!--
363 <xsl:call-template name="init-document-xsl-vars"/>
364-->
365
366 <!-- declare $httpCollection = $httpPath (for better consistency with other places in Greenstone XSL files) -->
367 <xsl:variable name="httpCollection">
368 <xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
369 </xsl:variable>
370
371 <xsl:variable name="assocFilePath"><gsf:metadata name="assocfilepath" select="root"/></xsl:variable>
372 <xsl:variable name="Source"><gsf:metadata name="Source" select="root"/></xsl:variable>
373
374 <gsf:variable name="cgiargFrameOffset">
375 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameOffset']/@value"/>
376 </gsf:variable>
377
378 <gsf:variable name="cgiargFrameLength">
379 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameLength']/@value"/>
380 </gsf:variable>
381
382 <xsl:variable name="cgiargYScaleSimImg"><xsl:choose>
383 <xsl:when test="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value"/></xsl:when>
384 <xsl:otherwise>0.5</xsl:otherwise>
385 </xsl:choose>
386 </xsl:variable>
387
388 <!-- CAA = Content Analysis Algorithm -->
389 <xsl:variable name="cgiargCAAlgorithm">
390 <xsl:choose>
391 <xsl:when test="/page/pageRequest/paramList/param[@name='p.caAlgorithm']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.caAlgorithm']/@value"/></xsl:when>
392 <xsl:otherwise>1</xsl:otherwise>
393 </xsl:choose>
394 </xsl:variable>
395
396 <!-- *** -->
397 <!-- Main Audio Player -->
398 <!-- *** -->
399
400 <div class="documenttext">
401
402<!--
403 <xsl:call-template name="audio-icon-cache"/>
404-->
405
406 <xsl:call-template name="original-audio">
407 <xsl:with-param name="httpCollection" select="$httpCollection"/>
408 <xsl:with-param name="assocFilePath" select="$assocFilePath"/>
409 </xsl:call-template>
410
411
412 <hr/>
413
414<script>
415 <xsl:text disable-output-escaping="yes">
416 useFancyPlayer = 1;
417
418 /* if (window.location.toString().match(/fancyplayer/i)) { */
419 if (useFancyPlayer) {
420 PP_CONFIG.usePeakData = true;
421 PP_CONFIG.useEQData = true;
422 // PP_CONFIG.useFavIcon = true;
423 }
424
425 function onFinishSP()
426 {
427 soundManager._onfinish();
428 togglePlayVisual(mainPlayButton);
429 }
430
431 var mySoundObj;
432
433 function playFromOffset(id,frameOffset)
434 {
435 var msecOffset = 250 * frameOffset;
436 idElem = document.getElementById(id);
437 pagePlayer.handleClick({target:idElem}); /* fake a click */
438 soundManager.stopAll();
439
440 var options = {};
441 options.position = msecOffset;
442
443 soundManager.play(id,options);
444
445 togglePlayMode = "pause";
446 playHighlightOff(document.getElementById("mainPlayButton"),32);
447 }
448
449 function preSubmit(form)
450 {
451 var currentPosElem = document.getElementById("mysongCurrentPos");
452 var offsetInMSecs = currentPosElem.getAttribute("offsetInMSecs");
453 var frameOffset = Math.round(offsetInMSecs/250.0);
454 form.elements["s1.offset"].value = frameOffset;
455
456 //var lengthInSecs = document.getElementById("mysongWindowDuration").innerHTML;
457 var lengthInSecs = form.elements["mysongWindowDuration"].value;
458
459 var frameLength = Math.round(lengthInSecs*1000/250.0);
460 form.elements["s1.length"].value = frameLength;
461
462 return true;
463 }
464
465 function searchSubmit(frameOffset)
466 {
467 var form = document.getElementById("QueryForm");
468
469 form.elements["s1.offset"].value = frameOffset;
470
471 //var lengthInSecs = document.getElementById("mysongWindowDuration").innerHTML;
472 var lengthInSecs = form.elements["mysongWindowDuration"].value;
473
474 var frameLength = Math.round(lengthInSecs*1000/250.0);
475 form.elements["s1.length"].value = frameLength;
476
477 form.submit();
478 }
479
480
481
482 function rescaleImage()
483 {
484 var form = document.getElementById("RescaleForm");
485
486 var rescaleSize = form.elements["ResizeScale"].value;
487
488 var currentURL = document.location.toString();
489 var newURL;
490 if (currentURL.match(/p.yScaleSimImg=(\d+(?:\.\d+))/)) {
491 newURL = currentURL.replace(/p.yScaleSimImg=(\d+(?:\.\d+))/,"p.yScaleSimImg="+rescaleSize);
492 }
493 else {
494 var urlParts = currentURL.split("#");
495 newURL = urlParts.shift();
496 newURL += "&amp;p.yScaleSimImg="+rescaleSize;
497 newURL += "#" + urlParts.join("#");
498 }
499
500 document.location = newURL;
501 }
502
503 function updateCAAlgorithm()
504 {
505
506 var form = document.getElementById("UpdateCAForm");
507
508 var caaMenu = form.elements["caAlgorithm"];
509
510 var caIndexPos = caaMenu.options[caaMenu.selectedIndex].value
511
512 var currentURL = document.location.toString();
513 var newURL;
514 if (currentURL.match(/p.caAlgorithm=(\d+)/)) {
515 newURL = currentURL.replace(/p.caAlgorithm=(\d+)/,"p.caAlgorithm="+caIndexPos);
516 }
517 else {
518 var urlParts = currentURL.split("#");
519 newURL = urlParts.shift();
520 newURL += "&amp;p.caAlgorithm="+caIndexPos;
521 newURL += "#" + urlParts.join("#");
522 }
523
524 document.location = newURL;
525
526 }
527
528
529
530 </xsl:text>
531
532</script>
533
534
535 </div>
536 </xsl:template>
537
538
539
540
541 </format>
542 </display>
543
544 <replaceListRef id="gs2-standard"/>
545 <replaceListRef id="gs2-image" />
546 <serviceRackList>
547 <!-- comment out the following serviceRack if you want to disable OAI for this collection -->
548 <serviceRack name="OAIPMH">
549 <ListMetadataFormats>
550 <!--What metadata sets to support is collection specific. To support other metadata schema, simply add a metadataFormat element here.
551 The support of unqualified Dublin Core metadata set is mandatory in the oai specification.
552 -->
553 <metadataFormat metadataPrefix="oai_dc">
554 <metadataPrefix>oai_dc</metadataPrefix>
555 <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
556 <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace>
557 <!--<metadataElements>dc.Title,dc.Creator,dc.Subject,dc.Description,dc.Publisher,dc.Contributor,dc.Date,dc.Type,dc.Format,dc.Identifier,dc.Source,dc.Language,dc.Relation,dc.Coverage,dc.Rights</metadataElements>-->
558 <mappingList>
559 <!--
560 The mapping is in the form: <publicly supported metadata name>,<mapped metadata name>, short as <A>,<B>
561 The first metadata name is medatory; if there is no mapped name followed, then the first name must be used by the records and
562 searchable in the database, otherwise it is the mapped name stored in the database. The number of mapping elements matches the
563 number of external metadata of the records. If only one name is present, the returned metadata will use this name plus the retrieved value;
564 if both <A>,<B> are present, the returned metadata will use <A>'s name plus <B>'s value retrieved from database.
565
566 **Bear in mind: if this mapping list is not present, the standard dc. metadata names (15 in total) will be used to retrieve metadata in the database.
567
568 **The only case when this mapping is not present is that: 1. this metadata format is oai_dc; 2. the metadata is also stored in the database by Dublin Core's names.
569 -->
570 <mapping>dc:title,Title</mapping>
571 <!-- This mapping example means that the dc.Title is requested and the value of the metadata Title, which is used in this repository, is returned as response. -->
572 </mappingList>
573 </metadataFormat>
574 </ListMetadataFormats>
575 </serviceRack>
576 </serviceRackList>
577</CollectionConfig>
Note: See TracBrowser for help on using the repository browser.