@@ -12,8 +12,7 @@ import module namespace config="http://syriaca.org/config" at "../config.xqm";
1212import module namespace cntneg="http://syriaca.org/cntneg" at "content-negotiation.xqm" ;
1313import module namespace tei2html="http://syriaca.org/tei2html" at "tei2html.xqm" ;
1414
15- (: Data processing module. :)
16- import module namespace data="http://syriaca.org/data" at "../lib/data.xqm" ;
15+ import module namespace global="http://syriaca.org/global" at "../lib/global.xqm" ;
1716
1817(: Import KWIC module:)
1918import module namespace kwic="http://exist-db.org/xquery/kwic" ;
@@ -32,47 +31,20 @@ let $path := if(request:get-parameter('id', '') != '') then
3231 else ()
3332let $data :=
3433 if (request:get-parameter ('id' , '' ) != '' or request:get-parameter ('doc' , '' ) != '' ) then
35- data:get-document ()
36- else if (request:get-parameter-names () != '' ) then
37- let $hits := data:search ('' ,'' ,'' )
38- return
39- if (count ($hits) gt 0 ) then
40- <root>
41- <action>{string-join (
42- for $param in request:get-parameter-names ()
43- return concat ('& ' ,$param, '=' ,request:get-parameter ($param, '' )),'' )}</action>
44- <info>hits: {count ($hits)}</info>
45- <start>1 </start>
46- <results>{
47- let $start := if (request:get-parameter ('start' , 1 )) then request:get-parameter ('start' , 1 ) else 1
48- let $perpage := if (request:get-parameter ('perpage' , 10 )) then request:get-parameter ('perpage' , 10 ) else 10
49- for $hit in subsequence ($hits,$start,$perpage)
50- let $id := replace ($hit/descendant::tei:idno[starts-with (.,$config:base-uri)][1 ],'/tei' ,'' )
51- let $title := $hit/descendant::tei:titleStmt/tei:title
52- let $expanded := kwic:expand ($hit)
53- return
54- <json:value json:array = "true" >
55- <id>{$id}</id>
56- {$title}
57- <hits>{normalize-space (string-join ((tei2html:output-kwic ($expanded, $id)),' ' ))}</hits>
58- </json:value>
59- }
60- </results>
61- </root>
62- else
63- <root>
64- <json:value json:array = "true" >
65- <action>{string-join (
66- for $param in request:get-parameter-names ()
67- return concat ('& ' ,$param, '=' ,request:get-parameter ($param, '' )),'' )}</action>
68- <info>No results</info>
69- <start>0 </start>
70- </json:value>
71- </root>
34+ let $id := request:get-parameter ('id' , '' )
35+ let $parse-id :=
36+ if (contains ($id,$global:base-uri) or starts-with ($id,'http://' )) then $id
37+ else if (contains (request:get-uri (),$global:nav-base)) then
38+ replace (request:get-uri (),$global:nav-base, $global:base-uri)
39+ else if (contains (request:get-uri (),$global:base-uri)) then request:get-uri ()
40+ else $id
41+ let $final-id := if (ends-with ($parse-id,'.html' )) then substring-before ($parse-id,'.html' )
42+ else if (ends-with ($parse-id,'/tei' )) then substring-before ($parse-id,'/tei' )
43+ else $parse-id
44+ return global:get-rec ($final-id)
7245 else ()
7346let $format := if (request:get-parameter ('format' , '' ) != '' ) then request:get-parameter ('format' , '' ) else 'xml'
7447return
7548 if (not (empty ($data))) then
7649 cntneg:content-negotiation ($data, $format, $path)
77- else ()
78-
50+ else ()
0 commit comments